前阵子发了JDY-31蓝牙模块的博文,于是今天写一篇其他型号的蓝牙模块的博文。
因为JDY-31只能是作为从机,而HC-05可以作为主机也可以作为从机。
这个也可以理解,因为JDY-31比较便宜嘛,HC-05会贵一些,原版的HC-05大约二十多块钱,而我买的兼容版,便宜了十块,不过商家说性能是差不多的,但是实测之后兼容版有一点小坑,接下来会说,不过大体上是和原版的一样的。
从机就是只能被动地等待被连接,而主机可以主动地去连接别的从机。
可以看的出HC-05和JDY-31其实长得挺像。
甚至背面可以说是一模一样了。
不同的点就是HC-05多了个按钮,这个我们涉及到我们的AT指令。
关于蓝牙模块怎么和单片机进行交互,从而和手机的蓝牙进行交互,可以去看我之前关于JDY-31的博文,蓝牙模块的用法都大差不差,今天这篇博文就单单讲解一下HC-05的AT指令,因为和JDY-31还是有一些差距的。
HC-05上电之后,会有一个LED闪烁。我拿到的手册是说一旦HC-05配对成功之后,LED常亮,但是我实测之后是配对成功之后LED灭一段时间后快速闪烁两次然后再灭,这样不断重复。不敢说手册是错的,也可能是因为我买的是兼容版HC-05,因此大家以自己手里的蓝牙模块为准,我这里只是提供一种看法。
HC-05上电之后,LED是快速闪烁的,这时就是等待配对。如果LED是慢速闪烁的,那么就是进入了AT指令模式,我们可以通过AT指令来控制HC-05。这时HC-05和JDY-31第一处不一样的地方,那就是JDY-31要使用AT指令只需要保证此刻没有人配对,然后直接通过串口给JDY-31发送AT指令即可,但是HC-05要进入AT指令,必须先一直按住HC-05上的按钮然后再上电,这时候才能进入AT指令模式,如果要从AT指令模式改变到配对模式,那么需要发送AT的复位指令或者是重新上电。
HC-05默认的配对模式,是以从机的身份来进行配对的,如果是要以主机的身份来进行配对则需要发送对应的AT指令。
因为HC-05进入AT指令模式比较麻烦,因此我这边演示操作HC-05就不使用STM32F103了,我直接使用串口助手来对HC-05进行操作。
那么接下来开始正式的AT指令。
首先我们要明确串口通信的条件,我们需要设置8位数据位,1为停止位,无检验,波特率为38400,这样才可以与HC-05进行串口通信,当然这些配置都可以在后续的AT指令中更改。
并且要以文本模式发送指令,编码格式为 utf-8,每个指令后面也要加上换行(‘\r\n’)。
还有要注意的是HC-05的AT指令和JDY-31不一样的地方。JDY-31中的指令带参数的话需要把参数写在<>里面,但是HC-05是不需要<>的,可以参考后面的示例。
第一个测试指令,我们直接通过串口发送“AT”即可,然后就会给我们回复“OK”,用这个没什么意义的指令可以来测试我们是否成功进入到了AT指令模式(其实通过LED的闪烁情况也可以知道)。
然后上图截自商家提供的手册,上面的34脚指的是HC-05上的按钮,至高一次应该是“置高电平一次”,但是貌似我们不需要操作,进入AT指令模式之后不用再去碰按钮了,直接用串口助手发送即可。
发送复位指令之后,HC-05进入复位,如果没有按下按钮的话,会默认进入到配对模式。成功后回复“OK”。
进过实测,指令后面那个‘?’可加可不加。并且上图中的红字照例可以不管。指令发送之后,HC-05会回复版本号以及一个“OK”。
恢复的默认配置同上图。发送完成后貌似是自动复位了,也可能不是,反正我的HC-05从原本的AT指令模式变成配对模式了。
而且设备名称也不是上面说的“H-C-2010-06-01”而是“HC-05”,也可能是因为我的是兼容版HC-05,具体的情况以你们自己手上的HC-05为准。
指令最后的问号也是可发可不发的,指令发送完毕之后,HC-05会回复模块蓝牙地址以及一个“OK”。
不带参数的话就是回复设备名称,加“OK”,带参数的话就是修改蓝牙名称并且回复“OK”。
这边蓝牙地址表示方法好像有点问题,兼容版的好像需要把‘:’改成‘,’,也就是冒号改成逗号,反正以大家手上的HC-05为准,两种情况都设置一次。
默认就是从机,当然我们也可以修改为主机。
这边要注意的是,配对码(密码)需要用英文半角的双引号括起来。
这里又和JDY-31不一样了,JDY-31只能设置波特率,并且波特率是用代号来表示的例如4是9600。
而HC-05可以设置的参数 又波特率,停止位和校验位,并且直接按照十进制去输入就行。
这边要注意的还是,可能因为我是兼容版,所以地址表示中需要把冒号改为逗号,但是还是以你们手上的HC-05为准。
以上AT指令是我觉得比较常用的,日常使用的话上面这些就够用了。想看完整的手册可以去官网找,或者是直接找卖家要。也可以关注我的公众号“折途想要敲代码”回复关键词“蓝牙”即可免费下载HC-05以及JDY-31的相关资料,内含PC串口助手和安卓手机的蓝牙助手。