STM32晶振导致的串口乱码问题解决

时间:2022-07-23
本文章向大家介绍STM32晶振导致的串口乱码问题解决,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

在学习串口程序的时候,发现波特率是正确的,但是串口调试助手中查看串口打印的时候,发现是乱码。 下面是解决方法

1.现象

QQ截图20170419080953.png

QQ截图20170419080727.png

2.解决方法

由于很多串口例程都是设定单片机晶振是8MHz,而我用的单片机是12MHz。所以要对stm32f10x.h进行一些修改。

1)修改stm32f10x.h为可读写

此文件原来是只读的,若要修改,需要把只读的勾取消掉

876862b36b574a257b3fe607ab436111.png

2)在stm32f10x.h文件中加入一个宏定义

可以在stm32f10x.h文件中通过ctrl+f搜索HSE_VALUE,找到这段话,然后将下面的宏定义加入。

  • 8MHz改成12MHz #define HSE_VALUE ((uint32_t)12000000)
  • 12MHz改成8MHz #define HSE_VALUE ((uint32_t)8000000)

acba17c0968d8a69df41067a18f06eee.png

3.改后结果

QQ截图20170419082701.png