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

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

关于STM32F4 USART6 1200波特率乱码问题_第1张图片

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

解决方法:

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

关于STM32F4 USART6 1200波特率乱码问题_第2张图片

函数传入参数

关于STM32F4 USART6 1200波特率乱码问题_第3张图片

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

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

你可能感兴趣的:(STM32F4)