STM32
直播中

李辉

8年用户 1422经验值
私信 关注
[问答]

如何去实现两个蓝牙模块互联并进行收发通信呢

HC05是什么?
如何去实现两个蓝牙模块互联并进行收发通信呢?

回帖(1)

李建军

2021-12-2 10:02:54
HC05是主从一体化蓝牙模块,可以通过将两个蓝牙配置成一主一从的方式,

主蓝牙开机后会自动去寻找从蓝牙设备,并自动连接。

两个蓝牙模块通信,首先要让两个蓝牙模块进入命令响应工作模式即AT模式(EN接上USB转TTL的VCC或者3.3V,上电,再长按蓝牙模块上的按键,红灯慢闪即表示进入了AT模式)
配置流程

主蓝牙:

1.设置配对码:  AT+PINXXXX  (XXXX为四位数字,并与从蓝牙的配对码保持一致)
2.设置蓝牙为主机: AT+ROLE=1 (0为从机,1为主机,2为回环角色)
3.设置蓝牙连接模式: AT+CMODE=0 (0是指定蓝牙地址连接模式,设置为0才能自动的连接绑定的地址)
4.设置蓝牙连接地址:AT+LINK=98d3:34:90c097(这里的地址是我事先在从蓝牙上查询到的地址,看别的博客是BIND命令,但是我不太清楚这两个命令有什么区别)
具体代码:
        HC05_KEY=1;                                        //KEY置高,进入AT模式
        delay_ms(10);
        u2_printf("AT+PIN9999rn");
        u2_printf("AT+ROLE=1rn");
        u2_printf("AT+CMODE=0rn");
        u2_printf("AT+LINK=98d3:34:90c097rn");
        delay_ms(10);
        HC05_KEY=0;
从蓝牙:

1.设置配对码:  AT+PINXXXX  (XXXX为四位数字,并与主蓝牙的配对码保持一致)
2.设置蓝牙为主机: AT+ROLE=0 (0为从机,1为主机,2为回环角色)
3.设置蓝牙连接模式: AT+CMODE=0 (0是指定蓝牙地址连接模式,设置为0才能自动的连接绑定的地址)
具体代码:

        HC05_KEY=1;                                        //KEY置高,进入AT模式
        delay_ms(10);
        u2_printf("AT+PIN9999rn");
        u2_printf("AT+ROLE=0rn");
        u2_printf("AT+CMODE=0rn");
        delay_ms(10);
        HC05_KEY=0;
蓝牙在连接好之后,即可通过USART2串口进行收发,通过u2_printf()函数发送数据。
接收到的数据存放在USART2_RX_BUF缓冲区内。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分