
UART几个标志位
-
0:数据未传输到移位寄存器 -
1:数据传输到移位寄存器
-
0:传送未完成 -
1:传送已完成
-
0:未接收到数据 -
1:已准备好读取接收到的数据
-
0:无上溢错误 -
1:检测到上溢错误
UART通信接口
UART接收丢失数据
-
及时清除溢出错误标志 -
利用通信协议过滤因数据丢失导致的问题
-
中断函数里减少不必要的耗时
-
合理分配中断优先级 -
使能中断前清除标志位
-
使用更高精度晶振
-
降低通信波特率
UART发送丢失数据
void UART_SendByte(uint8_t Data)
{
while(RESET == USART_GetFlagStatus(USART1, USART_FLAG_TXE));
USART_SendData(USART1, Data);
}
void UART_SendByte(uint8_t Data)
{
while(RESET == USART_GetFlagStatus(USART1, USART_FLAG_TXE));
USART_SendData(USART1, Data);
while(RESET == USART_GetFlagStatus(USART1, USART_FLAG_TC));
}
HAL_StatusTypeDef HAL_UART_Transmit(UART_HandleTypeDef *huart, uint8_t *pData, uint16_t Size, uint32_t Timeout)
2.线路延时导致数据丢失
-
软件增加延时处理
-
使用通信协议增加应答机制

版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/cjjbc/18080.html