STM32两个蓝牙互连进行收发通信

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+PIN9999\r\n");
	u2_printf("AT+ROLE=1\r\n");
	u2_printf("AT+CMODE=0\r\n");
	u2_printf("AT+LINK=98d3:34:90c097\r\n");
	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+PIN9999\r\n");
	u2_printf("AT+ROLE=0\r\n");
	u2_printf("AT+CMODE=0\r\n");
	delay_ms(10);
	HC05_KEY=0;

蓝牙在连接好之后,即可通过USART2串口进行收发,通过u2_printf()函数发送数据。

接收到的数据存放在USART2_RX_BUF缓冲区内。

你可能感兴趣的:(嵌入式)