打印
[技术问答]

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

[复制链接]
1926|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 singleyork 于 2020-7-13 13:55 编辑

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



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



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


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



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



使用特权

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

使用特权

评论回复
板凳
singleyork|  楼主 | 2020-7-13 15:12 | 只看该作者
martinhu 发表于 2020-7-13 15:10
你用的时钟频率是多少?如果是默认4M,不会支持所有串口波特率

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

使用特权

评论回复
评论
martinhu 2020-7-14 16:33 回复TA
用户手册里有切换步骤啊,Sysctrl的switch例子也有切换的样例 
地板
yy_yanyu| | 2020-7-13 17:40 | 只看该作者
我调试用的2M 也没错误。。

使用特权

评论回复
5
singleyork|  楼主 | 2020-7-14 11:24 | 只看该作者
yy_yanyu 发表于 2020-7-13 17:40
我调试用的2M 也没错误。。

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

使用特权

评论回复
6
qjp1988113| | 2020-7-14 12:48 | 只看该作者
这个板子我也有啊,115200正常啊!

使用特权

评论回复
7
singleyork|  楼主 | 2020-7-15 10:30 | 只看该作者
qjp1988113 发表于 2020-7-14 12:48
这个板子我也有啊,115200正常啊!

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

使用特权

评论回复
8
739114505| | 2021-3-23 21:08 | 只看该作者
可以发一下源代码给我参考一下嘛?谢谢:739114505@qq.com   谢谢大佬

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

41

帖子

1

粉丝