STM32波特率相关的寄存器STM32单片机设置波特率的寄存器只有一个:USART_BRR寄存器,如下图所示。 该寄存器的有效位数为16位,前4位用于 STM32学习——串口通信,LED点灯(寄存器版本) USART_BRR的值,因为一般我们知道的是波特率,和 PCLKx的时钟,要求的就是USART_BRR的值。 下面我们来介绍如何通过USARTDIV得到串口
根据USART_BRR的值可知波特率除数USARTDIV = 0x10A;频率为62MHZ则波特率 = 62MHz/USARTDIV = 57692.983 bps。
比如说我要做到USARTDIV=1.5,那么就是fclk每记数16*(1.5)=18下得到一个输出时钟周期,我要做到USARTDIV=3.625,那么就是记数16*(3.625)=58下得到一个输出时钟周期。 那么如果想要USARTDIV=1.95怎么办,不好意思做不到,只能往最近的分母为16的分数靠,我们就0.95*16=15.2,向下取整15,得到USARTDIV=1+15/16。这...