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

STOP模式串口通讯误码率高

[复制链接]
Blen 提问时间:2017-1-13 16:20 /
stm32nucleo开发板,mcu是STM32L053R8,LPUART采用外部32.768kHz晶振(LSE),波特率9600。在STOP模式下接收数据第一个字节误码率很高(30%~40%)。比如PC发送一个字符串“sleep”(73 6C 65 65 70 0D 0A),而MCU接收到的是eep”(F3 6C 65 65 70 0D 0A).波特率改为4800就不会有问题。这是什么原因,有什么办法可以解决?
收藏 2 评论23 发布时间:2017-1-13 16:20

举报

23个回答
七哥 回答时间:2017-2-7 10:56:09
你的波特率分频系数设置是多少?
32768/9600 = 3.413333~;
如果设置分频系数是3的话,那么波特率偏差是,1 - 3/3.413333 = 0.121;
16倍过采样,1/16 = 0.0625;理论上存在可能出现采错的情况。
's'的码值是0x73,而采成了0xf3,最高位被误采多了个1,而串口发送是低位在前,高位在后,误采1的位置正好是停止位(或校验位)的位置。
但具体你这里是怎么回事,还是建议加上示波器看看,第一个字节到底发生了什么。
Blen 回答时间:2017-1-16 16:39:20
jackten 发表于 2017-1-13 19:26
看看stop模式下的晶振频率选择多大的,,一般来说睡眠都会降低速度,从而影响波特率 ...

LPUART采用外部32.768kHz晶振(LSE)
冰榕 回答时间:2019-7-8 13:41:27
遇到相同的问题,使用内部16M晶振没问题,使用外部32768晶振时,偶尔会发生第一个字节出现错误,这里有没有ST的技术人员给解释下怎么回事?
jackten 回答时间:2017-1-13 19:26:38
看看stop模式下的晶振频率选择多大的,,一般来说睡眠都会降低速度,从而影响波特率

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2017-2-7 07:25:10
应该是晶振频率误差所致。
wtliu 回答时间:2017-2-7 08:23:03
32.768kHz晶振分频9600应该很准,估计是你选的晶振不好。
小小超 回答时间:2017-2-7 08:36:08
晶振频率有误差,换晶振试试?
zhjb1 回答时间:2017-2-7 09:03:05
后边的对的,晶振频率应该没有问题,如果总是头几个字节有错,可以延时试试
hjl2832 回答时间:2017-2-7 10:23:46
贴UART处理部分的代码出来看看吧,应该是接收处理部分的时序没控制好。
yb0121 回答时间:2017-2-7 10:46:34
晶振选型
ataudio 回答时间:2017-2-7 13:08:02
感觉和晶振关系不大吧。
无薪税绵 回答时间:2017-2-7 15:39:59
明显是延时不够导致的。
建议增加延时。
cldym 回答时间:2017-2-7 15:54:58
晶振选型
zbber 回答时间:2017-2-7 16:23:44
后边的对的,晶振频率应该没有问题,如果总是头几个字节有错,可以延时试试
我爱卡111 回答时间:2017-2-7 16:43:57
:)
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版