这篇文章记录一下HC-06蓝牙模块调试过程,通过手机蓝牙助手APP给STM32F103C8发送数据,STM32收到数据后原样返回给蓝牙助手。
一、HC-06蓝牙模块介绍
1、模块介绍
2、常用AT指令
模块使用注意事项:
(1)模块供电: 规格书写的工作电压为3.0~3.6V,但实际使用中发现3.3V不工作,需要3.6V左右才可以。如果上电后蓝牙模块灯不亮,检查下电压是否满足要求。
(2)AT模式:模块上电后,不要配对才可以进入 AT 模式,注意把两条指令的时间间隔控制在 1S 或以上。
(3)出厂默认波特率 9600,蓝牙名 HC-06,配对密码 1234。
指令 | 响应 | 说明 |
---|---|---|
AT | OK | AT模式测试指令 |
AT+BAUD1 | OK1200 | 设置波特率为1200 1--------- 1200 2--------- 2400 3--------- 4800 4--------- 9600 5--------- 19200 6--------- 38400 7--------- 57600 8--------- 115200 9--------- 230400 A--------- 460800 B--------- 921600 C--------- 1382400 |
AT+NAMEname | OKsetname | 参数 name:所要设置的当前名称,即蓝牙被搜索到的名称。20 个字符以内。 |
AT+PINxxxx | OKsetPIN | 模块在出厂时的默认配对密码是 1234。参数可以掉电保存,只需修改一次 |
AT+ROLE=S AT+ROLE=M | OK+ROLE:S OK+ROLE:M | S:设置模块为从模块 Slave,(模块默认为从机) M: 设置模块为主模块 Master |
AT+LED0 AT+LED1 | LED OFF LED ON | AT+LED0 关灯 AT+LED1 开灯 |
3、透传模式
- 模块上电后红色和蓝色LED闪烁,等待配对
- 手机安装蓝牙调试助手App,打开App,选择HC-06进行配对
- 配对成功后,模块红色和蓝色LED停止闪烁变为常亮
4、硬件连接
CH340 | HC-06 |
---|---|
VCC | VCC |
GND | GND |
TX | RX |
RX | TX |
5、收发数据功能测试
-
电脑通过串口助手发送数据,手机蓝牙调试助手App收到数据
-
手机通过蓝牙助手App发送数据,电脑串口助手收到数据
二、STM32CubeMx配置
1、RCC开启外部高速时钟(略)
2、配置STLink调试口(略)
3、配置串口方便调试输出(略)
4、配置工程名、生成路径,之后生成工程(略)
(1-4步的基础配置可以参考前面的文章《STM32基础工程模板创建》)
备注:配置串口参数时记得把波特率改成与蓝牙模块匹配的速率,我改成了默认的9600
三、代码编写
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
uint8_t Data = 0; //收发数据临时变量
while (1)
{
HAL_UART_Receive(&huart1, &Data, 1, 0xffff); //阻塞接收,接收超时时间设为0xffff
HAL_UART_Transmit(&huart1, (uint8_t *)&Data, 1, 0xffff);//阻塞发送,发送超时时间设为0xffff
}
}
四、硬件连接
我这里用的CH340 进行供电,因为单片机开发板的3.3V电压过低无法使蓝牙模块正常工作,总是上电几秒后工作指示灯就灭了。
CH340 | CH-06 |
---|---|
VCC | VCC |
GND | GND |
STM32 | CH-06 |
---|---|
TX | RX |
RX | TX |
五、运行效果
蓝牙助手发送“123456789”,之后收到“123456789”