如何更改uart通信波特率

如何更改uart通信波特率,第1张

实际编程时用库函数直接设置即可,不需要计算。分数波特率的产生:接收器和发送器(RX和TX)都是设置城USARTDIV整数和小数寄存器中配置的值。TX/RX波特率=Fck/(16*USARTDIV)例子:从BRR寄存器的值计算得到USARTDIV 如果DIV_Mantissa=27D,DIV_Fraction=12D(BRR=1BCH),那么 Mantissa(USARTDIV)=27D Fraciton(USARTDIV)=12/16=0.75D 因此,USARTDIV=27.75D在写入USART_BRR后,波特率计数器会被波特率寄存器中的新值更新,因此在处理期间不应改变波特率寄存器的值,只有USART1是由PCK2(最大位72MHZ)提供时钟,其他的都由PCLK1提供时钟(最大为36MHZ)

下图是STM32 101系列的总线图。下面以此为例分析其差异:

(若是其它系列需要参考其它系列的总线图)

其差异有:

所连接的外部IO口不同。因此需要初始化的IO口是有差异的。同时需要注意的是你的硬件所用引脚是否连接到了正确的IO口上,而同一个USART可能有不同的IO口可以复用,因此需要注意USART和IO口之间的映射关系。

所连接的总线不同,USART1连接到了APB2,而USART2连接到了APB1,因此,在初始化时钟时需要注意这方面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11261326.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存