我现在需要向DSP的SPI 的FIFO一次性写三个字节的数据,总共24bit
如我下面的代码所示:
首先片选拉低,然后写入数据,然后等待数据写完,然后片选拉高
这里出现一个问题,
就是写完数据且等待它写完之后再拉高片选时,用示波器测试发现片选拉高了之后,SPI仍然还在写数据
如果不加入我代码里面的那个delay(5)的延时,则会有大概8个脉冲在片选拉高之后
百思不得其解,请高手帮帮忙。谢谢
关于这个问题可以参考我在21IC的DSP板块发表的求助帖子。
http://bbs.21ic.com/forum.php?mod=viewthread&tid=631518&epclose=1
void DSP_DA()//通过SPI输出24个bit到AD5360
{
AD_CS=0;
SpiaRegs.SPITXBUF=DA_Data[0]; SpiaRegs.SPITXBUF=DA_Data[1]; SpiaRegs.SPITXBUF=DA_Data[2];
while(SpiaRegs.SPIFFTX.bit.TXFFST!=0){} delay(3);
AD_CS=1;
}