STM32F4的USART1和USART6都是挂在RCC_APB2Periph_USART1时钟下,168MHZ下,USART1和USART6挂的APB2主频是84MHZ,uart3等挂的是APB1主频是48MHZ。默认情况下的时钟树如下图

关于STM32F4 USART6 1200波特率乱码问题

所以在默认情况下,UART2 ~ UART5波特率在1200可以正常,USART1和USART6会通信失败。

解决方法:

我们将APB2的频率降到48Mhz,调用void RCC_PCLK2Config(uint32_t RCC_HCLK)该函数,如下图

关于STM32F4 USART6 1200波特率乱码问题

函数传入参数

关于STM32F4 USART6 1200波特率乱码问题

结合之前的时钟树,将APB2的主频降低。

测试结果显示将APB2主频降到48MHZ以后,1200波特率可稳定工作。

相关文章:

  • 2021-12-19
  • 2022-01-07
  • 2021-11-20
  • 2021-05-16
  • 2021-04-09
  • 2021-11-13
  • 2021-12-11
  • 2021-06-27
猜你喜欢
  • 2021-12-01
  • 2021-10-11
  • 2022-12-23
  • 2022-01-13
  • 2021-09-12
  • 2021-07-11
  • 2021-10-02
相关资源
相似解决方案