很早就知道了這個問題,在串口寫入時的速度和發送速度不一樣,寫入過快會丟失一部分,導致控制不正常。
為此每次寫入前個檢查USART_FLAG_TXE位是否為空,下次發送前檢查USART_FLAG_TC位是否發送完。
程序可修改如下
USART_SendData(USART1,0xFF); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) != SET);//是否為空
USART_SendData(USART1,0xFF); while(USART_GetFlagStatus(USART1, USART_FLAG_TC) != SET);//是否發送完
上一篇:STM32使用串口中斷發送和接受數據
下一篇:STM32 使用HAL庫做串口的DMA發送和中斷接收
推薦閱讀
史海拾趣