UART 波特率误差计算器
用法
:输入外设时钟频率与目标波特率,自动算出 BRR 寄存器值(整数 + 小数部分)、实际波特率与误差百分比,误差 <2% 亮绿灯。
公式
:
USARTDIV = fCK / (16 × Baud)
(16 倍过采样)或
fCK / (8 × Baud)
(8 倍过采样,OVER8=1)。
场景
:STM32/AVR 等单片机串口配置前核对误差,避免高波特率下乱码;一览表同时给出全部常用波特率的误差。
外设时钟频率 fCK(MHz)
目标波特率(bps)
常用时钟
8 MHz
12 MHz
16 MHz
48 MHz
72 MHz
168 MHz
常用波特率
9600
19200
38400
57600
115200
230400
460800
921600
分频模式:
16 倍过采样(OVER8=0,默认)
8 倍过采样(OVER8=1)
BRR 寄存器值(hex)
-
USARTDIV(整数.小数)
-
实际波特率
-
误差
-
判定(阈值 2%)
-
常用波特率误差一览(当前时钟与过采样模式下)
目标波特率
BRR (hex)
实际波特率
误差
判定
说明:BRR 按 STM32F1 风格编码——高 12 位为
DIV_Mantissa
,低 4 位为
DIV_Fraction
(OVER8=1 时只用低 3 位)。误差来自分频系数只能取离散值:时钟越不是波特率的整数倍、波特率越高,误差越大;一般要求总误差(含双方时钟偏差)<2%。