在学习SPI接口操作W25Q64这块对下面这个函数不太理解,为什么程序会跳出第二个while循环?
查参考手册SPI的SR寄存器复位值为0x0002,即TXE为1,RXNE为0,调用该函数写指令时(比如调用SPI_FLASH_SendByte(W25Q_SectorErase);),第一个while不满足条件跳出循环执行 SPI_I2S_SendData(SPI1, byte);
但进入第二个while,SPI没接收数据啊,RXNE为0满足条件,程序岂不是卡在这里死循环了?为什么会跳出循环,RXNE何时置1的,难道W25Q64的DO口的高阻态发送到了SPI的接收缓存区?
想不通为什么,希望有人解答谢谢。
u8 SPI_FLASH_SendByte(u8 byte)
{ |