其他分享
首页 > 其他分享> > 关于STM32串口波特率的产生,以及USARTDIV写入到USART_BRR寄存器的值

关于STM32串口波特率的产生,以及USARTDIV写入到USART_BRR寄存器的值

作者:互联网

#关于STM32串口波特率的产生,以及如何从USART_BRR寄存器值得到USARTDIV
波特率计算公式
fCK是时钟频率,这里我们假设72000000Hz,如果需要设置的波特率为115200,那我们可以计算出USARTDIV = 39.0625

我们将39.0625写到USART_BRR寄存器
USART_BRR寄存器
从图中可以看出,USART_BRR寄存器的前四位表示小数部分也就是0.0625,第五位到第十六位表示整数部分也就是39.
即:DIV_Mantissa = 0x27
那么小数部分呢?
我们来看一下,小数部分的最大值就是1,而4位的表示就把1分成了16份,每一份都表示1/16。
将0.0625除以1/16就得到了小数部分写入的值,即DIV_Fraction = 0x01.
那么USART_BRR = 0x271.

标签:USART,串口,BRR,USARTDIV,寄存器,波特率,小数
来源: https://blog.csdn.net/m0_50728139/article/details/113747627