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

来源:互联网 发布:c语言编程小程序 编辑:程序博客网 时间:2024/06/02 05:58

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


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

解决方法:

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


函数传入参数


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

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

原创粉丝点击