@SPI 调试小结while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)卡死问题
由于使用的是STM32F302型号的单片机,之前在STM32F103可以实现的功能,在302上一直卡死。
u8 retry=0;
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET){}//
SPI_SendData8(SPI1, TxData); //
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)
{
// retry++;
// if(retry>200)return 0;
} //
return SPI_ReceiveData8(SPI1); //
陷入死循环中。
解决在初始化处加入以下代码 :
SPI_RxFIFOThresholdConfig(SPI1, SPI_RxFIFOThreshold_QF);