Stm32串口1+printf输出乱码问题

本文讲述了在使用Cubemx配置STM32串口时遇到的时钟频率问题,强调了HSE时钟配置的重要性。当外部时钟源HSE被错误设置为25MHz而非实际的8MHz时,导致串口通信出现乱码。解决办法是正确设定HSE_VALUE,尤其要注意Cubemx生成的工程中stm32f4xx_hal_conf_template.h文件中的定义,该文件中的HSE_VALUE定义才是影响系统的关键。
摘要由CSDN通过智能技术生成

易错点:

1、波特率,串口发送与串口助手对应,这个核对最简单!对数就行。

2、时钟频率:特别注意时钟频率问题,我在cubemx自己配置串口1+printf输出时,板子的外部时钟HSE频率为8MHz,结果在配置cubemx时,HSE时钟错误配置为25MHz,结果在引入stdio.h 并复用fputc之后仍然乱码,查找半天,大家都说是HSE时钟问题。

不同芯片外部时钟源频率不一样!!!!!一定要注意你的芯片的时钟。

HSE时钟默认值是:HSE_VALUE,在工程内部全局搜索:发现其实有两个地方定义了HSE_VALUE,其一是在system_stm32f4xx.c里面,这个我的理解是系统文件,这个里面关于HSE的定义是其他地方没有定义时才会起作用,这里的HSE数值默认是25MHz,但原子F407外部时钟源是8MHz!

在Cubemx生成的工程中,stm32f4xx_hal_conf_template.h中定义了HSE_VALUE,这里的定义才是影响系统的!!(前面我在网上搜到的好多资料都说要改HSE_VALUE),但都是在system_stm32f4xx.c里面改,但是用Cubemx生成的工程,stm32f4xx_hal_conf_template.h中定义了HSE_VALUE才是实际定义的!!!!!!

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值