Utilities Web

UART 波特率计算器

根据时钟和目标波特率计算分周比、误差和寄存器值

使用方法

  1. 选择模式(AVR / STM32 / Generic)
  2. 输入时钟频率(例如: 16M)。常用的晶体也可以从按钮中选择
  3. 选择目标波特率或自定义输入
  4. 显示实际波特率、误差率、要写入的寄存器值(UBRR/BRR)及容差范围内的判定
  5. 在穷举表中确认该时钟下可安全使用的标准波特率

适用场景

  • 想要确认微控制器UART设置中波特率误差是否在容差范围内时
  • 想要快速了解UBRR / BRR等寄存器设置值时
  • 想要查询现有时钟(晶体)可以使用哪些标准波特率时
  • 想要选择可以实现0%误差的晶体频率时

常见问题

波特率误差容差为多少%? ▼

接收端对1比特进行约16倍的采样,因此结合收发±2~3%左右被认为是安全范围。本工具的默认值为±2%,容差可以更改。如果误差过大,会导致帧后半采样位置偏移,造成接收错误。

UBRR 和 BRR 有什么区别? ▼

两者都是通过分周时钟来产生波特率的寄存器。AVR的UBRR存储"分周比−1",以16倍(常规)/8倍(倍速)进行分周。STM32的BRR直接存储USARTDIV(= 时钟 ÷ 波特率),过采样在内部进行16倍。本工具通过模式吸收这些差异。

为什么使用 1.8432MHz 这样的特殊晶体? ▼

1.8432MHz 及其倍数(3.6864 / 7.3728 / 11.0592 MHz 等)是精心选择的"UART用晶体",可以以0%误差整除9600、115200等标准波特率。使用这些晶体可以避免分周误差。可以在穷举表中确认误差为0%。

相关工具