[CW32F030系列] 小数波特率的意义及用法

[复制链接]
47|7
田舍郎 发表于 2026-8-26 17:10 | 显示全部楼层 |阅读模式
手册中提到,“支持小数波特率”,这使得波特率的精度更高了

UART 的波特率发生器支持"整数 + 小数"分频,用任意系统时钟都能逼近标准波特率,把误差压到千分之几甚至零。

UART 是异步通信,波特率由本地时钟分频得到
但标准波特率9600,115200…和常见 MCU 时钟8M/16M/25M经常不是整数倍关系。比如:
16 MHz 想出 115200:DIV = 16000000 / (16×115200) ≈ 8.6806
纯整数分频只能取 8 或 9 → 实际波特率 125000 或 111111,误差 8.5%,超过 UART 容限,一般 ±2~3%,稳妥 ≤1%,收数据必乱帧。
用小数分频:整数 8 + 小数 0.6806×64≈44/64 → DIV=8.6875,回算 115207,误差 0.006%。
在不换晶振的前提下,让任意主频都能高精度凑出标准波特率

zhanan 发表于 2026-8-28 14:00 | 显示全部楼层
小数不应该是11吗?回算得115107.91,误差-0.08%
未说出口的像你 发表于 2026-9-7 19:06 | 显示全部楼层
小数分频的精度确实香,0.006%误差基本可以忽略了,省得为了串口专门换晶振。
小小蚂蚁举千斤 发表于 2026-9-14 23:00 | 显示全部楼层
小数波特率通过分频器的小数部分将时钟误差压到可接受范围,双方源时钟偏差较大时能明显降低误码率。
LOVEEVER 发表于 2026-9-17 21:00 | 显示全部楼层
小数波特率能把时钟误差压到1%以内,串口长距离和高速场景下确实能少掉帧。
逆鳞风暴 发表于 2026-9-18 09:46 | 显示全部楼层
0.006%的误差几乎可以忽略了,比纯整数分频强太多,省得为了串口专门换晶振
您需要登录后才可以回帖 登录 | 注册

本版积分规则

130

主题

2655

帖子

2

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