阿波罗开发板串口例程移植到STM32F429 Discovery 输出数据乱码

2019-07-20 18:14发布

我把阿波罗的串口例程(HAL库)移植到STM32F429 Discovery,它使用的是8M晶振,我将Stm32_Clock_Init(360,25,2,8);更改为Stm32_Clock_Init(360,8,2,8);,但是串口输出的数据为乱码,我将 ret=HAL_RCC_ClockConfig(&RCC_ClkInitStructure,FLASH_LATENCY_5);  if(ret!=HAL_OK) while(1);这两句代码注释掉,串口出来的数据就是正确的,我感觉我这个时钟好像配置的有问题,但不知道问题出现在哪里,跪求大神指导!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
dream717
2019-07-20 21:01
还是我自己来解答吧!找了一天,终于找到问题了,STM32F429 Discovery使用的是8M晶振,在原子哥的例程上需要修改两个位置,第一个毫无疑问:Stm32_Clock_Init(360,25,2,8);更改为Stm32_Clock_Init(360,8,2,8);,第二个就是stm32f4xx_hal_conf.h文件中,将#define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */修改为#define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */,第二个是关键位置,会影响系统的时钟配置,如果此位置未修改,则最终系统的频率为180*25/8=562.5M,希望对遇到同类问题的朋友有所帮助。另外,MDK的Options->target中Xtal最好也更改为8M,软件仿真的时候可能会更准确一些。

一周热门 更多>