设备信息
我使用的开发板是正点原子的stm32f407探索者开发板 ,使用的固件库以及程序是从野火资料下载中心下载的,使用串口查看数据的时候,上位机接收到的数据显示总是乱码,具体如下图所示。
解决方案
每一款单片机都有自己的时钟源,存在外部高速时钟(HSE)和外部低速时钟(LSE),而单片机中的系统时钟最大值为168Mhz,一般都是由外部高速时钟提供,然后经过内部锁相环吧频率升上去。
外部高速晶振如图,正点原子探索者为8M,而野火的霸天虎为25Mhz,两款时钟源不同,因此直接复制的话,会使得,内部时钟混乱。因此出现串口乱码的情况,因此改串口或者该系统时钟源都可以。
在这里我用的是配置系统时钟源,是其最后都达到168Mhz。
正点原子及8M HSE开发版时钟配置
野火霸天虎25MHZ开发版时钟配置
可以看出二者在一些系统寄存器的配置上不都一样
解决办法
1、 PLL_M
全局搜索“#define PLL_M ”——在system_stm32f4xx.c文件中
/************************* PLL Parameters *************************************/
#if