F28034的SPI模块发送数据错误。
楼主是dsp新手,写spi的键盘显示控制程序的时候,发现通信错误。本来应该是输出应该是在clock信号上升沿之后才有的,结果显示是超前了,而且发送的数据也有错误,希望能有大神解答。万事开头难,一点小问题自己折腾了几天也没弄好,多谢大家了!
void InitSpi(void) { /////////////////////////////////////// InitSpibGpio(); SpibRegs.SPIFFTX.all=0xE040; //使能fifo发送 SpibRegs.SPIFFRX.all=0x204f; //使能fifo接收 SpibRegs.SPIFFCT.all=0x0; SpibRegs.SPICCR.bit.SPICHAR=0x7;// 8-bits SpibRegs.SPICTL.bit.MASTER_SLAVE = 1;//as master SpibRegs.SPICTL.bit.TALK = 1;//enable transmission SpibRegs.SPICTL.bit.CLK_PHASE = 1; SpibRegs.SPICCR.bit.CLKPOLARITY = 0; SpibRegs.SPIBRR = 19; SpibRegs.SPICCR.bit.SPISWRESET = 1; // Relinquish SPI from ResetSpibRegs.SPIPRI.bit.FREE = 1; }
输出的SPICLKB和SPISIMOB波形如图
请大家多多指教!
mangui zhang:
我建议结合片选或使能信号看 不要之间这么判断
可能是由于SPI初始化后被拉高的