uart-speed
串口波特率计算补充
由于单片机内部的RC时钟引起的误差而导致的产品失效,比如 Uart串口通信(常温不可以通信,温度高才行)、Watchdog看门狗复位失灵等等。所以在这里补充一下串口波特率相关计算。“串口波特率的最大偏差多少,对方就不能接收了或出错了?”
最常见的10位串口的输出时序( 1个起始位 + 8个数据位 + 1个停止位 )
我们要确保实际波特率对应的 D0 ~ D7 时区段,都分别落在对方波特率的采样点的范围内,
从多个常见的波特率推送来看,****最大偏差一般在5% 以内都可以正常通信。
但考虑到不同芯片的采样点的方式有所不同,以及一帧的串口位不同(数据位越长,累计的偏差会更多),建议确保波特率控制在2%以内最好。
- 值得注意的是,每次接收数据采样点均会从第1 bit 数据初始化,这意味着采样偏差并不会累积至下一次数据传输,如图1所示,每次检测到下降沿时将重新开始进行数据采样。