串口波特率误差计算器
输入系统时钟和目标波特率,计算分频系数与实际误差,评估通信可靠性。支持常见MCU晶振预设。
🔒 文件本地处理不上传
使用说明
如何使用串口波特率误差计算器
- 选择系统时钟频率(支持常见MCU晶振预设,或自定义输入)。
- 选择过采样倍数(16x 或 8x)。
- 设置目标波特率(可使用标准波特率预设或自定义输入)。
- 查看计算结果:分频系数(BRR)、实际波特率、误差百分比、可靠性评级。
参数说明
| 参数 | 说明 |
|---|---|
| 系统时钟 | MCU 主时钟频率,通常由外部晶振或内部RC振荡器提供 |
| 过采样 | UART 接收端采样倍数,16x 更精确但要求更高时钟,8x 支持更高波特率 |
| 目标波特率 | 期望的串口通信速率(bps) |
| BRR | 波特率分频寄存器值,实际写入 MCU 寄存器的数值 |
| 误差 | (实际波特率 - 目标波特率) / 目标波特率 × 100% |
可靠性评级
- 优秀(误差 < 1%):通信非常可靠,推荐使用
- 临界(误差 1%-2%):可接受,但接近极限,建议验证
- 不推荐(误差 > 2%):误码率高,不建议用于生产
常见晶振与波特率匹配
- 11.0592 MHz:经典51单片机晶振,与 9600/19200/57600/115200 等波特率完美匹配(误差≈0%)
- 16 MHz:Arduino Uno/Nano,9600 bps 误差约 0.16%
- 72 MHz:STM32F1,115200 bps 误差约 0%
- 168 MHz:STM32F4,115200 bps 误差约 0%
附近分频选项
当最佳 BRR 取整后误差较大时,可以查看附近的 BRR 值(±2范围),某些偏移值可能反而给出更小的误差。
注意事项
- 所有计算在浏览器本地完成,数据不会上传。
- 计算结果仅供参考,实际通信还需考虑线路质量、温度漂移等因素。
- 不同 MCU 的波特率计算公式可能略有不同(如 STM32 的 OVER8 模式),请参考具体芯片数据手册。
常见问题
波特率误差多少才算可用?⌄
一般建议误差小于2%。误差<1%为优秀,1%-2%为可接受(临界),>2%为不推荐。标准UART通信允许约±2%的波特率偏差,实际可靠性取决于接收端容忍度和数据帧长度。
为什么11.0592MHz是经典51单片机晶振?⌄
11.0592MHz = 115200 × 96,可以被大多数标准波特率整除。这使得UART分频系数为整数,波特率误差为0%。这是早期51单片机设计的巧妙选择。
过采样(Oversampling)是什么?⌄
UART接收端在每个数据位时间内采样多次(通常16倍或8倍)来检测位值。过采样值越大,抗干扰能力越强,但要求时钟频率越高。STM32常用16倍过采样,也支持8倍过采样以提高最高波特率。
BRR是什么?⌄
BRR(Baud Rate Register)是波特率分频寄存器值。对于大多数MCU,BRR = 时钟频率 / (目标波特率 × 过采样倍数)。实际波特率 = 时钟频率 / (round(BRR) × 过采样倍数)。
数据会上传吗?⌄
不会。纯浏览器本地计算,所有运算在您的设备上完成,输入数据不会离开浏览器。
更新记录
- 2026-07-01v1.0.0首次发布:支持常用MCU晶振预设,8/16倍过采样,标准波特率表全检,附近分频选项对比,可靠性评级。