前言:
最近在搞STM32F429IGT6的串口,发现使用别人工程串口输出没问题,但是使用自己新建工程的时候,他是乱码的。经查阅资料,是因为我直接用的官网的库函数,官网的函数默认晶振频率是8MHZ,而我的单片机连接的晶振是25MHZ的。
1、错误的现象
我是用的函数如下:
/**************************************************************************
**作者: 小丁学习
**工程内容: printf函数输出
**时间: 2020.10.16
***************************************************************************/
#include "sys.h"
//---------------------主函数-------------------------------------------------
int main(void)
{
HAL_Init();//========================初始化HAL库
Stm32_Clock_Init(360,25,2,8);//======设置时钟,180Mhz
delay_init(180);//===================初始化延时函数
uart_init(115200);//=================初始化USART
while(1)
{
printf("小丁学习rn");
}
}
//---------------------end-----------------------------------------------------
然后我下载到单片机然后输出的是:
2、解决办法:
打开stm32f4xx_hal_conf.h文件,并找到如下的代码。
将这里的8000000改为25000000,当然如果你用的别的晶振,需要换成对应的数值。
3、最后结果
(问题解决,如果对大佬您有帮助的话,给小丁个赞呗,谢谢大佬)
前言:
最近在搞STM32F429IGT6的串口,发现使用别人工程串口输出没问题,但是使用自己新建工程的时候,他是乱码的。经查阅资料,是因为我直接用的官网的库函数,官网的函数默认晶振频率是8MHZ,而我的单片机连接的晶振是25MHZ的。
1、错误的现象
我是用的函数如下:
/**************************************************************************
**作者: 小丁学习
**工程内容: printf函数输出
**时间: 2020.10.16
***************************************************************************/
#include "sys.h"
//---------------------主函数-------------------------------------------------
int main(void)
{
HAL_Init();//========================初始化HAL库
Stm32_Clock_Init(360,25,2,8);//======设置时钟,180Mhz
delay_init(180);//===================初始化延时函数
uart_init(115200);//=================初始化USART
while(1)
{
printf("小丁学习rn");
}
}
//---------------------end-----------------------------------------------------
然后我下载到单片机然后输出的是:
2、解决办法:
打开stm32f4xx_hal_conf.h文件,并找到如下的代码。
将这里的8000000改为25000000,当然如果你用的别的晶振,需要换成对应的数值。
3、最后结果
(问题解决,如果对大佬您有帮助的话,给小丁个赞呗,谢谢大佬)
举报