STM32
直播中

蒋美燕

7年用户 910经验值
私信 关注
[问答]

为什么STM32F429IGT6的串口输出会出现乱码的现象呢

为什么STM32F429IGT6的串口输出会出现乱码的现象呢?有何解决办法?

回帖(1)

乔飞

2021-12-2 09:28:33
前言:

  最近在搞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、最后结果

  
  

  

   (问题解决,如果对大佬您有帮助的话,给小丁个赞呗,谢谢大佬)
  
举报

更多回帖

发帖
×
20
完善资料,
赚取积分