有无 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;