u8 RecByte_Spi(void)
{
u8 temp;
// SPI->DR = 0xFF;
while(!(SPI->SR & 0x02)); //等待发送完成,缓冲为空
while(!(SPI->SR & 0x01)); //等待接收缓冲区非空
temp = SPI->DR; //数据读回
return temp;
}
这是我接收数据的程序,现在一直停在等待接收缓冲为非空,把 ( while(!(SPI->SR & 0x01)); //等待接收缓冲区非空)注释掉的话,接收到的数据一直都是MISO第一次接收到的数据。就好像接收缓冲区一直没被清空,昨天做实验的有一次接收到的数据正常,现在又不可以了。。。
|