HC-05蓝牙模块的理解

16 篇文章 30 订阅

HC-05蓝牙模块的理解

最近在玩蓝牙模块,看了看以前玩的时候用的是串口1,想用串口2试试,然而调试了将近一下午都没有调试出来,最后发现竟是一个字母的错误,但在这期间却又学到的新的东西,也有所感悟,故作了这么一篇文章。
先给大家看一看本文的思维导图。
在这里插入图片描述

一.代码

1.代码的移植
其实本质都是一样的,就是换一下引脚,配置一些不同的参数而已,可以模仿串口一的程序来写。一个头文件和源文件。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
以上就是蓝牙模块的所有代码了, 因为printf函数已经给串口1用了,所以我自己又做了一个蓝牙发送数据的函数,很简单。可能大家会有疑惑,为什么你的函数要有返回值,用void的类型不就可以了吗,我这样做的目的是为了监视发出去的数据是不是我所想要发的数据,所以你可以通过如下语句上位机的串口软件去监视 你所发的数据是否正确。
在这里插入图片描述
**这个语句非常简洁!!!**并且可以很好的监视你发送出去的数据是否正确。
接下来讲解一下原串口发送函数的理解。附上图片如下。
在这里插入图片描述
如果你要用到printf函数去将数据从串口打印出去,如果你不想选择use MicroLIB,就必须加上上面的一些代码,use MicroLIB 这个可以在IDE上勾选的,如下图所示。
在这里插入图片描述
当然,printf函数也不是说就只能将串口一的数据发送,它也可以将串口二的数据发送出去,
在这里插入图片描述
你把USART1改成USART2不就行了吗。
以上就是对代码的讲解。

二.缺点

蓝牙模块的缺点这点如果你调试过你就会发现,延迟高
你从手机app断端发送数据过去,搞不好要2至3秒的时间才可以接收到,这个延迟你要是去控制小车或者是其他的东西,效果可能就不如你预期的那样好了,我觉得还不如用WIFI模块。延迟高的原因在后文中有讲解。

三.蓝牙app的理解

在讲解这个之前,我先来说说FLYMCU这个软件,其实这没什么好说的,但是呢,我想抱怨一下,我就因为不小心把那个勾给去掉了结果调试了好久。
在这里插入图片描述
这个编程后执行要勾上,不然你就得通过硬件复位的方式让它复位了。
我们的串口中断函数所要接收的数据是要以\r\n结尾的,但是我们在用蓝牙app时你在发数据的时候你是不需要自己加上\r\n,app它自带的,并且你如果仔细一点的话,你会发现一个问题,比如你发送一个3位的数据,但你多发几次,你就会发现你一次接收到的数据就不是3位的数据了。我认为最主要的原因并不是数据从手机传到蓝牙模块的时间多,而是在app端耗的时间多,可能你已经按下了,但数据可能会过1至2秒才会发出去。并且,如果你按下之后,紧接着又按下,那么这一次发送的数据量就会是你想发的两倍。很可能就是app中有这么一个程序,当你按下之后,它不会立即发送出,而是等待一下看你是不是还有数据要发,如果过了那个时间点,它就会将你的数据发送出去,并且在数据的末尾加上\r\n。这你就知道为什么蓝牙模块延迟高的原因了。(个人根据现象推出来的)

以上就是我对蓝牙模块的理解,我觉得看完这篇文章之后你对蓝牙模块的理解应该就没有太大的问题。

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值