波特率误差来自 **晶振不准 + 分频取整**。UART 在 bit 中央采样,累计相位误差过大就会错位,表现为乱码、丢字节。工程上端到端误差宜控制在约 **±1.5%~2.5%** 内。
### 典型坑
- 代码写 115200,示波器量 bit 宽却对应约 84k → 时钟树/PLL 配置错误。
- 廉价晶振温漂大,高温车间白天通、晚上不通。
- 51 等老内核用 12M 晶振跑 115200 时分频误差可能超标,更宜 11.0592MHz 一类「波特率友好」晶振。
### 排查
- 换 9600 试是否改善(低速更耐误差)。
- 逻辑分析仪量 bit 宽反推真实波特率。
- 核对 MCU 时钟源与 UART 分频寄存器。
- 在线助手快速切换波特率做二分,定位「实际线速」。
根治在硬件时钟配置;助手只能帮你发现「不是 115200」。把误差预算写进设计评审,比现场对骂波特率更有效。
### 设计阶段就避免
- 选晶振时同步评估目标波特率分频误差。
- 高波特率优先外部晶振而非粗糙内部 RC。
- 量产抽测:高低温下回环或对灌,确认误码率。
现场用助手二分波特率只是急救;把误差曲线写进测试报告,才能减少批量「同一批板有的乱码」。
联调记录建议包含:波特率与帧格式、接线方式、样本 HEX、现象与结论。使用 Web Serial Pro 等工具时可直接导出日志片段附在工单中,方便软硬件同事对齐。