【蓝牙通信】两个Hc-05之间的通信(教程)

本文详细介绍了如何使用两个蓝牙模块进行主从配置,包括进入AT状态、设置角色、配对、地址绑定、波特率调整和连接模式,以实现模块间的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、准备两个蓝牙模块,一个主机,一个从机

2、进入AT状态

3、蓝牙状态指示灯 

4、具体步骤


1、准备两个蓝牙模块,一个主机,一个从机

2、进入AT状态

进入AT状态有2种方法:
1.先按住按键不放,再给模块上电。此时LED 2S闪一次,进入AT模式。波特率固定为38400。
2.模块直接上电,此时LED灯快闪(1s两次)。再按下按键,模块也会进入AT指令,此时LED还是快闪。这个时候的波特率和自己设置的一样,默认为9600。1位停止位,无奇偶校验

3、蓝牙状态指示灯 

 

进入AT指令模式后

串口调试助手中一定要勾上发送新行,才会在发送字符后面添加\r\n 。不然每次就自己添加

测试通信是否有问题发送: AT返回:OK说明成功

4、具体步骤

1.主从机初始化

AT+ORGL

2.设置蓝牙模块的主从模式(默认是0)
        将第一个模块设置为主机模式,发送:AT+ROLE=1
        将第二个模块设置为从机模式,发送:AT+ROLE=0       

AT+ROLE=1
AT+ROLE=0

3.设置配对码,如设置为1977,AT+PSWD=“1977”,从机对应发送同样的代码,设置为1977

AT+PSWD=1977

4.先查询从机模块的蓝牙地址,命令为:AT+ADDR?,从机会返回它的蓝牙地址

AT+ADDR?

 

5.在主机模块发送绑定蓝牙地址指令,AT+BIND=23,7,35fd7f(注意将冒号换位逗号)

AT+BIND=23,7,35fd7f

绑定完成后再检查一次是否绑定成功,AT+BIND?

 

6.设置两模块的通信波特率,此次设置为9600,AT+UART=9600,0,0

AT+UART=9600,0,0

7.设置两模块的连接模式,默认是:0(指定蓝牙地址连接模式,这样主机模块才能自动连接绑定的地址)->设置为模式0:AT+CMODE=0 [查询指令:AT+CMODE?]

AT+CMODE?

8.重启模块(注意拔下KEY的VCC线),将波特率设置为9600,打开串口后发送数据,看两个模块能否通信。两模块上电连接后指示灯会同频率闪烁,表示可以正常通信。

9.验证成功,over... 

 

 

 

### HC蓝牙模块从模式配对教程 #### 硬件连线配置 为了使HC05蓝牙模块能够正常工作,在进行任何软件设置之前,必须确保硬件连接无误。通常情况下,HC05模块至少需要VCC、GND、TXD和RXD四个引脚来完成基本的数据传输功能[^2]。 #### 进入AT命令模式 新出厂的HC05默认处于从设备状态,并且可能带有预设密码或其他初始配置。要更改这些设定或实现两个HC05之间通信,则需将其切换到命令响应模式(即所谓的“AT模式”)。这可以通过短接KEY/STATE引脚与VCC一段时间或将该引脚拉高至一定电压水平来触发进入此模式的操作。 #### 使用串口调试工具发送AT指令 一旦进入了AT模式,就可以通过USB转TTL适配器配合PC端上的串行端口监视程序向HC05发送特定格式的字符串——也就是常说的AT指令集来进行进一步定制化操作了。比如修改名称、PIN码以及最重要的一点就是指定当前实例作为机还是从属角色等属性。 #### 设置为机或从机 对于想要建立一对多关系的应用场景来说,其中一个节点应该被定义成Master(),而其他所有参与者都将是Slave(奴隶);反之亦然。具体来讲,在AT指令集中存在专门用于改变这一特性的语句,像`AT+ROLE=1`可以用来把选定单元转换为master身份,相应地,“0”的赋值则会令其成为slave成员之一。 #### 完成交互测试并保存参数 当完成了上述各项调整之后,建议执行简单的回环测试以验证两者间能否顺利交换信息。如果一切正常的话,记得利用相应的存储类命令如`AT&W`将现有改动永久固化下来以便日后无需重复相同过程即可直接投入使用。 ```python # Python代码示例:模拟发送AT指令给HC05 import serial ser = serial.Serial('COM3', 9600, timeout=1) def send_at_command(command): ser.write((command + '\r\n').encode()) response = '' while True: line = ser.readline().decode() if not line.strip(): break response += line return response print(send_at_command("AT+VERSION")) # 查询版本号 print(send_at_command("AT+ROLE?")) # 查看当前角色 print(send_at_command("AT+ROLE=1")) # 设定为机 ```
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值