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