STM32
直播中

李静

7年用户 957经验值
私信 关注
[问答]

Stm32如何设置串口300波特率?

STM32如何设置串口300波特率?

回帖(1)

张雯雯

2021-12-6 10:20:39
  本文以串口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这个值是够放的。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分