在串口通信实验中,如果出现了通信乱码问题,如图
串口通信成功了,但是接收的数据是乱码,可以从以下几个方面解决:
1,PC端和MCU的波特率是否一致
2,MCU的外部晶振大小和库函数设置的外部晶振大小不一致
波特率很好检查,本文重点检查外部晶振配置。
我用的是正点原子的STM32F407ZG6,在进行串口通信时一直是乱码。
GPIO,串口配置都没问题,最后出问题的地方就是外部晶振配置。
我们知道STM32在使用外设的时候必须打开时钟,外设主要用的是外部时钟。
如图正点原子的外部时钟是8MHZ
而stm32f4xx.h中外部时钟默认是25MHZ,所以时钟不同步,通信肯定会出问题。
注:如果是野火的霸道开发板则不需要改库函数的外部晶振,因为野火用的外部晶振是25MHZ,和库函数配置一样,不需要修改.
文章来源于:电子工程世界 原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。