你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F051 USART1接收数据乱码

[复制链接]
kinto 提问时间:2019-11-24 15:20 /
求助:STM32F051 USART1发送没有中断,接收使能中断,发送数据正常,接收数据乱码,确认进入了接收中断,但数据出现乱码,请问有哪些原因
收藏 评论13 发布时间:2019-11-24 15:20

举报

13个回答
wenyangzeng 回答时间:2019-11-24 16:18:12
串口接收分十六进制格式和ASCII格式,既然发送正常,可以改变一下接收格式看看
李康1202 回答时间:2019-11-25 09:07:13
发送数据正常的话可以查一下编码
慎微 回答时间:2019-11-25 09:10:33
中断接收加缓冲,或DMA试下
Sam2016 回答时间:2019-11-27 17:41:59
会不会是发送端的发送码有问题?用HEX发送,看看接收的数据对不对。或者用示波器在MCU引脚测一下数据,看看线路传输有没有问题。
废鱼 回答时间:2019-11-27 18:04:16
楼主说的不是很明白,发送使用十六进制吗?如果发送是ASCII码,应该不会产生乱码,而十六进制会显示位乱码,但是看实际的内容是不是和他送的一致。
butterflyspring 回答时间:2019-12-2 12:12:27
也要看看时钟精度是否达到,测量一下位宽是否准确。如果时钟偏差大了,接收数据采样就会出错,收到的数据就不准确
Glenxu 回答时间:2019-12-5 08:54:45
好事!说明收到了,细心看看你发的什么格式,接受显示是什么格式
Glenxu 回答时间:2019-12-8 14:16:46
另外,速度不对,或外部晶振没起振(默认了内部)会造成通讯速率不对,也可能产生乱码
kinto 回答时间:2019-12-9 14:35:03
谢谢大家,用示波器测试,接收的波特率是9616,发送的波特率是9588,我分24次发送16进制的1-24,接收的也是16进制,实测下来,刚开始发送的1,2,3接收正常,4开始后接收不正常,还没有找到原因
Glenxu 回答时间:2019-12-11 10:08:33
更换更好的晶振!
kinto 回答时间:2019-12-11 12:30:54
用的是内部时钟
mylovemcu 回答时间:2019-12-12 16:52:54
看一下主频多少  主频太低或者主频不匹配会导致误码率高
butterflyspring 回答时间:2019-12-23 17:56:49
内部时钟会有一部分偏差。如果对方的偏差向另一边偏,那就会出现误码。所以涉及到串口最好还是用晶振
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版