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

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

1.现象

QQ截图20170419080953.png
STM32晶振导致的串口乱码问题解决_第1张图片
QQ截图20170419080727.png

2.解决方法

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

1)修改stm32f10x.h为可读写

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

STM32晶振导致的串口乱码问题解决_第2张图片
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)
STM32晶振导致的串口乱码问题解决_第3张图片
acba17c0968d8a69df41067a18f06eee.png

3.改后结果

STM32晶振导致的串口乱码问题解决_第4张图片
QQ截图20170419082701.png

你可能感兴趣的:(STM32晶振导致的串口乱码问题解决)