1. 程式人生 > >發現的STM32——SPI的問題

發現的STM32——SPI的問題

SPI點亮OLED屏

執行程式時傳送幾十次的資料總是會有看門狗的復位,後來發現程式每次都死在了while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)這裡,查閱資料後發現是SPI有FIFO埠,參考SPI/I2S除錯總結//用SPI1往OLED屏中寫一個bituint8_t SPI1_WriteByte(uint8_t byte) { while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET); SPI_I2S_SendData(SPI1, byte); while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY)==SET);//若寫成 while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET)則有一定機率卡死在這裡 return SPI_I2S_ReceiveData(SPI1); }`