在例程中:SPI0是主机,SPI1是从机
void SPI1_Isr (void)
{
RcvData = SSP1DR; /* 接收数据 */
RcvFlag = 0x01; /* 接收到新数据 */
SSP1ICR = 0x03; /* 清除标志位 */
}
uint8 SPI0_SendData (uint8 data)
{
SSP0DR = data;
while ((SSP0SR & 0x01) == 0) { /* 等待TFE置位,即发送FIFO空 */
}
return(SSP0DR);
}
可以看出在发送程序里面,等数据发出后,再次读了一下SSP0DR,这个也是发的同时接到的数值,但是在SPI1的接受中断里面并没有对SSP1DR进行赋值,请问对SPI1赋值的时机在哪里?(也就是说当时SPI0发出数据后读出的数据时哪里来的)谢谢 |