This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

有无 TMS320F28337 D 通过SPI 口 控制MX25l128 的例程?

Other Parts Discussed in Thread: C2000WARE

有无 TMS320F28337 D 通过SPI 口 控制MX25l128 的例程? 我一直读出来的数值是0XFF,不清楚那里错了

  EALLOW;
 GpioCtrlRegs.GPBPUD.bit.GPIO54 = 0;  
    GpioCtrlRegs.GPBQSEL2.bit.GPIO54 = 3; 
    GpioCtrlRegs.GPBMUX2.bit.GPIO54 = 1;

    GpioCtrlRegs.GPBPUD.bit.GPIO55 = 0;  
    GpioCtrlRegs.GPBQSEL2.bit.GPIO55 = 3;
    GpioCtrlRegs.GPBMUX2.bit.GPIO55 = 1;

    GpioCtrlRegs.GPBGMUX2.bit.GPIO60 = 3;
    GpioCtrlRegs.GPBGMUX2.bit.GPIO61 = 3;
    GpioCtrlRegs.GPBPUD.bit.GPIO60 = 0;   
    GpioCtrlRegs.GPBQSEL2.bit.GPIO60 = 3; 
    GpioCtrlRegs.GPBMUX2.bit.GPIO60 = 3;

    GpioCtrlRegs.GPBPUD.bit.GPIO61 = 0;  
    GpioCtrlRegs.GPBQSEL2.bit.GPIO61 = 3;
    GpioCtrlRegs.GPBMUX2.bit.GPIO61 = 3;

    GPIO_SetupPinOptions(133, GPIO_OUTPUT, GPIO_PUSHPULL);
    EDIS;

    GPIO_WritePin(133, 0);//pin WP=0

 /*
     * SPI 模块初始化,使用FIFO查询方式,接收4级缓存,发送16级
     */
    SpiaRegs.SPIFFTX.all=0xE040;

    SpiaRegs.SPIFFRX.all=0x2044;
    SpiaRegs.SPIFFCT.all=0x0;
    /*
     *
     */
    SpiaRegs.***.bit.SPISWRESET =0;    // Reset on, rising edge,
    SpiaRegs.***.bit.*** = 7;//8-bit char bits
    SpiaRegs.***.bit.CLKPOLARITY =1;//
 SpiaRegs.***.all =0x000E;           // Enable master mode, normal phase,
             // enable talk, and SPI int disabled.
 SpiaRegs.SPIBRR =0x004A;                 //LSpclk/74+1=75MHz/75=1M
 SpiaRegs.***.bit.SPISWRESET = 1;           // Relinquish SPI from Reset disable lookback
 SpiaRegs.SPIPRI.bit.FREE = 1;   //debug 调试时,断点正常运行
 /*
  * M25L28 init
  */
 SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 1;
 SpiaRegs.SPITXBUF = Read_RDID;
 SpiaRegs.SPITXBUF = 0xFF;//第2~4个字节具体是什么,手册里面也没有写,不知是不是FF?
 SpiaRegs.SPITXBUF = 0xFF;
 SpiaRegs.SPITXBUF = 0xFF;
 while(SpiaRegs.SPIFFRX.bit.RXFFINT !=1){}

  data[0] = SpiaRegs.SPIRXBUF;//data的值第一个字节为9F,第2~4个字节为FF,和发送的值是一样的,是为什么?
  data[1] = SpiaRegs.SPIRXBUF;
  data[2] = SpiaRegs.SPIRXBUF;
  data[3] = SpiaRegs.SPIRXBUF;
  SpiaRegs.SPIFFRX.bit.RXFFINTCLR = 1;