【STM32】串口通信出现乱码(使用官方标准库)
![【STM32】串口通信出现乱码(使用官方标准库)](https://static001.geekbang.org/infoq/7b/7bb454c76ef3af945020d910754f30a0.jpeg)
Author:AXYZdong
自动化专业 工科男
有一点思考,有一点想法,有一点理性!
定个小小目标,努力成为习惯!在最美的年华遇见更好的自己!
更多精彩文章前往:👉 个人主页
![](https://static001.geekbang.org/infoq/ae/ae4c45de60ad96b75c192e2cb4a3e376.png)
- 开发板:stm32f407VET6
- 开发环境:keil5 MDK
为了使文章的内容完整,增加了一下原因的叙述,没有兴趣的话可以直接跳转到
问题解决
问题产生
最近学习了一下 32 的串口通信,串口配置还是很简单的,不过后面串口调试助手上面出现的乱码
。很让人头疼。
当然第一时间去百度寻求解决办法。
百度搜索总结:
- 在程序不出现问题的情况下,一定是
外部晶振设置
的问题。但是也要排查下面 👇 两个问题
先排查这两个问题
1.USB 转串口的问题
解决方法: USB 转串口坏了的话,换一个好的就没事了。(ps:这个出现的概率比较小)
2.波特率不同步的问题
出现乱码,首先检查一下,
串口助手的波特率是不是和程序设置的是一样的
,如果一样的话出现乱码,参考下面的解决方法。
外部晶振对串口的影响
stm32 的串口使用的是外部高速时钟的时钟源
串口外设是挂在 APB 总线上的,一般用于低速外设,它是 AHB 总线时钟分频所得。
这样设计分频是为了降低低速外设的开关损耗。
然而AHB总线的时钟又源自于高速时钟源
。高速时钟源可以是高速内部时钟、高速外部时钟、高速内部或外部时钟 PLL 倍频所得。
所以最终串口的波特率受高速时钟的影响。
![](https://static001.geekbang.org/infoq/92/92e8ee9f60359c6a164358a640f3188d.png)
问题解决
首先找到自己板子上外部晶振,并确定它的大小。
![](https://static001.geekbang.org/infoq/0e/0ee6430a024d97c1116df8f06e6990a1.jpeg?x-oss-process=image/resize,p_80/auto-orient,1)
在官方标准库中,外部时钟频率配置默认 25MHz 的晶振。
而我们需要将外部时钟频率配置成适合自己板子的。
找到 stm32f4xx.h ,在 .h 文件 120 行左右的地方,默认是这样的:
▲ 默认 25Mhz
下面只需定义一下自己开发板的外部时钟源频率即可:(加个宏定义)
附:如果串口助手没有收到任何东西,请检查连接 TX 、RX 端子的杜邦线是否松动。
总结
对于 stm32 的 F1 和 F4 等系列,如果出现串口通信出现乱码的问题,都可以尝试使用上述方法解决。
自己开发板上的外部晶振要了解,如果某一总线的时钟来源于外部时钟源,自己使用的外设恰好挂靠在该总线上,利用官方标准库,一定要将 stm32f4xx.h 文件中相关配置加以修改。
【参考文献】
[1]:https://blog.csdn.net/qq34179721/article/details/97427395?utmmedium=distribute.pc_relevant.none-task-blog-baidujs-2
猜你喜欢:
【STM32】0.96 寸 OLED 显示屏(7 针 SPI 协议)软件模拟 SPI
【STM32】1.44 寸 TFT 液晶屏显示字符、汉字和图片
【STM32】stm32f407 + DS18B20 碰出不一样的火花
本次的分享就到这里
![](https://static001.geekbang.org/infoq/61/6146a3699d8489b1d4d424a9fa3b479c.gif)
好书不厌百回读,熟读自知其中意。将学习成为习惯,用知识改变命运,用博客见证成长,用行动证明努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
听说 👉 点赞 👈 的人运气不会太差,每一天都会元气满满呦!^ _ ^
码字不易,大家的支持就是我坚持下去的动力。点赞后不要忘了👉 关注 👈我哦!
如果以上内容有任何错误或者不准确的地方,欢迎在下面👇留个言。或者你有更好的想法,欢迎一起交流学习~~~
版权声明: 本文为 InfoQ 作者【AXYZdong】的原创文章。
原文链接:【http://xie.infoq.cn/article/57250218fa184c602f054592f】。文章转载请联系作者。
评论