求助关于STM32F407 串口波特率只有设定值一半的问题

2019-07-20 02:39发布

以下三个地方是我的设定值:


.  USART_Init(USART1, &USART_InitStructure); 初始化函数中设定115200
.  #define HSE_VALUE ((uint32_t)8000000) 我的晶振是8MHz
.  /* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M 8
/* USB OTG FS, SDIO and RNG Clock = PLL_VCO / PLLQ */
#define PLL_Q 7

#if defined (STM32F40_41xxx)
#define PLL_N 336
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P 2
#endif /* STM32F40_41xxx */

#if defined (STM32F427_437xx) || defined (STM32F429_439xx)
#define PLL_N 360
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P 2
#endif /* STM32F427_437x || STM32F429_439xx */

#if defined (STM32F401xx)
#define PLL_N 336
/* SYSCLK = PLL_VCO / PLL_P */
#define PLL_P 4
#endif /* STM32F401xx */

我百度了好多,都是提到这三个地方可能导致问题 ,我都改好了(或者还是有问题?) 但和串口助手通讯时 助手设定波特率115200 乱码 设定57600时正常,一直都是。
但修改PLL_M=16时正常了
我用  STM32F4xx-Clock-Configuration-V1.1.0.xls  这个表格自动生成的system_stm32f4xx.c文件代替我自己的,问题照旧。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。