原因一:

初始化串口的波特率与串口调试助手不一致。

 

原因二:

晶震不一致。

串口输出始终乱码,外部时钟频率配置错误导致的,库使用默认8MHz晶震,可以通过宏使用25MHz晶震。具体定义在 stm32f10x.h 文件中

开发板晶震使用的12MHz晶震,定义一个宏修改成12000000,编译,烧写。

 

#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)8000000) /*!< Value of the External oscillator in Hz */
 #endif /* STM32F10X_CL */
#endif /* HSE_VALUE */

 

修改为:

 

#define HSE_VALUE    ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
#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)8000000) /*!< Value of the External oscillator in Hz */
 #endif /* STM32F10X_CL */
#endif /* HSE_VALUE */

 

REF

http://www.elecfans.com/emb/danpianji/20180613694741.html