HC-05蓝牙模块主从机通信
一、HC-05蓝牙模块介绍
HC-05是一款主从一体式串口蓝牙模块,使用时无需理解复杂的蓝牙协议,把它当作普通串口使用即可,串口通信为透传模式,由于它同时支持主从机模式,所以任意两个蓝牙模块之间都是可以通信的,下文将介绍如何使用两个蓝牙模块进行主从机通信。
注意:HC-05属于经典蓝牙2.0版本,与BLE蓝牙区别很大,由于BLE蓝牙没有向下兼容,所以是无法和HC05通信的。
模块引脚功能介绍如下:
引脚 | 功能 |
---|---|
EN | 使能 |
VCC | 3.6~6V电源输入,实测3.3V也是可以的 |
GND | 地 |
TXD | 串口发送 |
RXD | 串口接收 |
STATE | 连接状态 低电平:未连接 高电平:已连接 |
LED状态灯:
状态 | 说明 |
---|---|
快闪 1s两次 | 正常工作模式 模块进入可配对状态 |
慢闪 2s1次 | AT模式 此时可以直接发AT指令 波特率38400 |
双闪 一次闪2下 | 已配对状态 此时是透传模式 |
除此之外,该模块上还有一个按键,其作用是选择是否进入AT模式。
实际通信只需要VCC、GND、TXD、RXD 四个引脚即可。
二、AT模式
HC-05有两种方式进入AT模式:
- 按下KEY键,然后再上电,上电后便进入AT模式,波特率38400。
- 正常上电,需要发送AT指令时,先按下KEY键再发送,波特率和当前通信波特率一致,默认值为9600。
注意:当模块进入已配对状态时,除非重新上电复位,否则是无法进入AT模式的,也就不能发任何AT指令。
三、AT指令与错误码
不同型号的蓝牙模块支持的AT指令集不一样,有些厂家可能“偷懒”,很多AT指令没有实现,因此需要以蓝牙模块的手册为准。
另外,AT指令必须以“\r\n”结尾,且必须大写。
这里只介绍一些常用的AT指令(仅针对HC-05)。
指令 | 响应 | 说明 |
---|---|---|
AT+RESET | OK | 模块复位 |
AT+VERSION? | +VERSION:Param OK | 返回模块版本号 |
AT+ORGL | OK | 恢复出厂设置 |
AT+ADDR? | +ADDR:Param OK | 查询模块地址 不能设置地址 |
AT+NAME? | +NAME:Param OK | 返回模块名称 |
AT+ROLE=Param | +ROLE:Param OK | Param:参数取值如下:0——从角色(Slave)1——主角色(Master)2——回环角色(Slave-Loop)默认值:0 |
AT+CLASS=Param | OK | Param:设备类蓝牙设备类实际上是一个 32 位的参数,该参数用于指出设备类型,以及所支持的服务类型。默认值:0 |
AT+IAC=Param | OK | Param:查询访问码 默认值:9e8b33 |
AT+PSWD=Param | OK | Param:配对码 默认名称:“1234” |
AT+UART=Param,Param2,Param3 | OK | Param1:波特率(bits/s) Param2:停止位 Param3:校验位 |
AT+CMODE=Param | OK | Param:0——指定蓝牙地址连接模式(指定蓝牙地址由绑定指令设置)1——任意蓝牙地址连接模式(不受绑定指令设置地址的约束)2——回环角色(Slave-Loop)默认连接模式:0 |
AT+BIND=Param | OK | Param——绑定蓝牙地址 默认绑定蓝牙地址:00:00:00:00:00:00 |
AT+STATE? | + STATE:Param OK | 返回模块工作状态 “INITIALIZED”——初始化状态 “PAIRABLE”——可配对状态 “INQUIRING”——查询状态 “CONNECTING”——正在连接状态 |
AT+INQ | +INQ: Param1,Param2,Param3,OK | 扫描蓝牙设备 Param1:蓝牙地址 Param2:设备类 Param3:RSSI信号强度 |
AT+INQC | OK | 取消扫描设备 |
AT+LINK=Param | OK | 连接蓝牙设备 Param:远程设备蓝牙地址 |
AT+DISC | 1、+DISC:SUCCESS——断开连接成功 OK 2、+DISC:LINK_LOSS——连接丢失 OK | 断开连接 |
AT 指令错误代码
错误码 | 说明 |
---|---|
0 | AT 命令错误 |
1 | 指令结果为默认值 |
2 | PSKEY 写错误 |
3 | 设备名称太长(超过 32 个字节) |
… | … |
更多指令与错误码描述详见HC-05手册:HC-05手册
三、主从机配置
主机:
AT+CMODE=1\r\n #任意地址连接 主机上电后自动连接周围存在的从机
AT+PSWD=1234\r\n #配对码配置为1234
AT+ROLE=1\r\n #主机模式
从机:(从机其实不用配置 因为模块默认就是从机模式 只要保证主从机配对码一致即可)
AT+PSWD=1234\r\n #配对码配置为1234
AT+ROLE=0\r\n #从机机模式
以上配置可以在电脑端通过串口调试助手配置好,然后单片机接上蓝牙模块即可,模块上电后主从机会自动建立连接,连接成功后,主从机就可以通过串口通信了(透传模式 :发什么收什么)。
四、备注说明
1.AT+INQ 返回ERROR:(1F)
1F错误码在HC-05手册中没有说明,暂定为未知错误
解决方法是:尝试恢复出厂设置(AT+ORGL \r\n)另外本条指令需要通过上文提到的第二种方式发送才可以
出厂默认状态:
①.设备类:0
②.查询码:0x009e8b33
③.模块工作角色:Slave Mode
④.连接模式:指定专用蓝牙设备连接模式
⑤.串口参数:波特率—38400bits/s;停止位:1 位;校验位:无
⑥.配对码:“1234”
⑦.设备名称:“HC-05”
HC-05蓝牙模块主从机通信相关推荐
- HC-05蓝牙模块主从机AT指令
在本Arduino教程中,我们将学习如何配置和配对两个HC-05蓝牙模块作为主设备和从设备.您可以观看以下视频或阅读下面的书面教程. 如何配置和配对两个HC-05蓝牙模块作为主机和从机AT指令 概述 ...
- 基于PAJ7620的主从机通信远程控制蓝牙智能小车
这是大三上传感器大作业做的一个主从机控制小车.期间参考了网上的一些博客,涉及主从机通信.蓝牙配置.传感器的使用等. 文章目录 一.实物图片 二.系统架构 三.主要外设 四.手势控制对应关系 五.应用场 ...
- C51编程23-应用篇(HC 06蓝牙模块)
现在的手机,平板,笔记本电脑都会自带蓝牙.本文将会介绍51单片机使用HC 06 蓝牙模块实现手机与笔记本电脑的通讯. HC 06 模块 购买HC 06模块后需要检测蓝牙模块是否是好的,使用串口线与 ...
- HC-05蓝牙模块主从配对设置步骤记录
1.主从配置串口调试图片 图1 HC-05配对主机相关命令 图2 HC-05配对从机相关命令 2.主机设置步骤说明 准备两个USB转TTL的串口调试器,连接蓝牙和串口调试器,按住蓝牙模块 ...
- HC-05蓝牙模块与电脑通信
在这次准备电赛过程中,老师让我了解蓝牙模块,于是就拿05练手了. 在通信的时候,我用到的软件跟硬件有:蓝牙测试软件(针对不同的蓝牙模块有不同的软件).USB下载器.串口调试软件 第一 ...
- 如何使用蓝牙模块与电脑通信,实现自主开发
项目中使用到了蓝牙模块,但是很多时候我们是从别人手里购买核心模块,然后进行二次开发使用,究竟如何使用核心模块,在所给资料甚少的情况下,还真的要费一番功夫去研究如何使用开发哦.这两天正好做完超声波后,要 ...
- STM32的I2C主从机通信
最近一段时间在做I2C通信协议,需要在两块STM32之间做I2C通信,定的是主机用IO口模拟,从机用的是STM32的硬件I2C,我的项目要求是需要主从机之间能够进行一串数据收发而不出错,实验时在主机方 ...
- STM32CubeMX(2)——串口实现HC-05蓝牙模块与手机通信
STM32实现蓝牙与手机通信 使用的蓝牙 STM32Cubemax配置 手机连接蓝牙 代码编写 总结 使用的蓝牙 本文使用的蓝牙是市面上常用的HC-05蓝牙模块 其引脚和STM32的连接为 蓝牙模块 ...
- Adurion两个HCO5蓝牙模块之间互相通信
实验器材:超声波模块,两个HC05蓝牙模块(注意不要买到盗版的了),小灯,液晶显示屏LCD,蜂鸣器 实现功能:从机读取超声波距离,在液晶屏上面显示,并通过蓝牙协议传入到从机,主机通过串口可显示出来,如 ...
- Android 7.0(华为荣耀2平板)蓝牙与蓝牙模块4.0通信
1,问题:开发的蓝牙软件安装到平板上与蓝牙模块进行通信时,可以连接,但是不能通信.onServicesDiscovered(BluetoothGatt gatt, int status)方法并没有回调 ...
最新文章
- 40.多进程同步--锁--多把锁
- 2016个人阅读计划
- AJAX(Asynchronous JavaScript And XML)
- Oracle中的move命令
- 第二篇 python基础知识总结:数据、运算符
- JAVA入门级教学之(Object类中的equals方法)
- 例题 3-5 生成元 digit generator
- sybase函数学习(八)
- php怎么给接口里的方法传参,PHP接口中方法的参数和实现类方法中的参数可以不一致的问题...
- 用于金融时序预测的神经网络:可改善经典的移动平均线策略
- 文件上传漏洞及其绕过
- 汉字转拼音接口 get请求 无需注册
- 爬虫练习案例:交通路况
- Kotlin 学习笔记(三)—— Kotlin 的动态代理你会写吗
- 基于饥饿博弈搜索算法的函数寻优算法
- larval中sessions的使用
- 想自己动手制作游戏动漫角色模型,教你几招,一定要看看!
- win7 wif热点
- 基于深度学习的无人驾驶道路检测
- 风口猪炒股指标操作复盘 2021-01-20