[技术问答] 使用HC32L196设置成921600波特率后打印乱码

[复制链接]
3603|12
 楼主| 1111gyhh 发表于 2024-11-14 17:23 | 显示全部楼层 |阅读模式
最近在开发这款芯片,有没有大佬能给我解答一下为什么会乱码,115200和9600都试过了不会乱,921600和1000000就会乱。
870466735c13d3b302.png 639946735c166378de.png 462816735c18503298.png
wubangmi 发表于 2024-11-14 18:42 | 显示全部楼层
主频用22.12Mhz的,PCLK建议不要分频。其他主频误码率太高导致你乱码了
 楼主| 1111gyhh 发表于 2024-11-15 10:47 | 显示全部楼层
大佬,按照您说的配置了一下,确实好多了,可是还是差点意思
Snipaste_2024-11-15_10-46-30.png
Snipaste_2024-11-15_10-46-43.png
wubangmi 发表于 2024-11-15 11:07 | 显示全部楼层
1111gyhh 发表于 2024-11-15 10:47
大佬,按照您说的配置了一下,确实好多了,可是还是差点意思

TX脚初始化的时候输出高,另外把TX和RX的上拉都使能。
顺带提一下,内部RCH升频是有要求的,具体看用户手册,有两种方式。
 楼主| 1111gyhh 发表于 2024-11-15 11:18 | 显示全部楼层
wubangmi 发表于 2024-11-15 11:07
TX脚初始化的时候输出高,另外把TX和RX的上拉都使能。
顺带提一下,内部RCH升频是有要求的,具体看用户手 ...

好的 谢谢您
xch 发表于 2024-11-15 18:24 | 显示全部楼层
1111gyhh 发表于 2024-11-15 10:47
大佬,按照您说的配置了一下,确实好多了,可是还是差点意思

连续不停发送0x55,测量一下方波频率是不是等于921600/2Hz。
RCH 频率可以微调。
 楼主| 1111gyhh 发表于 2024-11-18 10:59 | 显示全部楼层
xch 发表于 2024-11-15 18:24
连续不停发送0x55,测量一下方波频率是不是等于921600/2Hz。
RCH 频率可以微调。 ...

谢谢 已经解决了
wyde518 发表于 2024-11-18 13:23 | 显示全部楼层

怎么解决的
 楼主| 1111gyhh 发表于 2024-11-19 16:57 | 显示全部楼层

看楼顶那个大佬 我就按照他说的一步步改
 楼主| 1111gyhh 发表于 2024-11-22 11:35 | 显示全部楼层
wubangmi 发表于 2024-11-15 11:07
TX脚初始化的时候输出高,另外把TX和RX的上拉都使能。
顺带提一下,内部RCH升频是有要求的,具体看用户手 ...

大佬,内部时钟最高是48MHZ,我只能使用22.12Mhz才能实现921600吗,我感觉我现在的主频22.12Mhz不太够用
wubangmi 发表于 2024-11-22 12:36 | 显示全部楼层
1111gyhh 发表于 2024-11-22 11:35
大佬,内部时钟最高是48MHZ,我只能使用22.12Mhz才能实现921600吗,我感觉我现在的主频22.12Mhz不太够用 ...

算给你看  48000000/921600/8(按8采样分频来算)=6.5.实际写入寄存器的值为6.所以误差就是(6.5-6)/6.5=0.078525641025641  所以误码率为7.8%的样子,基本上误码率大于0.16%就不建议用了。

给你个建议,你觉得在代码里那块地方22.12Mhz的主频不够用就先升频到48Mhz,用完了再切回到22.12Mhz。这么做的弊端就是你有可能错失在这个主频切换期间UART暂时没法正常用。
 楼主| 1111gyhh 发表于 2024-11-22 14:11 | 显示全部楼层
wubangmi 发表于 2024-11-22 12:36
算给你看  48000000/921600/8(按8采样分频来算)=6.5.实际写入寄存器的值为6.所以误差就是(6.5-6)/6.5=0.0 ...

好的 谢谢大佬
yang377156216 发表于 2024-12-9 14:13 | 显示全部楼层
没有小数分频带来的理论误差,时钟源精度带来的实际误差。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

16

帖子

0

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