串口波特率并非越高越好,核心是“链路可靠性 + 实际需求”。波特率越高,每位时间越短,对线缆分布电容、噪声、地线压差越敏感,误码率会急剧上升。例如 9600bps 在普通杜邦线可传 2~3 米,而 115200bps 超过 1 米就可能出现乱码。选择原则:1) 满足业务吞吐量即可,留 20%~30% 余量;2) 优先选用双方硬件支持的常规值(9600、19200、38400、57600、115200);3) 若需长线或恶劣环境,降低波特率或改用 RS485/差分信号。调试代码时建议先固定波特率,用回环测试验证误码:
```c
// 初始化UART,注意核对时钟树和波特率寄存器配置
UART_Init(115200); // 短距离、高噪声时改用9600再测
```
实际项目中,我常按“距离 <0.5m 用 115200,<2m 用 38400,更长用 9600”作为起步值,再用示波器测眼图确认。不要盲目追求高速,稳定压倒一切。
mcuku 阿沐 · 2026-08-14