STOP模式串口通讯误码率高

2019-07-14 15:45发布

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就不会有问题。这是什么原因,有什么办法可以解决?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
jiaolesu
1楼-- · 2019-07-15 16:09
晶振选型
zhouxk
2楼-- · 2019-07-15 17:50
你的波特率分频系数设置是多少?
32768/9600 = 3.413333~;
如果设置分频系数是3的话,那么波特率偏差是,1 - 3/3.413333 = 0.121;
16倍过采样,1/16 = 0.0625;理论上存在可能出现采错的情况。
's'的码值是0x73,而采成了0xf3,最高位被误采多了个1,而串口发送是低位在前,高位在后,误采1的位置正好是停止位(或校验位)的位置。
但具体你这里是怎么回事,还是建议加上示波器看看,第一个字节到底发生了什么。
烈阳异丙醇
3楼-- · 2019-07-15 22:42
 精彩回答 2  元偷偷看……
xieweibin
4楼-- · 2019-07-15 22:54
明显是延时不够导致的。
建议增加延时。
andyfly7
5楼-- · 2019-07-16 02:10
晶振选型
wenxueshu
6楼-- · 2019-07-16 07:55
后边的对的,晶振频率应该没有问题,如果总是头几个字节有错,可以延时试试

一周热门 更多>