搜索

[技术问答] 关于华大L136串口通信波特率问题,提高波特率数据就错乱...

[复制链接]
458|10
 楼主 | 2020-7-13 13:52 | 显示全部楼层 |阅读模式
本帖最后由 singleyork 于 2020-7-13 13:55 编辑

如图,用的SDK中的uart_poll这个例程,当波特率为9600,工作模式为1或者3时,数据收发正常:

01.png

同样为串口1或者3时,波特率设置为57600,数据收发就不对了(同样也试过115200波特,问题依旧):

02.png

所使用的开发板为下面这款:

03.jpg
板子上使用的是32MHz的晶振:

04.png

那么问题来了?是MCU本身波特率误差太大了吗?还是程序中要做其他修改?



使用特权

评论回复

评论

singleyork 2020-7-13 14:41 回复TA
@eelux :如果使用内部22.12MHz晶振,程序中要怎么切换? 
eelux 2020-7-13 14:24 回复TA
工业级常用波特率,推荐使用内部22.12MHz, 其他主频并非同时满足所有波特率的整数倍,因此某些波特率会有计算误差 
| 2020-7-13 15:10 | 显示全部楼层
你用的时钟频率是多少?如果是默认4M,不会支持所有串口波特率

使用特权

评论回复
 楼主 | 2020-7-13 15:12 | 显示全部楼层
martinhu 发表于 2020-7-13 15:10
你用的时钟频率是多少?如果是默认4M,不会支持所有串口波特率

默认的例程,应该用的是4M的吧,但是不知道怎么切换到22.14

使用特权

评论回复

评论

martinhu 2020-7-14 16:33 回复TA
用户手册里有切换步骤啊,Sysctrl的switch例子也有切换的样例 
| 2020-7-13 17:40 | 显示全部楼层
我调试用的2M 也没错误。。

使用特权

评论回复
 楼主 | 2020-7-14 11:24 | 显示全部楼层
yy_yanyu 发表于 2020-7-13 17:40
我调试用的2M 也没错误。。

你说的是晶振用的2M还是波特率?波特率的话,用32M晶振,2Mbps误差本来就是0

使用特权

评论回复
| 2020-7-14 12:48 | 显示全部楼层
这个板子我也有啊,115200正常啊!

使用特权

评论回复
| 2020-7-14 14:06 | 显示全部楼层
看看是哪里出错了

使用特权

评论回复
 楼主 | 2020-7-15 10:30 | 显示全部楼层
qjp1988113 发表于 2020-7-14 12:48
这个板子我也有啊,115200正常啊!

可以发一下源代码给我参考一下嘛?谢谢:121377715@qq.com

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表