前言

最近在试用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串口打印输出乱码的解决办法相关推荐

  1. ubuntu下文件名乱码的解决办法

    ubuntu下文件名乱码的解决办法 (2012-11-30 11:38:49) 转载▼ 标签: 终端 ubuntu it 分类:系统问题 ubuntu下文件名乱码的解决办法       最近一直在用u ...

  2. php excel中文名称乱码,phpexcel导出中文文件名乱码的解决办法

    使用phpexcel类库导出excel文件,文件名为中文时,在chrome浏览器下导出正常,在IE内核浏览器下导出文件名显示乱码,解决办法就是通过iconv函数转换编码,从utf-8转为gb2312, ...

  3. freetds php mssql 中文乱码,PHP读取mssql json数据中文乱码的解决办法

    PHP及网页使用UTF-8编码,数据库是sql server2008,使用默认编码(936,即GBK编码) 当读取数据库数据时,使用php自带的json_encode()返回到前端,结果中文不显示. ...

  4. redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法

    redhat enterprise 5 在 VMware 6.5 中中文显示乱码的解决办法 事情的经过是这样的 记得以前曾经在VMware 5.5.3 上装过redhat 估计是9吧 当初我选的是图形 ...

  5. php站中文转码在iis 7.5乱码,iis伪静态中文url出现乱码的解决办法

    首先要看下你安装的是IIS rewrite_2.0还是ISAPI_Rewrite 3.x的伪静态插件. 如果你安装的是IIS rewrite_2.0的话,传递的参数都是UTF-8格式的,如果你网站是G ...

  6. Loadrunner乱码的解决办法

    乱码出现的步骤 1.录制过程产生的乱码 2.运行过程编码不一致   录制的时候本机默认编码:GB2312,GBK,GB18030,而录制的网页有可能是uft-8编码 GB pk UTF-8 GB-X: ...

  7. EndNote导入文献出现带有大括号{}乱码的解决办法

    文章目录 1 EndNote导入文献出现带有大括号{}乱码的解决办法 3 EndNote X9 插入参考文献常见问题总结 4 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 EndN ...

  8. php 返回英文乱码,使用php 5时MySQL返回乱码的解决办法_php

    在使用 php 5 中,通过 mysql 查询得到的值全部成为 '???????',原来是字符集设错了. 我在安装 MySQL 5 时,已经选择默认字符集为 gb2312,但还是返回乱码,解决的办法是 ...

  9. R语言中导入excel乱码的解决办法

    本文操作系统环境为win10,使用Rstdio. 要说明windows下在使用Rstdio的时候,在使用xlsx包,导入excel表乱码的解决办法. 1.我们先安装xlsx包 install.pack ...

最新文章

  1. 单片微型计算机系统应用和开发特点,单片微机原理及应用 徐春辉 电子工业出版社习题答案.doc...
  2. 用python+tornado+mongodb写的一个博客系统
  3. java语言中声明布尔型_【Java初探02】——Java语言基础
  4. 卸载源码安装mysql_CentOS 7.x 卸载删除MariaDB,重新安装,安装MYSQL离线版和源代码...
  5. Angular开发模式下的编译器和运行时的代码比较
  6. python的实例属性和静态属性表_Python:类属性,实例属性,私有属性与静态方法,类方法,实例方法...
  7. [转]Android 常见安全漏洞修复理论与实践
  8. from 下拉框多个值提交_Git提交规范
  9. Python学习笔记(matplotlib篇)--多图figure
  10. 三、VueJs 填坑日记之项目文件认识
  11. 药一点进销存管理软件_gsp管理规范_财务管理软件
  12. 普通计算机安装服务器系统安装教程,Windows Server操作系统详细安装教程
  13. 浅谈RS-485协议
  14. 我在淘宝做前端的这三年 — 第三年
  15. ai旋转扭曲_AI变换及旋转图形工具详解
  16. linux时间时区和GPS/BD授时
  17. Unity3d:UGUI,UI与特效粒子层级,2018.2以上版本BakeMesh,粒子在两个Image之间且在ScrollView
  18. matlab FFT 和IFFT
  19. THREE.js为正方体的6个面贴上图片
  20. 推荐一款优秀的硬盘空间管理工具软件-TreeSize Free

热门文章

  1. Windows内网协议学习Kerberos篇之PAC
  2. IVM在什么情况下可以使用
  3. 突变点检测:Pettitt突变点检测(python)
  4. PLSQL基本操作手册
  5. 翻译考试用计算机作答,2019年CATTI考试改为机考,官方首次披露真题
  6. Ubuntu22安装一些R包遇到的困难与解决方法(一)--igraph篇
  7. oracle启用amm,【内存管理】Oracle AMM自动内存管理详解
  8. springboot集成hadoop实战
  9. 物联网无线通信模块的新选择
  10. Flask项目实战--管理系统