这几天调试Stm32f407DISCOVEY。由于没有串口现成的库函数例程,就用的神州王开发板上的例程直接调,结果串口输出老是乱,115200波特率;;试着把它换到 38400居然可以打印,相差3倍多;真相只有一个,进过调试摸索百度,终于找到原因;
.时钟频率不对 由于时钟频率是在库文件里自动定义好的,一开始没有发现,但是波特率一直不对,后来发现问题在库文件里定义的外部晶振是25M,而DISCOVERY的板子上用的是8M的晶振,故产生的主频不对,需要改两个地方,①所以在 stm32f4xx.h中改#if !defined (HSE_VALUE)
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* HSE_VALUE */
在system_stm32f4xx.c中改
/* PLL_VCO = (HSE_VALUE or HSI_VALUE / PLL_M) * PLL_N */
#define PLL_M 8
串口正常打印了;
本文详细阐述了解决STM32F407DISCOVERY开发板调试过程中遇到的串口输出混乱问题。通过发现库文件中时钟频率设置错误,将外部晶振频率从25MHz改为8MHz,成功解决了波特率不匹配的问题,最终实现正常打印。
6361

被折叠的 条评论
为什么被折叠?



