你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32串口通信出现乱码

[复制链接]
STMCU小助手 发布时间:2022-12-23 16:00
问题产生
最近学习了一下32的串口通信,串口配置还是很简单的,不过后面串口调试助手上面出现的乱码。很让人头疼。

当然第一时间去百度寻求解决办法。

先排查这两个问题
1.USB转串口的问题
解决方法: USB转串口坏了的话,换一个好的就没事了。(ps:这个出现的概率比较小)


2.波特率不同步的问题

出现乱码,首先检查一下,串口助手的波特率是不是和程序设置的是一样的,如果一样的话出现乱码,参考下面的解决方法。


外部晶振对串口的影响
stm32的串口使用的是外部高速时钟的时钟源

串口外设是挂在APB总线上的,一般用于低速外设,它是AHB总线时钟分频所得。
这样设计分频是为了降低低速外设的开关损耗。

然而AHB总线的时钟又源自于高速时钟源。高速时钟源可以是高速内部时钟、高速外部时钟、高速内部或外部时钟PLL倍频所得。

所以最终串口的波特率受高速时钟的影响。

20200529211121373.png


问题解决
首先找到自己板子上外部晶振,并确定它的大小。

20200601171957548.jpg

▲ 博主板子上晶振是8Mhz
在官方标准库中,外部时钟频率配置默认 25MHz 的晶振。

而我们需要将外部时钟频率配置成适合自己板子的。

找到 stm32f4xx.h ,在 .h 文件120行左右的地方,默认是这样的:

  1. /**
  2. * @brief In the following line adjust the value of External High Speed oscillator (HSE)
  3.    used in your application
  4.    
  5.    Tip: To avoid modifying this file each time you need to use different HSE, you
  6.         can define the HSE value in your toolchain compiler preprocessor.
  7.   */   
  8. #if !defined  (HSE_VALUE)
  9.   #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
  10.   
  11. #endif /* HSE_VALUE */
复制代码

▲ 默认25Mhz
下面只需定义一下自己开发板的外部时钟源频率即可:(加个宏定义)
  1. /**
  2. * @brief In the following line adjust the value of External High Speed oscillator (HSE)
  3.    used in your application
  4.    
  5.    Tip: To avoid modifying this file each time you need to use different HSE, you
  6.         can define the HSE value in your toolchain compiler preprocessor.
  7.   */   
  8.        
  9. #define HSE_VALUE   ((uint32_t)8000000)    // 定义自己开发版上的外部时钟源频率
  10. #if !defined  (HSE_VALUE)
  11.   #define HSE_VALUE    ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
  12.   
  13. #endif /* HSE_VALUE */
复制代码

附:如果串口助手没有收到任何东西,请检查连接 TX 、RX 端子的杜邦线是否松动。


总结
对于 stm32 的 F1 和 F4 等系列,如果出现串口通信出现乱码的问题,都可以尝试使用上述方法解决。

自己开发板上的外部晶振要了解,如果某一总线的时钟来源于外部时钟源,自己使用的外设恰好挂靠在该总线上,利用官方标准库,一定要将 stm32f4xx.h 文件中相关配置加以修改。
————————————————
版权声明:AXYZdong

收藏 评论0 发布时间:2022-12-23 16:00

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版