【问题解决】STM32F4串口打印乱码问题
首先声明,使用的芯片为STM32F407ZET6、使用标准库。
问题简述:使用串口作为调试用时,发现串口调试助手接收到的数据显示乱码,更改单片机、调试助手的波特率后还为解决。但发现一个有趣的问题,串口调试助手下发的数据再由单片机上传是无错误的。串口调试助手的问题可以排除,故问题出在了单片机一侧。
解决思路:既然串口调试助手、波特率的问题都排除掉了,进而就怀疑到了单片机的时钟上。
经过排查,发现我的板子上使用的是8MHz的晶振,而F4的标准库默认为25MHz晶振。
在 stm32f4xx.h 文件中,我找到如下定义:
具体位置大概在120行
/*** @brief In the following line adjust the value of External High Speed oscillator (HSE)used in your application Tip: To avoid modifying this file each time you need to use different HSE, youcan define the HSE value in your toolchain compiler preprocessor.*/
#if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */#endif /* HSE_VALUE */
In the following line adjust the value of External High Speed oscillator (HSE) used in your application(在下一行中,调整应用中使用的外部高速振荡器(HSE)的值)
这就是外部晶振的默认频率定义。因为没有定义 HSE_VALUE ,故被定义为 (uint32_t)25000000
解决办法:只需将 HSE_VALUE 定义为 (uint32_t)8000000 即可。
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#if !defined (HSE_VALUE) #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */#endif /* HSE_VALUE */
经过重新编译,可以正常打印串口信息。问题解决!
如果问题仍未解决,可考虑时钟树的配置问题。
【问题解决】STM32F4串口打印乱码问题相关推荐
- 串口打印乱码问题处理
USART打印乱码 问题现象 解决方式 问题现象 问题来源 这个文件中串口打印输出正常 这里乱码 解决方式 有的串口工具只支持GB2312,有的只支持UTF-8,所以编写代码时,编码的设置需要与串口工 ...
- 移植Linux-3.4.2过程学习笔记1——串口打印乱码问题
本文跟随着韦东山老师的毕业班移植内核视频进行学习. 首先 tar -xjf linux-3.4.2.tar.bz2 cd linux-3.4.2 修改顶层Makefile: ARCH ?= arm C ...
- STM32 USB_TxWrite虚拟串口打印乱码
1.关于USB_TxWrite输出乱码的问题 使用printf打印UWB时间戳,会有延迟,所以采用USB打印.用到的函数是sprintf.对于这个函数有些生疏,调试时发现输出乱码.直接使用USB_ ...
- 关于麒麟座开发板串口打印乱码与其它工程用官方源码出问题的解决方案
我用的是迷你板,感觉板子小巧精致甚是受大家喜爱.我们抱有学习目的同志们当然不能止步于只看官方的源码,只用官方的工程.那么自己建立工程学习的过程中一般你们会遇到程序在其它板子上跑的没问题,但下载到迷你板 ...
- 串口打印中文乱码及注释乱码问题
1.使用keil5代码注释出现中文乱码问题 在使用keil5中出现如下问题: 这时候的解决方法是在keil5顶头工具栏上进入:Edit→Configuration,如下然后进行选择GB2312编码方式 ...
- 串口console乱码_串口打印机不能打印或打印乱码
为何通过串口不能打印或打印乱码? 一.硬件准备 首先确保你的硬件满足以下条件,并且使用的串口线是 XPrinter 指定代理 或经销商提供的标准线缆. 打印机 : 请先确认你的打印机端确实是串口, X ...
- 瑞萨单片机boot程序中串口打印字符串乱码-问题记录
MCU型号: R7F0C004 编辑软件:CS+ for CC 在boot工程中,通过串口打印字符串,例如调用UART2_Send_String("uart output test!\r\n ...
- Keil串口打印log显示乱码
Keil串口打印log显示乱码原因分析及解决方案 背景 出错原因及解决方案 1. 波特率不正确 2. 编码格式不正确 3. 外部晶振不一致 小结 背景 使用GD32F450IIH6作为MCU时,外部晶 ...
- XCOM V2.6 串口打印出来中文乱码,字体格式错乱的一种原因(设置没问题,突然乱码)
一.问题重现 XCOM V2.6里,完全一样的设置,之前显示的好好的,后来突然中文出现乱码,字体格式也大变,如下图: 二.解决方案 一般这种乱码,往往都是因为波特率等参数设置错误,这类错误网上均有相应 ...
最新文章
- 将带下划线的字符串转换成大写(下划线后大写)的高效方法
- Hive的索引操作【小结】
- Android 动态设置 layout_centerInParent
- 信息学奥赛C++语言:幸运奶牛
- POJ3349 哈希算法
- RocketMQ(一)——发展历程及基本概念
- 作为外包,你有过不甘吗?| 畅言
- vue实现单页面多标签页
- x264编码详细文字全过程
- 电视android怎么连接手机助手下载,电视与手机怎么连接?最实用的三种小技巧!...
- linux命令 sync,linux sync命令详解
- RK3399 ALC5640芯片配置
- 小型微型计算机小错误,如何查看IBM小型机系统的错误记录
- java、web前端开发日常记录
- 基于python3.5+opencv+windowsAPI图像识别实现的连连看外挂
- 正式工作后的一些变化和感受
- jellyfin 字幕方框问题
- 从零开始,简单几步教会你shopify店铺设计
- 产品设计工具-摩客和墨刀
- 初中计算机表格处理教案,初中信息技术Excel教案设计