串口丢包

2019-08-17 09:24发布

程序启动之后,串口先发送了查询指令,但串口收的第一字节会丢。丢包仅出现在程序启动后第一次收上,接下来所有的收都正常,我也尝试加上延时,没有效果。请问这有可能是什么问题?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
stm32zzq
1楼-- · 2019-08-17 12:40
参考RS485实验
发送之前应该先读寄存器TC位,代码如下
for(t=0;t<len;t++)                //循环发送数据
{                  
        while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);//等待发送完成         
        USART_SendData(USART2,buf[t]);
}while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);       
如果是先发送,再读取则可能会导致第一字节丢失
我之前丢失头数据就是这个原因,希望可以帮助到你

一周热门 更多>