大家好,请教一个问题,两个DSP的进行SPI通信,从机接收没问题,但是发现主机发送有个问题:
while(1)
{
delay();------------------------(1)
SpiSendData(0xAA);-------(2)
delay();------------------------(3)
SpiSendData(0x55);-------(4)
}
代码执行顺序为:12341231234123 ...... 为何有一段中间会跳过(4)
Uint16 SpiSendReady(void)
{
if(SpiaRegs.SPISTS.bit.BUFFULL_FLAG==1) {
return 0;
}
else{
return 1;
}
}
void SpiSendData(Uint16 data)
{
if(SpiSendReady()==1)
{
SpiaRegs.SPITXBUF = data;
}
while(SpiSendReady()!=1);
}
|