硬汉嵌入式论坛

 找回密码
 立即注册
查看: 408|回复: 3
收起左侧

[技术讨论] UART接收乱序问题

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2023-5-22 16:24:21 | 显示全部楼层 |阅读模式
本帖最后由 lyqyiquan 于 2023-5-22 16:49 编辑

不知道大家在用串口通信的时候有没遇到过这个问题。

使用HAL_UART_Receive_IT(&huart1,receiveDate1,8),波特率假设设置为9600,用USB转串口跟单片机通信。

电脑端设置波特率9600,通信OK;
电脑端设置波特率14400,通信异常;再把电脑设置回9600,通信仍然异常;
看调试窗口,receiveDate1数组的顺序与实际不符。

电脑端波特率9600时,通信OK;


电脑端14400波特率,发送值错误,无回复


再次将电脑端波特率调回9600,数组值的顺序与发送不符,无回复

回复

使用道具 举报

332

主题

2031

回帖

3032

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3032
发表于 2023-5-22 16:46:05 | 显示全部楼层
可以用上串口的idle中断看看,避免乱码。 因为串口没有同步时钟信号,如果没有超时截断的话,可能造成字节之间的分割识别错误。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2023-5-22 16:51:08 | 显示全部楼层
好奇怪,图片显示不出来,这里附件补充一下
下载 (1).png
下载 (2).png
下载.png
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2023-5-22 16:56:27 | 显示全部楼层
caicaptain2 发表于 2023-5-22 16:46
可以用上串口的idle中断看看,避免乱码。 因为串口没有同步时钟信号,如果没有超时截断的话,可能造成字节 ...

好的,我试一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 00:15 , Processed in 0.243627 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表