tbtoolbaba

串口波特率误差计算器

输入系统时钟和目标波特率,计算分频系数与实际误差,评估通信可靠性。支持常见MCU晶振预设。

使用说明

如何使用串口波特率误差计算器

  1. 选择系统时钟频率(支持常见MCU晶振预设,或自定义输入)。
  2. 选择过采样倍数(16x 或 8x)。
  3. 设置目标波特率(可使用标准波特率预设或自定义输入)。
  4. 查看计算结果:分频系数(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倍过采样,标准波特率表全检,附近分频选项对比,可靠性评级。