社区导航

 
快捷导航
  • 首页
  • 论坛
  • 查看新帖
  • 最新回复
  • 社区活动
  • 联系管理员
  • 消灭零回复
  • E金币兑换
  • 干货
搜索
查看: 358|回复: 7

[讨论] STM32F105使用的时候串口乱码解决方法

[复制链接]

1758

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

荣誉会员勋章

发表于 2018-3-14 17:00:44 | 显示全部楼层 |阅读模式
昨天调STM32F105的时候,串口老是出现乱码,修改相应的波特率也没有反应。在论坛搜了下帖子STM32F105串口乱码问题楼主问题解决了但是也没有说怎么解决的。
首先确认硬件没有问题,然后我的时钟晶振是8M的。
将 "stm32f10x.h" 做如下修改,就能解决问题。
#if !defined  HSE_VALUE
#ifdef STM32F10X_CL  
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#else
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */

此帖出自stm32/stm8论坛


回复

使用道具 举报

1007

TA的帖子

1

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-3-14 17:10:52 | 显示全部楼层
先调试看看系统时钟对不对,再看看硬件接线是不是有问题


回复

使用道具 举报

386

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2018-3-14 18:33:38 | 显示全部楼层
STM32F10X_CL这个宏定义和STM32F10X_HD还有STM32F10X_MD对应的时钟初始化的函数中,时钟的分频设置的不一样,一般情况下外部晶振为25M的时候才使用STM32F10X_CL这个宏定义。


回复

使用道具 举报

11

TA的帖子

0

TA的资源

一粒金砂(初级)

Rank: 1

发表于 2018-3-15 10:15:12 | 显示全部楼层
这个系统提供的定义头文件最好不要改,还是在自己的程序中进行设置配置好。


回复

使用道具 举报

3130

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-3-15 13:36:46 | 显示全部楼层
这个问题好办,你先做程序连续发0xff,用示波器看看发送波形及接收端波形,和设置比对一下,确认波特率是对的.
有时候不排除是硬件问题.
如果波特率没问题那剩下的就是软件问题了,再看代码
记得库函数在初始化波特率时是根据当前的时钟频率自己计算的,所以波特率和时钟设置没大关系.

点评

工程是直接从F103上弄过来的,我也是先确认硬件没有问题,所以确定应该是系统时钟设置的问题。然后才找到这个解决的。  详情 回复 发表于 2018-3-15 20:47


回复

使用道具 举报

41

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-3-15 13:45:16 | 显示全部楼层
还是用CubeMX好用,


回复

使用道具 举报

1758

TA的帖子

0

TA的资源

五彩晶圆(初级)

Rank: 7Rank: 7Rank: 7

荣誉会员勋章

 楼主| 发表于 2018-3-15 20:47:07 | 显示全部楼层
huo_hu 发表于 2018-3-15 13:36
这个问题好办,你先做程序连续发0xff,用示波器看看发送波形及接收端波形,和设置比对一下,确认波特率是对的.
...

工程是直接从F103上弄过来的,我也是先确认硬件没有问题,所以确定应该是系统时钟设置的问题。然后才找到这个解决的。

点评

标准库里波特率做参数调用就行了,库函数自己算。  详情 回复 发表于 2018-3-17 18:12


回复

使用道具 举报

3130

TA的帖子

0

TA的资源

版主

Rank: 6Rank: 6

发表于 2018-3-17 18:12:17 | 显示全部楼层
cat3902982 发表于 2018-3-15 20:47
工程是直接从F103上弄过来的,我也是先确认硬件没有问题,所以确定应该是系统时钟设置的问题。然后才找到 ...

标准库里波特率做参数调用就行了,库函数自己算。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

小黑屋|手机版|Archiver|电子工程世界 ( 京ICP证 060456

GMT+8, 2018-6-19 20:04 , Processed in 0.225644 second(s), 18 queries , Gzip On, Redis On.

快速回复 返回顶部 返回列表