STM32 时钟配置的坑

今天在调试公司的一款产品的时候发现8M的晶振用完了,于是找了一个16M的替代

坑爹的就在这里,明明已经把时钟按照时钟树配置好了,但是串口等外设一直无法正常工作

折腾了一下午,终于发现这位老兄的文章http://www.eeworld.com.cn/mcu/article_2016101130348.html

在stm32f10x.h中91-97行的代码如下:

#if !defined  HSE_VALUE

  #ifdef STM32F10X_CL   

         #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */

  #else 

         #define HSE_VALUE    ((uint32_t)16000000) /*!< Value of the External oscillator in Hz */

  #endif /* STM32F10X_CL */

  #endif /* HSE_VALUE */

其实STM32并不知道外部接多少频率的晶振,要在stm32f10x.h中给出,所以需要手动配置 HSE_VALUE    ((uint32_t)16000000) 

原文地址:https://www.cnblogs.com/huanjun/p/9757547.html