STM32串口打印输出乱码的解决办法
前言
最近在试用uFUN开发板,下载配套的Demo程序,串口数据输出正常,当使用另一个模板工程,调用串口printf调试功能时,输出的却是乱码,最后发现是外部晶振频率不一样。很多STM32开发板都是使用的8M晶振,这个也是ST官方推荐的晶振频率,而且固件库默认是8M频率,倍频系数9。而uFUN开发板的晶振是和CH340共用一个12M晶振。如果固件库的参数不和硬件实际连接的晶振频率一致,那么不仅是串口会出现乱码,而且定时器这些也是不准确的,因为基本的工作时钟被打乱了。其实之前也遇到过这个问题,这次就算是记录一下吧!
1.修改stm32f10x.h文件中的晶振频率
打开工程中的stm32f10x.h
文件,Ctrl+G
快捷键定位到119行,把宏定义
#define HSE_VALUE ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
外部晶振频率8M修改为12M
#define HSE_VALUE ((uint32_t)12000000) /*!< Value of the External oscillator in Hz */
如下图所示:
2.修改system_stm32f10x.c文件中的倍频系数
打开工程中的system_stm32f10x.c
文件,Ctrl+G
快捷键定位到1056行,把宏定义
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL9);
倍频系数由9修改为6,因为STM32F103主频最高到72MHz,外部晶振改为12M后,所以倍频系数改为6
RCC->CFGR |= (uint32_t)(RCC_CFGR_PLLSRC_HSE | RCC_CFGR_PLLMULL6);
如下图所示:
总结
当然串口乱码可能不止这一个原因,这个解决方法只针对于外部晶振的改变,导致的串口数据乱码。其他问题还要仔细分析,总得来说,两个问题:程序问题,硬件问题。
参考资料:
- STM32串口通信乱码详细处理方法
历史精选文章:
- 【UFUN开发板评测】小巧而不失精致,简单而不失内涵——uFun开发板开箱爆照
- 一键自动格式化你的代码
- Qt小项目之串口助手控制LED
- Jlink使用技巧之烧写SPI Flash存储芯片
- Jlink使用技巧之虚拟串口功能
- Jlink使用技巧之读取STM32内部的程序
- Jlink使用技巧之J-Scope虚拟示波器功能
- C++学习之从C到C++
欢迎大家关注我的个人博客
或微信扫码关注我的公众号
STM32串口打印输出乱码的解决办法相关推荐
- ubuntu下文件名乱码的解决办法
ubuntu下文件名乱码的解决办法 (2012-11-30 11:38:49) 转载▼ 标签: 终端 ubuntu it 分类:系统问题 ubuntu下文件名乱码的解决办法 最近一直在用u ...
- php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法
使用phpexcel类库导出excel文件,文件名为中文时,在chrome浏览器下导出正常,在IE内核浏览器下导出文件名显示乱码,解决办法就是通过iconv函数转换编码,从utf-8转为gb2312, ...
- freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法
PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. ...
- redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法
redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法 事情的经过是这样的 记得以前曾经在VMware 5.5.3 上装过redhat 估计是9吧 当初我选的是图形 ...
- php站中文转码在iis 7.5乱码,iis伪静态中文url出现乱码的解决办法
首先要看下你安装的是IIS rewrite_2.0还是ISAPI_Rewrite 3.x的伪静态插件. 如果你安装的是IIS rewrite_2.0的话,传递的参数都是UTF-8格式的,如果你网站是G ...
- Loadrunner乱码的解决办法
乱码出现的步骤 1.录制过程产生的乱码 2.运行过程编码不一致 录制的时候本机默认编码:GB2312,GBK,GB18030,而录制的网页有可能是uft-8编码 GB pk UTF-8 GB-X: ...
- EndNote导入文献出现带有大括号{}乱码的解决办法
文章目录 1 EndNote导入文献出现带有大括号{}乱码的解决办法 3 EndNote X9 插入参考文献常见问题总结 4 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 EndN ...
- php 返回英文乱码,使用php 5时MySQL返回乱码的解决办法_php
在使用 php 5 中,通过 mysql 查询得到的值全部成为 '???????',原来是字符集设错了. 我在安装 MySQL 5 时,已经选择默认字符集为 gb2312,但还是返回乱码,解决的办法是 ...
- R语言中导入excel乱码的解决办法
本文操作系统环境为win10,使用Rstdio. 要说明windows下在使用Rstdio的时候,在使用xlsx包,导入excel表乱码的解决办法. 1.我们先安装xlsx包 install.pack ...
最新文章
- 单片微型计算机系统应用和开发特点,单片微机原理及应用 徐春辉 电子工业出版社习题答案.doc...
- 用python+tornado+mongodb写的一个博客系统
- java语言中声明布尔型_【Java初探02】——Java语言基础
- 卸载源码安装mysql_CentOS 7.x 卸载删除MariaDB,重新安装,安装MYSQL离线版和源代码...
- Angular开发模式下的编译器和运行时的代码比较
- python的实例属性和静态属性表_Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法...
- [转]Android 常见安全漏洞修复理论与实践
- from 下拉框多个值提交_Git提交规范
- Python学习笔记(matplotlib篇)--多图figure
- 三、VueJs 填坑日记之项目文件认识
- 药一点进销存管理软件_gsp管理规范_财务管理软件
- 普通计算机安装服务器系统安装教程,Windows Server操作系统详细安装教程
- 浅谈RS-485协议
- 我在淘宝做前端的这三年 — 第三年
- ai旋转扭曲_AI变换及旋转图形工具详解
- linux时间时区和GPS/BD授时
- Unity3d:UGUI,UI与特效粒子层级,2018.2以上版本BakeMesh,粒子在两个Image之间且在ScrollView
- matlab FFT 和IFFT
- THREE.js为正方体的6个面贴上图片
- 推荐一款优秀的硬盘空间管理工具软件-TreeSize Free