STM32
回帖(1)
2021-12-9 11:16:34
很早就知道了这个问题,在串口写入时的速度和发送速度不一样,写入过快会丢失一部分,导致控制不正常。
为此每次写入前个检查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);//是否发送完
很早就知道了这个问题,在串口写入时的速度和发送速度不一样,写入过快会丢失一部分,导致控制不正常。
为此每次写入前个检查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);//是否发送完
举报
更多回帖