stm32f103串口通信乱码问题

本人利用的是中国移动赠送的麒麟开发板,在进行串口通信的实验时,采用正点原子的代码,发现会一直出现乱码的情况。经过两天时间的排查,最终发现是晶振的问题,麒麟开发板使用的外部晶振是12M的,但是正点原子的代码使用的是8M的晶振,下面演示修改前后的变化过程。(注意,波特率的设置也需要一样)

利用串口1需要发送的内容:

串口接收到的信息:

 

修改system_stm32f10x.c文件中的晶振分频为6分频,因为自己用的麒麟开发板是12M的,12×9 = 108M,需要改成六分频,12×6 = 72M

现在修改为六分频

我们再来看一次现在是不是不乱码了,发现还是乱码:

 

接下来修改stm32f10x.h文件中的宏定义,看到默认的是8000000的,我们把它改成我们需要的12000000

 

现在再来看看上位机接收到的数据吧:终于正常啦~

 

心得:在玩stm32这种资源丰富的开发板的时候,一定要注意开发板的晶振和代码里设置的晶振是不是一样的,不然就会出现很多异常的问题

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值