⏱️ STM32 UART 波特率 89600 计算:fck=726MHz BRR=0x1FA7 实际89596bps(误差-0.004%)

工具计算永久页 · 服务端已算好结果,可收藏、可分享、可被搜索引擎收录
📐 本次计算结果
时钟 fck = 726 MHz,目标波特率 89600 bps(16倍过采样) BRR 寄存器值:0x1FA7 实际波特率:89596 bps 误差:-0.004% 公式:BRR = fck / (16×波特率)(或 8×)
👁 13 次查看 · 2026-09-06 19:19 生成
📋 生成的代码(可复制)
// USART 初始化(HAL 库生成)
// 目标 89600bps,fck=726MHz,BRR=0x1FA7,实际 89596bps(误差-0.004%)

UART_HandleTypeDef huart;

void MX_USART1_UART_Init(void)
{
    huart.Instance = USART1;
    huart.Init.BaudRate = 89600;
    huart.Init.WordLength = UART_WORDLENGTH_8B;
    huart.Init.StopBits = UART_STOPBITS_1;
    huart.Init.Parity = UART_PARITY_NONE;
    huart.Init.Mode = UART_MODE_TX_RX;
    huart.Init.HwFlowCtl = UART_HWCONTROL_NONE;
    huart.Init.OverSampling = UART_OVERSAMPLING_16;
    HAL_UART_Init(&huart);
}

// 发送/接收
HAL_UART_Transmit(&huart, (uint8_t*)"Hi", 2, 100);
💡 原理解释
STM32 串口(USART)波特率由 BRR 寄存器决定:BRR ≈ fck / (16×波特率),开启 8 倍过采样(OVER8=1)可支持更高波特率。把时钟频率和目标波特率代进去算出 BRR 后写入 USART_BRR,实际波特率与目标的误差小于 2% 即可稳定通信。USART1 挂 APB2(72MHz)、USART2/3 挂 APB1(36MHz)。
⭐ 评分 /5 💬 0 条评价 💰 0 次打赏
✍️ 这个计算结果有用吗?
点击星评价
实名注册用户可彰显昵称,游客用随机名
💰 如果这个工具帮到了你
扫码打赏支持持续更新,让更多工程师用上免费工具
🧰 更多工具
⏱️ 定时器计算器 📊 ADC 转换 ⏰ 时钟分频计算 📌 引脚功能查询 🎛️ PWM 频率/占空比
▶ 回到计算器继续算 →