Stm32设置串口300波特率 2400 4800 9600

Posted on 2020-08-29 17:24  单片机人生  阅读(2153)  评论(0)    收藏  举报

Stm32设置串口300波特率

 

  本文以串口4为例子:

  在APB1为72MHz的时钟频率下,是设置不了300波特率的,原因在于 Tx/Rx baud = fck / (16 * reg_value) ,reg_value是写进USART_BRR寄存器里。

  比如我们要设置300波特率, reg_value = 72000000/ (16 * 300) = 15000,虽然能计算出来,但注意,USART_BRR的前四位存放的是小数部分,后12位存放的是整数部分,所以整数部分最大位4095,根本达不到15000,因此只能改变APB1的时钟频率。

  调用  RCC_PCLK1Config(RCC_HCLK_Div4);  把72MHz除于4 等于18MHz, reg_value = 18000000/ (16 * 300) = 3750  3750这个值是够放的。

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3