这篇文章上次修改于 1701 天前,可能其部分内容已经发生变化,如有疑问可询问作者。
现在不建议使用这个模块,蓝牙2.1许多新特性不支持,模块也不便宜。推荐HM10,也是蓝牙透传,支持4.0协议。
使用USB转TTL线连接
最简单的连接方法,我通常用来测试HC05是否损坏
接线方法就不仔细讲了,TX接RX,RX接TX,电源和地
资料和工具:HC-05蓝牙串口通信模块官方资料包
通过TTL与电脑连接
打开XCOM,串口选择USB转TTL的串口
波特率默认为9600
与电脑配对
如果你想用手机蓝牙连接也可以:蓝牙串口
默认配对密码为1234
完成后打开 控制面板
>设备和打印机
找到HC-05模块
这样就便找到了蓝牙COM口
与电脑通信
打开两个串口调试窗口
一个为通过TTL连接HC05
一个通过蓝牙连接HC05
然后就可以相互通信了
使用Arduino连接
#include <Arduino.h>
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(11, 12); // RX | TX
void setup()
{
Serial.begin(38400);// 与PC通讯的波特率
Serial.println("Plug the power press the reset button to enter AT mode");
Serial.println("Enter commands:");
BTSerial.begin(38400); // Arduino与HC05通讯的波特率
}
void loop()
{
if (BTSerial.available()){
Serial.write(BTSerial.read());
} // 从HC-05读取并发送到Arduino串口监视器
if (Serial.available()) // 读取Arduino串口监视器并发送至HC-05
BTSerial.write(Serial.read());
}
其实区别不大,Arduino充当了转换器的功能,将HC-05的数据传输到串口监视器
arduino不止可以用来通讯,可以实现一些更强大的功能
AT指令
AT模式波特率为38400
(按住RESET键并插入电源,指示灯变为两秒一闪,即进入AT模式)
进入到命令响应工作模式之后,就可以使用串口调试助手进行蓝牙调试了。
首先有一点,AT指令不区分大小写,均以回车、换行结尾。
常用的AT指令
指令名 | 响应 | 含义 |
---|---|---|
AT | OK | 测试指令 |
AT+RESET | OK | 模块复位 |
AT+VERSION? | +VERSION: OK | 获得软件版本号 |
AT+ORGL | OK 恢复默认状态 | |
AT+ADDR? | +ADDR: OK | 获得蓝牙模块地址 |
AT+NAME= | OK | 设置设备名称 |
AT+NAME? | +NAME: OK | 获得设备名称 |
AT+PSWD= | OK | 设置模块密码 |
AT+PSWD? | +PSWD: OK | 获得模块密码 |
AT+UART= | OK | 设置串口参数 |
AT+UART? | +UART: | 获得串口参数 |
AT+ROLE? | 0 从, 1 主 | 询问主从 |
AT+ROLE= | 0 从, 1 主 | 设置主从 |
对于AT指令,有几点注意:
AT+NAME?:获得设备名称,这个AT指令有很大可能性是没有返回的,因为我也看到了很多的例子……,但是其他的指令都是没有问题的,直接设置设备名称就行了;
AT+UART?:获得串口参数,串口的参数一共有三个,波特率、停止位、检验位。其取值如下:
设置串口参数
参数名称 | 取值 |
---|---|
波特率 | 2400、4800、9600、19200、38400、5760、 |
波特率 | 115200、230400、460800、921600、1382400 |
停止位 | 0:1位 1:2位 |
校验位 | 0:NONE 1:Odd 2:Even |
其默认值为:9600,0,0。
AT 指令错误
错误 | 描述 |
---|---|
0 | AT command error |
1 | The result is default value |
2 | PSKEY write error |
3 | Device name is too long (mbytes) |
4 | Device name is 0 byte |
5 | Bluetooth address: NAP is too |
6 | Bluetooth address: UAP is too |
7 | Bluetooth address: LAP is too |
8 | PIO port mask length is 0 |
9 | Invalid PIO port |
A | Device class is 0 byte |
B | Device class is too long |
C | Inquire Access Code length is 0 |
D | Inquire Access Code is too long |
E | Invalid Inquire Access Code |
F | Pairing password is 0 |
10 | Pairing password is too long (more than 16 bytes) |
11 | Role of module is invalid |
12 | Baud rate is invalid |
13 | Stop bit is invalid |
14 | Parity bit is invalid |
15 | No device in the pairing list |
16 | SPP is not initialized |
17 | SPP is repeatedly initialized |
18 | Invalid inquiry mode |
19 | Inquiry timeout |
1A | Address is 0 |
1B | Invalid security mode |
1C | Invalid encryption mode |
参考文章
常用模块 HC-05蓝牙串口通信模块使用详解(实例:手机蓝牙控制STM32单片机)
HC-051.如何使用蓝牙模块HC-05进入AT模式?
HC05蓝牙模块通过Arduino与PC连接
Arduino使用HC05蓝牙模块与手机连接
Configure Bluetooth Module HC-05 with AT Mode
海星
没有评论