使用手册
1概述
Air5101系列是一款基于BLE 5.2技术的低功耗蓝牙(BLE)透传模块,兼具高性能与低功耗特性。本系列模块提供完整的AT指令集配置接口和透明数据传输模式,极大简化了无线通信应用的开发流程。
Air5101系列作为独立蓝牙模组,可与现有4G模组(780系列) 完美搭配,通过“外挂”方式实现功能升级,让您的产品以极小的硬件改动获得蓝牙功能,真正实现低成本、高效率的解决方案。
系列型号说明:
● Air5101S:工作于从模式,可被手机、主机等连接。
封装尺寸:
6 * 15.3 * 2.25mm
蓝牙技术规格
● 蓝牙版本:BLE 5.2;
● 协议标准:低功耗蓝牙(BLE);
● 通信距离:参考距离10~20米(注:具体距离取决于环境和使用条件);
● 数据传输率:物理层理论支持 1Mbps,短包格式传输;
● 发射功率:-40dBm~6dBm;
● 接收灵敏度 < -96 dBm;
工作模式
● AT指令模式:通过串口发送AT指令配置模块参数,默认串口波特率为 9600bps,可设置115200等其它波特率;
● 透传模式:建立连接后数据透明传输,无需协议封装;
● 快速切换:支持两种工作模式的热切换,默认为透传模式,可以发送“AT+UA”进入AT指令模式;
应用场景
本模块适用于各类物联网设备和无线通信应用,包括但不限于:
● 灯控、玩具控制;
● 数据透传模块;
● 无线传感设备;
● 其他专用设备;
功耗说明:
Air5101S 支持三种功耗模式,常规模式0、低功耗模式1和低功耗模式3;
具体功耗与广播,连接的工作间隔有关,具体请参考第三章节的功耗说明,以下是三种功耗模式的对比:
注意:低功耗模式1和低功耗模式3的功耗相同,只是唤醒后的行为不一致;
1. 常规模式0:蓝牙正常工作;
2. 低功耗模式1:可被发现和连接,唤醒后,会在80ms后再次进入低功耗模式1。
3. 低功耗模式3:可被发现和连接,唤醒后,自动退出低功耗模式3,进入常规模式0;
Air5101S两项实用功能:
除了稳定的蓝牙连接,Air5101系列还内置了两项提升系统可靠性与智能化的实用功能:
1. 🔒 硬件看门狗
模块可配置为系统的独立守护者。当主控运行异常、未能在设定时间内“喂狗”时,蓝牙模组能通过SWITCH引脚自动输出指定电平,强制重启主控,确保设备在无人值守环境下也能自恢复。
此功能要在AT指令模式下使用, 若在透传模式下,需注意喂狗超时时间,在超时时间内切换为AT指令模式进行喂狗操作,否则会触发看门狗复位。
示例指令:
-
设置看门狗,超时45秒后拉高SWITCH 100ms复位主控。
-
AT+WDCFG=1,45,1,100
更详细的说明,请参考Air5101S使用手册的6.7.1章节。
2. ⚡️ 智能低功耗唤醒
专为4G+蓝牙 双模设备优化。在4G模组休眠时,蓝牙可保持低功耗连接。一旦发生蓝牙连接断开或收到数据等关键事件,蓝牙模块能通过WAKEUP引脚立即唤醒主控系统,实现真正的按需工作。
示例指令:
-
设置蓝牙断链唤醒,蓝牙断开连接后拉高WAKEUP 100ms 唤醒主控。
-
AT+WAKEUP=1,1,100
更详细的说明,请参考Air5101S使用手册的6.7.3章节。
2 硬件说明
脚位说明

表1 Air5101模组管脚定义
| 引脚号 | 引脚名 | 类型 | 功能 |
|---|---|---|---|
| 1 | GND | 地 | 电源地 |
| 2 | RXD | 输入 | 串口数据接收(同时也是SWD烧录口:SWCLK) |
| 3 | TXD | 输出 | 串口数据发送(同时也是SWD烧录口:SWDIO) |
| 4 | GND | 地 | 电源地 |
| 5 | VBAT | 电源 | 模组工作电源输入,输入范围为3.3V-5.5V,建议4V供电 |
| 6 | GND | 地 | 电源地 |
| 7 | WAKEUP | 输出 | 注意是Air5101唤醒对端主控,不是Air5101被主控唤醒 |
| 8 | SWITCH | 输出 | 看门狗控制主控的reset复位 |
| 9 | RESET | 输入 | 主控复位Air5101的信号,拉低可复位Air5101 |
| 10 | GND | 地 | 电源地 |
电平说明
Air5101内置LDO,输出3.3V为系统供电;因此,Air5101的全部IO电平固定3.3V;
天线说明
集成板载PCB天线;
天线设计注意事项:
1,推荐伸出板外;
2,若不能伸出板外,外沿和PCB齐平,那天线区域两侧需要各镂空30mm,整体镂空区域就是(天线左侧30mm+模块宽度6mm+天线右侧30mm)*5.5mm

温度
-40°C~+85°C
(这个温度范围,也就是大家常说的“工业级”)
供电
通过VBAT给Air5101模块供电,供电范围3.3V--5.5V,建议使用4V供电。
模组封装
资料中心 - product@air5101 - 合宙模组资料中心
3 功耗说明
注意:低功耗模式1和低功耗模式3的功耗数据相同,只是唤醒后的行为不一致,故低功耗模式1和低功耗模式3在下方的功耗表中 统称为低功耗模式。
| 工作状态 | 发射功率 (dbm) | 功耗模式 | 工作间隔 (ms) | 底电流 (uA) | 平均电流 (uA) |
|---|---|---|---|---|---|
| 广播 | 6 | 常规模式 | 30 | 2160 | 2700 |
| 100 | 2160 | 2330 | |||
| 500 | 2160 | 2220 | |||
| 1000 | 2160 | 2180 | |||
| 低功耗模式 | 30 | 76.48 | 1100 | ||
| 100 | 26 | 490 | |||
| 200 | 26 | 260 | |||
| 500 | 26 | 120 | |||
| 1000 | 26 | 75 | |||
| 3000 | 26 | 45 | |||
| 5000 | 26 | 38 | |||
| 10000 | 26 | 32 | |||
| 连接 | 常规模式 | 50 | 2170 | 2290 | |
| 380 | 2170 | 2240 | |||
| 500 | 2170 | 2190 | |||
| 1000 | 2170 | 2185 | |||
| 低功耗模式 | 35 | 75 | 650 | ||
| 50 | 26 | 550 | |||
| 500 | 26 | 100 | |||
| 1000 | 26 | 70 |
4 蓝牙服务说明
4.1 设备基本信息
默认设备名称-“Air5101S”
4.2 蓝牙服务定义
Service UUID:
{0x16,0x0a,0x10,0x40,0xd1,0x9f,0x4c,0x6c,0xb4,0x55,0xe3,0xf7,0x00,0xff,0x00,0x00}
Characteristic1 UUID:
{0x16,0x0a,0x10,0x40,0xd1,0x9f,0x4c,0x6c,0xb4,0x55,0xe3,0xf7,0x01,0xff,0x00,0x00}
特征属性:NOTIFY | INDICATE
Characteristic2 UUID:
{0x16,0x0a,0x10,0x40,0xd1,0x9f,0x4c,0x6c,0xb4,0x55,0xe3,0xf7,0x02,0xff,0x00,0x00}
特征属性:WRITE | WRITE NO RESPONSE
5 串口传输说明
数据传输分为 AT 指令模式和透传模式,两者可以随时切换;默认为透传模式,可以发送“AT+UA”进入AT指令模式。
5.1 AT指令模式
AT指令模式默认为ASCII通讯,ASCII 通讯方式有大端模式和小端模式两种,具体应用去请查看对应指令。
通过特定 AT 指令,可以设置通讯模式或蓝牙参数,可以通过“AT+BLEUART”指令切换为透传模式;返回信息有回车换行符(\r\n)。
5.2 透传模式
纯数据交互,APP(串口)输入什么数据,同时串口(APP)传出什么数据,但是它会响应“AT+BLEATCMD”指令切换为 AT 指令模式。
5.3 配置保存
1. 首先,不要在有低功耗的情况下更改配置信息,包括 MAC 地址、波特率、设备名、广播内容、广播间隔、广播类型、发射功率值等;
2. 其次,如果需要执行低功耗,且更改了上述信息,需要执行“AT+SAVE”指令,将上述信息保存到 flash中,因为每次唤醒,芯片会从 flash 中读取配置信息并应用,如果没有保存,将使用默认信息。
5.4 系统重启
可以拉低 RST引脚(≥2ms)重启,或者“AT+RESTART”指令重启;复位后默认透传模式。
5.5 系统重置
可以通过“AT+DEFAULT”指令重置,恢复默认出厂设置。
5.6 蓝牙重启
由于修改蓝牙部分参数时,需要重启蓝牙部分才能应用更改,因此在用 AT 指令修改蓝牙参数时,芯片会判断蓝牙是否处于连接状态;如果处于非连接状态,蓝牙部分会立即重启应用;如果处于连接状态,参数不会立即更新应用,需要等待断开连接时,才会立即更新;参数包括广播内容、广播间隔、设备名称等。
6 指令说明
6.1基本操作指令
6.1.1获取软件版本信息:AT+VER
功能说明:
获取模块当前运行的软件版本信息。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+VER | AT:<软件版本信息>(\r\n) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+VER | 获取软件版本信息 |
| ← | AT:1.5.0-2507041634(\r\n) | 返回查询结果 |
6.1.2显示所有配置信息:AT+CFG
功能说明:
显示模块所有当前配置信息,包括名称、版本、波特率、连接状态、MAC地址、广播参数等。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+CFG |
Name:<蓝牙名称>
Version:<软件版本>
Baudrate:<串口波特率>
DataFormat:<通信数据格式>
Connected:<当前的蓝牙连接状态>
MacAddr:<蓝牙 mac地址>
AdvType:<广播类型>
AdvData:<广播数据>
ScanRsp:<扫描响应数据>
TxPwr:<发射功率>
AdvIntv:<广播间隔>
SleepMode:<低功耗模式设置>
|
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+CFG | 显示所有配置信息 |
| ← |
Name = Air5101S Version = 1.5.0-2507041634 Baudrate = 9600 DataFormat = ASCII Connected = False MacAddr = 0x7F0400086BDD AdvType = 0x03 AdvData = 0x0201060303121803190000 ScanRsp = 0x0A094D47D24C6966652D43 TxPwr = 15 SleepMode = 0 |
返回查询结果 |
6.1.3保存配置信息:AT+SAVE
功能说明:
将当前所有配置参数保存至 Flash,掉电或重启后仍有效。
注意事项:
1. 保存的配置信息内容包含 MAC 地址、波特率、UUID、设备名、广播内容、广播间隔、广播类型、发射功率值等;如果不执行该指令,芯片进入低功耗、掉电或重启时,以上信息会复位。
2. 低功耗模式下唤醒(无论是蓝牙自己唤醒起来广播,还是串口、IO 唤醒),都会重新从 flash 内读取配置信息,所以不要在有低功耗的情况下更改以上配置;或者在执行低功耗命令前先执行该命令立即保存,然后再执行低功耗。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SAVE | AT:OK(\r\n) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SAVE | 保存配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.1.4恢复出厂设置:AT+DEFAULT
功能说明:
恢复模块所有配置为出厂默认值,并重启模块。
注意事项:
1. 执行AT+SAVE指令保存的信息也会被擦除。
2. 执行后模块会重启。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+DEFAULT | AT:OK(\r\n) |
6.1.5模组重启:AT+RESTART
功能说明:
软重启模块。
注意事项:
重启后未保存的配置将丢失。
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 执行命令 | AT+RESTART | AT:OK(\r\n) |
6.1.6获取当前设定的串口波特率:AT+GETBAUD/AT+GD
功能说明:
获取当前设定的串口波特率。
注意事项:
返回值为整数,如 9600、115200 等。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETBAUD | AT:<baud> |
| 执行命令(简略版) | AT+GD | AT:<baud> |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<baud> |
串口波特率 | 整数 | 常见值:9600, 19200, 38400, 57600, 115200等; 最高支持到921600 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETBAUD | 查询串口波特率 |
| ← | AT:9600(\r\n) | 返回当前值 |
6.1.7设置串口波特率:AT+SETBAUD/AT+SD
功能说明:
设置串口波特率。
注意事项:
1. 默认波特率为9600。
2. 回复完成后,会按设定的波特率初始化串口,然后需要在新波特率下发送AT+SAVE保存当前波特率配置。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SETBAUD=<baud> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+SD=<baud> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<baud> |
串口波特率 | 整数 | 常见值:9600, 19200, 38400, 57600, 115200等; 最高支持到921600 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETBAUD=9600 | 设置串口波特率为9600 |
| ← | AT:OK(\r\n) | 设置成功 |
6.2模式切换指令
6.2.1蓝牙切换为透传模式:AT+BLEUART/AT+AU
功能说明:
将模块切换为蓝牙透传模式,此时串口数据将通过蓝牙透明传输。
注意事项:
透传模式下仍然响应 AT+BLEATCMD 或 AT+UA 指令。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+BLEUART | UT:OK(\r\n) |
| 执行命令(简略版) | AT+AU | UT:OK(\r\n) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+BLEUART | 进入透传模式 |
| ← | UT:OK(\r\n) | 切换成功 |
6.2.2切换为AT指令模式:AT+BLEATCMD/AT+UA
功能说明:
将模块从透传模式切换回AT指令模式。
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 执行命令 | AT+BLEATCMD | AT:OK(\r\n) |
| 执行命令(简略版) | AT+UA | AT:OK(\r\n) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+BLEATCMD | 进入AT指令模式 |
| ← | AT:OK(\r\n) | 切换成功 |
6.3设备信息配置指令
6.3.1获取蓝牙的设备名称:AT+GETNAME/AT+GN
功能说明:
获取当前蓝牙设备的名称。
注意事项:
1. 设备名称最大长度为20个字符。
2. 模块使用ASCII编码,此时每个字符占用1字节。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETNAME | AT:<name> |
| 执行命令(简略版) | AT+GN | AT:<name> |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<name> |
蓝牙设备名称 | 字符串 | ASCII字符,最大长度20个字符。 |
举例:
| 命令(→)/ 返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETNAME | 查询蓝牙设备名称 |
| ← | AT:Air5101S(\r\n) | 返回查询的蓝牙设备名称 |
6.3.2设置设备名称:AT+SETNAME/AT+SN
功能说明:
设置蓝牙设备的名称。
注意事项:
1. 设备名称最大长度为20个字符。
2. 模块使用ASCII编码,此时每个字符占用1字节。
3. 设置后需执行AT+SAVE保存配置。
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 执行命令 | AT+SETNAME=<name> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+SN=<name> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<name> |
蓝牙设备名称 | 字符串 | ASCII字符,最大长度20个字符。 |
举例:
| 命令(→)/ 返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETNAME=Air5101S | 设置蓝牙设备名称 |
| ← | AT:OK(\r\n) | 设置成功 |
6.3.3获取蓝牙的MAC地址:AT+GETMAC/AT+GM
功能说明:
获取模块的蓝牙 MAC 地址。
注意事项:
1. 返回值为 14个字符的字符串,格式为 ”0x” + 12 位十六进制数。
2. 实际 MAC 地址需按字节反序解读(小端模式)。
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 执行命令 | AT+GETMAC | AT:<MAC> |
| 执行命令(简略版) | AT+GM | AT:<MAC> |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<MAC> |
蓝牙MAC地址 | 14个字符的字符串,格式为"0x" + 12位十六进制数 | 示例:"0x1234567890AB" |
举例:
| 命令(→)/ 返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETMAC | 查询蓝牙MAC地址 |
| ← | AT:0x1234567890AB(\r\n) | 返回查询的蓝牙MAC地址 |
6.3.4设置蓝牙的MAC地址:AT+SETMAC/AT+SM
功能说明:
设置模块的蓝牙 MAC 地址。
注意事项:
1. MAC地址为14个字符的字符串,格式为 ”0x” + 12 位十六进制数。
2. 实际 MAC 地址需按字节反序解读(小端模式)。
3. 设置后需执行AT+SAVE命令保存配置,否则重启后恢复原地址。
4. 字母不区分大小写。
语法规则:
| 命令类型 | 语法 | 返回和说明 |
|---|---|---|
| 执行命令 | AT+SETMAC=<MAC> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+SM=<MAC> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<MAC> |
蓝牙的 MAC 地址 | 14个字符的字符串,格式为"0x" + 12位十六进制数 | 示例:"0x1234567890AB" 1. 必须以"0x"开头 2. 12位十六进制数(0-9, A-F) 3. 字母不区分大小写 |
举例:
| 命令(→)/ 返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETMAC=0x1234567890AB | 设置蓝牙MAC地址 由于反序规则,实际将设置地址为:AB:90:78:56:34:12 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+GETMAC | 验证设置的MAC地址 |
| ← | AT:0x1234567890AB(\r\n) | 返回查询的蓝牙MAC地址 |
| → | AT+SAVE | 保存MAC地址配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.4蓝牙通信参数指令
6.4.1 获取广播类型:AT+GETADVTYPE/AT+GAT
功能说明:
获取当前蓝牙模块的广播类型设置。
注意事项:
1. 广播类型决定了设备是否可被其他蓝牙设备连接。
2. 更改广播类型后需执行AT+SAVE命令保存配置。
3. 广播类型会影响设备的被发现和连接行为。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETADVTYPE | AT:<type> |
| 执行命令(简略版) | AT+GAT | AT:\<type> |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<type> |
获取的蓝牙广播类型 | 0x02 0x03 |
0x02-不可连接广播包:设备只广播数据,不接受连接请求 0x03-可连接广播包:设备广播数据并接受连接请求 |
举例:
| 命令(→)/ 返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETADVTYPE | 获取当前广播类型 |
| ← | AT:0x03(\r\n) | 返回当前广播类型为可连接广播 |
6.4.2 设置广播类型:AT+SETADVTYPE/AT+SAT
功能说明:
设置蓝牙模块的广播类型,控制设备是否允许被其他蓝牙设备连接。
注意事项:
1. 广播类型决定了设备是否可被其他蓝牙设备连接。
2. 更改广播类型后需执行AT+SAVE命令保存配置。
3. 广播类型会影响设备的被发现和连接行为。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SETADVTYPE=<type> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+SAT=<type> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<type> |
蓝牙广播类型 | 0x02 0x03 |
0x02-不可连接广播包:设备只广播数据,不接受连接请求 0x03-可连接广播包:设备广播数据并接受连接请求 |
举例:
| 命令(→)/ 返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETADVTYPE=0x03 | 设置广播类型为0x03 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+SAVE | 保存广播类型设置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.4.3 获取广播包内容:AT+GETADV/AT+GA
功能说明:
获取当前蓝牙模块的广播数据包内容。
注意事项:
1. 广播数据包最大长度为31字节(十六进制)。
2. 数据内容以十六进制字符串形式返回,前缀为"0x"。
3. 广播数据格式遵循蓝牙AD Structure格式。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETADV | AT:<data> |
| 执行命令(简略版) | AT+GA | AT:<data> |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<data> |
蓝牙广播包内容 | 十六进制字符串 | 格式:"0x" + 十六进制数据 最大长度:62字符(31字节数据) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETADV |
获取当前广播包内容 |
| ← | AT:0x0201060303121803190000(\r\n) |
返回当前广播包内容 数据解析: 02 01 06 → [长度2字节][类型1-广播标志][06-通用发现模式] 03 03 12 18 → [长度3字节][类型3-16位UUID][0x1812] 03 19 00 00 → [长度3字节][类型19-设备外观][0000-未知设备] |
6.4.4 设置广播包内容:AT+SETADV/AT+SA
功能说明:
设置蓝牙模块的广播数据包内容。
注意事项:
1. 广播数据包最大长度为31字节(十六进制)。
2. 数据必须以"0x"前缀的十六进制字符串格式输入。
3. 修改广播数据后需执行AT+SAVE保存配置。
4. 广播数据格式需遵循蓝牙AD Structure规范。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SETADV=<data> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+SA=<data> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<data> |
蓝牙广播包内容 | 十六进制字符串 | 格式:"0x" + 十六进制数据 最大长度:62字符(31字节数据) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETADV=0x020106 |
设置广播数据为基本广播标志 解析: 02 01 06 → [长度2][类型1-广播标志][06-通用发现模式] |
| ← | AT:OK(\r\n) |
设置成功 |
| → | AT+SAVE |
保存广播数据配置 |
6.4.5 获取模块预设的扫描响应数据:AT+GETSCANRSP/AT+GSR
功能说明:
获取蓝牙模块的预设的扫描响应数据。扫描响应数据是在设备收到扫描请求时返回的附加信息,用于提供设备名称等补充信息,不占用广播数据包的有效载荷。扫描响应数据拥有自己独立的、最大31字节的有效载荷空间。
注意事项:
1. 数据以"0x"前缀的十六进制字符串返回,最大62字符(31字节)。
2. 此指令获取的是模块中预设的扫描响应数据内容,与当前是否被扫描无关。
3. 修改扫描响应数据后需执行AT+SAVE保存配置。
4. 扫描响应数据格式需遵循蓝牙AD Structure规范。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETSCANRSP | AT:<data>(\r\n) |
| 执行命令(简略版) | AT+GSR | AT:<data>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<data> |
扫描响应数据 | 十六进制字符串 | 格式:"0x" + 十六进制数据 最大长度:62字符(31字节数据) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETSCANRSP | 获取扫描响应数据 |
| ← | AT:0x080941697235313031(\r\n) | 获取成功 数据解析: 0x080941697235313031 08 = 长度字节 (1字节类型 + 7字节数据 = 8字节) 09 = 数据类型 (09表示完整设备名称) 41 69 72 35 31 30 31 = "Air5101"的ASCII码 |
6.4.6 设置扫描响应数据:AT+SETSCANRSP/AT+SSR
功能说明:
设置蓝牙模块的扫描响应数据。扫描响应数据是在设备收到扫描请求时返回的附加信息,用于提供设备名称等补充信息,不占用广播数据包的有效载荷。扫描响应数据拥有自己独立的、最大31字节的有效载荷空间。
注意事项:
1. 数据必须以"0x"前缀的十六进制字符串格式输入,最大62字符(31字节)。
2. 修改扫描响应数据后需执行AT+SAVE保存配置。
3. 扫描响应数据格式需遵循蓝牙AD Structure规范。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SETSCANRSP=<data> |
AT:OK |
| 执行命令(简略版) | AT+SSR=<data> |
AT:OK |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<data> |
扫描响应数据 | 十六进制字符串 | 格式:"0x" + 十六进制数据 最大长度:62字符(31字节数据) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETSCANRSP=0x080941697235313031 | 设置扫描响应数据 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+SETSCANRSP=0x00 | 清空扫描响应数据,恢复默认空状态 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+SAVE | 保存配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.4.7 获取广播间隔:AT+GETADVINTERV/AT+GAI
功能说明:
获取当前蓝牙模块的广播间隔设置。
注意事项:
1. 单位时间:0.625ms。
2. 取值范围:最大为 10000ms,最小不低于 20ms。
3. 返回值为十六进制格式,需要转换为十进制后乘以0.625ms得到实际时间。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETADVINTERV | AT:<interval>(\r\n) |
| 执行命令(简略版) | AT+GAI | AT:<interval>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<interval> |
广播间隔 | 十六进制字符串 | 格式:"0x" + 十六进制数据 单位时间:0.625ms 范围:0x0020-0x3E80 (20ms-10000ms) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETADVINTERV | 获取广播间隔 |
| ← | AT:0x0030(\r\n) | 获取成功 广播间隔:30ms(0x30 * 0.625ms) |
6.4.8 设置广播间隔:AT+SETADVINTERV/AT+SAI
功能说明:
设置当前蓝牙模块的广播间隔设置。
注意事项:
1. 单位时间:0.625ms。
2. 取值范围:最大为 10000ms,最小不低于 20ms。
3. 数据必须以"0x"前缀的十六进制字符串格式输入。
4. 修改广播间隔后需执行AT+SAVE保存配置。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 设置命令 | AT+SETADVINTERV=<interval> |
AT:OK(\r\n) |
| 设置命令(简略版) | AT+SAI=<interval> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<interval> |
广播间隔 | 十六进制字符串 | 格式:"0x" + 十六进制数据 单位时间:0.625ms 范围:0x0020-0x3E80 (20ms-10000ms) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETADVINTERV=0x0050 | 设置广播间隔为50ms 50ms /0.625ms = 80,对应的十六进制为0x0050 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+SAVE | 保存配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.4.9 获取连接间隔:AT+GETCONINTERV/AT+GCI
功能说明:
获取当前蓝牙连接时主从设备之间的实际通信间隔。
注意事项:
1. 需要在蓝牙连接时调用,否则会报错。
2. 单位时间:1.25ms,返回值需乘以1.25ms得到实际时间间隔
3. 取值范围:最大为 2000ms,最小不低于 7.5ms
4. 返回值为十六进制格式,需要转换为十进制后乘以1.25ms得到实际时间。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETCONINTERV | AT:<interval>(\r\n) |
| 执行命令(简略版) | AT+GCI | AT:<interval>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<interval> |
连接间隔 | 十六进制字符串 | 格式:"0x" + 4位十六进制数据 单位:1.25ms 范围:0x0006-0x0640 (7.5ms-2000ms) 示例:0x0018 = 30ms (0x18 × 1.25ms) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETCONINTERV | 获取连接间隔 |
| ← | AT:0x0018(\r\n) | 获取成功 连接间隔:30ms(0x18 × 1.25ms) |
6.4.10 设置连接间隔:AT+SETCONINTERV/AT+SCI
功能说明:
设置蓝牙连接时主从设备之间的通信间隔。
注意事项:
1. 需要在蓝牙连接时调用,否则会报错。
2. 单位时间:1.25ms。
3. 取值范围:最大为 2000ms,最小不低于 7.5ms。
4. 数据必须以"0x"前缀的十六进制字符串格式输入。
5. 修改广播间隔后需执行AT+SAVE保存配置。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 设置命令 | AT+SETCONINTERV=<interval> |
AT:OK(\r\n) |
| 设置命令(简略版) | AT+SCI=<interval> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<interval> |
连接间隔 | 十六进制字符串 | 格式:"0x" + 4位十六进制数据 单位:1.25ms 范围:0x0006-0x0640 (7.5ms-2000ms) 示例:0x0018 = 30ms (0x18 × 1.25ms) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETCONINTERV=0x0018 | 设置蓝牙连接间隔为30ms |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+SAVE | 保存配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.4.11 获取蓝牙连接时的MTU长度:AT+GETMTU/AT+GMT
功能说明:
获取当前蓝牙连接的 MTU(Maximum Transmission Unit,最大传输单元)长度。MTU 决定了单次蓝牙数据传输的最大字节数。
注意事项:
1. 必须在蓝牙已连接状态下使用,未连接时会返回错误。
2. 实际单包有效数据最大为 MTU-3字节(MTU 值减去 3 字节 ATT 头)。
3. MTU 范围:23~512字节。
4. 返回值为当前连接协商后的实际 MTU 大小。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 设置命令 | AT+GETMTU | AT:<len>(\r\n) |
| 设置命令(简略版) | AT+GMT | AT:<len>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<len> |
MTU长度 | 整数 | 单位:字节 范围:23~512字节 默认值:23 实际有效数据:MTU-3字节 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETMTU | 获取当前 MTU 长度 |
| ← | AT:23(\r\n) | 返回 MTU 长度为 23 字节 |
6.4.12 设置蓝牙连接时的MTU长度:AT+SETMTU/AT+SMT
功能说明:
设置蓝牙连接的 MTU(Maximum Transmission Unit,最大传输单元)长度。MTU 决定了单次蓝牙数据传输的最大字节数。
注意事项:
1. 必须在蓝牙已连接状态下设置,未连接时会返回错误。
2. 实际有效数据长度为 MTU-3字节(MTU 值减去 3 字节 ATT 头)。
3. MTU 设置范围为 23~512 字节。
4. 实际 MTU 长度是主从设备协商的结果,可能与设置值不一致。因此在设置完 MTU 后需等待 3 个以上的连接时间,然后通过 AT+GETMTU 回读实际 MTU 值,以获得实际通讯的MTU。
5. 设置后需执行 AT+SAVE 保存配置。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 设置命令 | AT+SETMTU=<len> |
AT:OK(\r\n) |
| 设置命令(简略版) | AT+SMT=<len> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<len> |
MTU长度 | 整数 | 单位:字节 范围:23~512字节 默认值:23 建议值:根据实际数据传输需求设置 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETMTU=50 | 设置 MTU 长度为 50 字节 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+GETMTU | 等待 3 个连接间隔后回读实际 MTU |
| ← | AT:158(\r\n) | 返回协商后的实际 MTU 长度 |
| → | AT+SAVE | 保存 MTU 配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.5 功耗与控制指令
6.5.1 设置功耗模式:AT+SETLOWPOWER/AT+LP
功能说明:
设置功耗模式。
注意事项:
1. 模式介绍:
1)AT+LP=0,代表恢复到常规模式0,蓝牙正常工作;
2)AT+LP=1,代表进入低功耗模式1,可被发现和连接,唤醒后,会在80ms后再次进入低功耗模式1。
3)AT+LP=3,代表进入低功耗模式3,可被发现和连接,唤醒后,自动退出低功耗模式3,进入常规模式0;。
2. 唤醒方式:
串口RX引脚检测到低电平(保持一定时间)即可唤醒模块。实际操作中,通过串口向模块发送任意数据即可产生起始位低电平,从而触发唤醒。芯片唤醒时间约600μs。
注意:≤ 115200波特率,低电平持续时间≥1us;大于115200波特率,低电平持续时间≥60uS。唤醒成功率95%以上。
3. 唤醒后模块的行为:
1)低功耗模式1:唤醒后会延时80ms再次进入休眠(休眠超时80ms),有串口数据时,休眠延时会清0,重新计算休眠延时。
举例说明:
(1)发任意唤醒数据,模块唤醒后会在80ms后重新进入低功耗模式1,如下图唤醒波形所示:

(2)发任意唤醒数据,然后延时20ms再发一次串口数据,收到串口数据后,休眠延时清0,重新计算休眠延时80ms。
所以理论会在20+80=100ms后,模块才会重新进入低功耗模式1,如下图唤醒波形所示:

(3)发任意唤醒数据,然后延时50ms再发一次串口数据,收到串口数据后,休眠延时清0,重新计算休眠延时80ms。
所以理论会在50+80=130ms后,模块才会重新进入低功耗模式1,如下图唤醒波形所示:

2)低功耗模式3:唤醒后立即恢复到常规模式0,并通过串口上报AT:WakeUP;
4. 唤醒后如何进行后续操作:
1)低功耗模式1:发任意数据唤醒后,延时25-30ms发送回车换行加有效指令,回车换行用于与前面的错误数据(唤醒操作)分隔开,便于模组识别有效指令。
2)低功耗模式3:唤醒后等待AT:WakeUp上报后,即可发有效指令;
5. 其他注意事项:
1)AT指令模式下,串口超时20ms,如果有回车、换行符(任意一个都可以),将立即处理;
注意:串口收到数据后,开始进行20ms的超时定时器,20ms后开始处理接收到的AT指令;如果20ms内收到回车、换行符(任意一个都可以),将立即停止20ms接收定时器,开始处理指令。
2)串口波特率高于115200,就基本不能通过串口数据来唤醒了,如果一定要用串口唤醒,需要发十六进制0x00,这样单字节低电平持续时间最长(大于115200波特率的唤醒,低电平时间要持续60uS以上);
注意:如果没有使用十六进制的0x00,由于没有足够的低电平持续时间,唤醒成功率很低;如果使用十六进制0x00,唤醒成功率可以达到95%以上。
3)如果是在低功耗模式1或3,芯片的 RX 引脚低电平触发唤醒后才能接收串口数据,所以有可能串口数据接收不完整,导致提示 AE:错误;
4)设置后需执行AT+SAVE保存配置,否则重启后恢复原模式。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SETLOWPOWER=<mode> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+LP=<mode> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<mode> |
功耗模式 | 0,1,3 | 0: 常规模式 1: 低功耗模式1 3: 低功耗模式3 |
模式说明:
| 工作状态 | 功耗特性 | 蓝牙功能 | 唤醒后行为 |
|---|---|---|---|
| 常规模式 | 正常功耗 | 正常工作 | - |
| 低功耗模式1 | 较低功耗 | 可被发现和连接 | 80ms左右后会再次进入低功耗模式1 |
| 低功耗模式3 | 较低功耗 | 可被发现和连接 | 自动退出低功耗模式3,恢复为常规模式0 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+LP=1 | 进入低功耗模式1 |
| ← | AT:OK(\r\n) | |
| → | wakeup\r\n | 发唤醒数据"wakeup"唤醒 |
| → | AT+GLP | 25m后发有效指令 |
| ← | AT:LOWPOWER=1(\r\n) | 返回AT+GLP的查询结果 |
| → | wakeup\r\n | 发唤醒数据"wakeup"唤醒 |
| → | AT+LP=3 | 进入低功耗模式3 |
| ← | AT:OK(\r\n) | |
| → | wakeup | 发唤醒数据 |
| ← | AT:WakeUp(\r\n) | 低功耗模式3,在发唤醒数据后,会立即唤醒,并上报AT:WakeUp |
| → | AT+GLP | 此时已经处于常规模式0,可以发有效指令了 |
| ← | AT:LOWPOWER=0(\r\n) | 低功耗模式3,再发唤醒数据后,会立即唤醒,并上报AT:WakeUp |
6.5.2 获取功耗模式:AT+GETLOWPOWER/AT+GLP
功能说明:
获取功耗模式。
注意事项:
只有常规模式0和低功耗模式1会有返回值,低功耗模式3状态下,在发完此查询指令后,会立即唤醒并上报AT:WakeUp。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETLOWPOWER | AT:LOWPOWER=<mode>(\r\n) |
| 执行命令(简略版) | AT+GLP | AT:LOWPOWER=<mode>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<mode> |
低功耗模式 | 0,1 | 0: 常规模式 1: 低功耗模式1 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETLOWPOWER | |
| ← | AT:LOWPOWER=0(\r\n) |
6.5.3 获取发射功率等级:AT+GETTXPOWER/AT+GP
功能说明:
获取发射功率等级。
注意事项:
目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+GETTXPOWER | AT:TxPower=<level>(\r\n) |
| 执行命令(简略版) | AT+GP | AT:TxPower=<level>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<level> |
发射功率等级 | 0~15 | 目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+GETTXPOWER | 获取发射功率 |
| ← | AT:TxPower=15(\r\n) | 发射功率等级为15 |
6.5.4 设置发射功率等级:AT+SETTXPOWER/AT+TP
功能说明:
设置发射功率等级。
注意事项:
目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm;更改发射功率后,会重启射频,因此处于连接状态时会断连。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+SETTXPOWER=<level> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+TP=<level> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<level> |
发射功率等级 | 0~15 | 目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+SETTCPOWER=15 | 设置发射功率等级为15 |
| ← | AT:OK(\r\n) | 设置成功 |
6.6 数据通信指令
6.6.1 向主机发送数据:AT+BLESEND/AT+BS
功能说明:
发送数据给主机。
注意事项:
-
必须在蓝牙已连接状态下使用,未连接时会返回AE错误。
-
实际测试AT指令发送数据单次最大 80字节(超过返回AE错误),透传模式下传输数据单次最大 MTU-3字节(MTU最大支持512字节)
-
AT指令发送数据,建议每包不超过20字节;如需长数据发送,建议在透传模式下发送。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+BLESEND=<data> |
AT:OK(\r\n) |
| 执行命令(简略版) | AT+BS=<data> |
AT:OK(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<data> |
要发送的数据 | 字符串 | 最大长度受MTU和蓝牙协议限制,建议不超过20字节 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+BLESEND=123456 | 发送字符串”123456”给主机 |
| ← | AT:OK(\r\n) | 发送成功 |
6.6.2 断开蓝牙连接:AT+DISCON/AT+DN
功能说明:
断开蓝牙连接。
注意事项:
连接状态可用,若在非连接状态发送该条指令,会上报AE错误。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+DISCON | AT:OK(\r\n) AT:DISCONNECT(\r\n) |
| 执行命令(简略版) | AT+DN | AT:OK(\r\n) AT:DISCONNECT(\r\n) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+DISCON | 断开蓝牙连接 |
| ← | AT:OK(\r\n) AT:DISCONNECT(\r\n) | 断开成功 |
6.6.3 获取连接状态:AT+STATUS/AT+SU
功能说明:
获取蓝牙连接状态。
注意事项:
无
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+STATUS | AT:<status>(\r\n) |
| 执行命令(简略版) | AT+SU | AT:<status>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<status> |
连接状态 | CONNECTED DISCONNECTED |
CONNECTED: 已连接 DISCONNECTED: 未连接 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+STATUS | 查询连接状态 |
| ← | AT:CONNECTED(\r\n) | 返回状态:已连接 |
6.7 系统控制指令
6.7.1 设置看门狗配置:AT+WDCFG
功能说明:
配置看门狗功能参数,用于监控主控设备运行状态。当主控设备在指定时间内未喂狗时,蓝牙模块将通过SWITCH引脚复位主控。
注意事项:
设置后需执行AT+SAVE保存配置。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+WDCFG=<en>[,<timeout_s>,<action_lvl>,<pulse_width_ms>] |
AT:OK(\r\n) |
| 查询命令 | AT+WDCFG? |
AT:<en>,<timeout_s>,<action_lvl>,<pulse_width_ms>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<en> |
看门狗使能 | 0,1 | 必选参数 0:关闭看门狗功能 1:开启看门狗功能 |
<timeout_s> |
喂狗超时时长 | 整数 | 可选参数,默认值:60 单位:秒 范围:1-99999999秒 示例:45表示45秒超时 |
<action_lvl> |
超时动作电平 | 0,1 | 可选参数,默认值:0 0:超时后拉低SWITCH 1:超时后拉高SWITCH |
<pulse_width_ms> |
复位脉冲宽度 | 整数 | 可选参数,默认值:100 单位:毫秒 范围:10-10000ms(10毫秒到10秒) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+WDCFG=1,45,1,500 | 开启看门狗,45秒超时,超时后拉高SWITCH持续500ms |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+WDCFG=1,30,0,200 | 开启看门狗,30秒超时,超时后拉低SWITCH持续200ms |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+WDCFG? | 查询当前配置 |
| ← | AT+WDCFG=1,30,0,200(\r\n) | 返回查询结果 |
| → | AT+WDCFG=0 | 关闭看门狗功能 |
| ← | AT:OK(\r\n) | 保存成功 |
| → | AT+SAVE | 保存看门狗配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.7.2 看门狗喂狗:AT+WDFED
功能说明:
主控设备通过发送此指令告知蓝牙模块运行正常,重置看门狗计时器。
注意事项:
1. 必须在看门狗功能开启状态下使用。
2. 喂狗间隔应小于设置的超时时长。
3. 建议在主控设备主循环中定期调用此指令。
4. 若超时未喂狗,模块将按配置通过SWITCH发送指定脉冲复位主控。
5. 要在AT指令模式下使用。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+WDFED | AT:OK(\r\n) |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+WDFED | 喂狗操作,重置看门狗计时器 |
| ← | AT:OK(\r\n) | 喂狗成功 |
6.7.3 配置唤醒主控功能:AT+WAKEUP
功能说明:
配置蓝牙唤醒主控的低功耗功能。在主控进入低功耗模式时,蓝牙与手机保持连接。当蓝牙连接断开或收到数据时,需要唤醒主控(通过WAKEUP引脚)以恢复主控的处理数据功能。
注意事项:
1. 使用该功能前,请确保硬件连接正确,WAKEUP引脚可用于唤醒主控。
2. 蓝牙发送的第一条数据可能仅用于唤醒主控。
3. 设置后需执行AT+SAVE保存配置。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+WAKEUP=<source_mask>[,<polarity>,<pulse_width_ms>] |
AT:OK(\r\n) |
| 查询命令 | AT+WAKEUP? |
AT:<source_mask>,<polarity>,<pulse_width_ms>(\r\n) |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<source_mask> |
唤醒源配置 | 0,1,2,3 | 必选参数 0:禁用所有唤醒源 1:使能蓝牙连接断开作为唤醒源 2:使能蓝牙接收到数据作为唤醒源 3:同时使能蓝牙连接断开和蓝牙接收到数据作为唤醒源 |
<polarity> |
唤醒电平 | 0,1 | 可选参数,默认值:0 0:当唤醒事件发生时,拉低 WAKEUP 1:当唤醒事件发生时,拉高 WAKEUP 注意:当 source_mask 为 0 时,此参数忽略 |
<pulse_width_ms> |
复位脉冲宽度 | 整数 | 可选参数,默认值:100 单位:毫秒 范围:10-10000ms(10 毫秒到 10 秒) 注意:当 source_mask 为 0 时,此参数忽略 |
举例:
| 命令(→)/返回(←) | 实例 | 解释和说明 |
|---|---|---|
| → | AT+WAKEUP=1,1,100 | 启用蓝牙断链唤醒,设置WAKEUP为高电平,脉冲宽度100ms |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+WAKEUP=2,0,50 | 启用蓝牙收到数据唤醒,设置WAKEUP为低电平,脉冲宽度50ms |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+WAKEUP=3,1,200 | 同时启用蓝牙断链和数据接收唤醒,设置WAKEUP为高电平,脉冲宽度200ms |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+WAKEUP=0 | 禁用所有唤醒源 |
| ← | AT:OK(\r\n) | 设置成功 |
| → | AT+SAVE | 保存配置 |
| ← | AT:OK(\r\n) | 保存成功 |
6.8 错误代码说明
6.8.1 UE: 错误回复(透传模式)
说明: 透传模式下的错误回复,不是发送指令。
举例: 透传模式下发送 AT+VER
返回: UE:(1)
解释: 括号内的 1 为错误代码,具体错误信息请对照下表格
| 错误代码 | 错误标识 | 描述 |
|---|---|---|
| 1 | ERR_NO_CONNECT | 没有被主机连接 |
| 7 | ERR_NOT_FOUND | 没有找到对应指令 |
| 8 | ERR_LENGTH | 指令长度或数据长度错误 |
| 9 | ERR_FORMAT | 数据格式错误 |
| 10 | ERR_PARAMETER | 参数内容错误 |
6.8.2 AE: 错误回复(AT指令模式)
说明: AT 指令模式下的错误回复,不是发送指令
举例 :AT+VER1
返回: AE:(7)
解释: 与“UE:”回复类似
6.8.3 UT:有效回复(透传模式)
说明: 透传模式下的有效回复,不是发送指令
举例: 主机连接蓝牙设备提示
返回: UT:CONNECTED
解释: 无
6.8.4 AT:有效回复(AT指令模式)
说明: AT 指令模式下的有效回复,不是发送指令
举例: 主机断开蓝牙设备提示
返回: AT:DISCONNECT
解释: 无
7 开发板使用说明
7.1 Air5101S 开发板图片

引脚说明:
VBAT:电源输入引脚,连接外部电源(3.3V--5.5V)
SWITCH:当主控不按时喂Air5101时,拉高该信号,通过三极管反向后,拉低主控RESET复位
RST_OUT:与SWITCH通过三极管反向连接(连接主控RESET引脚,用于复位主控)
RESET:当主控发AT指令给Air5101得不到响应时,通过拉低此管脚可复位Air5101
RST_IN:与RESET经三极管反向连接(连接主控GPIO引脚,用于复位Air5101)
WAKEUP:当主控进入低功耗模式,Air5101与手机或其他蓝牙设备保持连接;当蓝牙连接断开或收到数据时,可通过此管脚唤醒主控以恢复主控的处理数据功能
RXD:与主控的TXD引脚连接
TXD:与主控的RXD引脚连接
7.2 硬件连接
Air5101S 开发板的 VBAT 供电范围:3.3V--5.5V
| Air5101S开发板 | 串口线 |
| VBAT | VCC |
| GND | GND |
| TXD | RXD |
| RXD | TXD |
7.3 测试说明
1、Air5101S 开发板通过串口线连接到电脑 USB 口;
2、打开 PC 端的串口工具,选择对应的端口,配置波特率 9600;
3、上电后,Air5101S 默认是透传模式,可以发送 AT 指令 "AT+UA",切换到 AT 指令模式,看到有"AT:OK" 的返回信息,证明已成功进入 AT 指令模式,开发板工作正常。

4、接下来可以打开蓝牙调试助手,测试蓝牙的数据收发功能;
推荐使用 nrf connect 调试软件:
-
Android:点我,下载 ANDROID 版 nrf connect APP
-
iOS:在 App Store 中搜索 nRF Connect 并下载。
5、Air5101S 开发板默认蓝牙名称是 Air5101S,可在蓝牙调试软件搜索"Air5101S"关键字查找;
点击“Air5101S”设备进行连接,成功连接后,APP 会显示该设备提供的服务(Service)和特征值(Characteristic)。


6、AT 指令模式下的数据收发
(1)在手机 APP 上向 Air5101S 的特征值写入数据,数据将在串口工具中显示;

(2)在串口工具中发送的数据,需要由手机 APP 订阅对应的特征值通知或读取才能收到。

7、透传模式下的数据收发
首先需要通过 AT 指令 "AT+AU" 将开发板切换回透传模式。
在此模式下,手机 APP 与开发板蓝牙连接后,双方发送的数据将自动、无缝地通过串口与蓝牙进行双向传输,无需处理底层协议。手机发送的数据会直接从串口输出,从串口输入的数据会直接发送给手机。

7.4 LED灯演示
1、为方便测试 Air5101S 的低功耗,故 Air5101S 开发板上的 LED 灯默认是关闭的,需要做特定的操作才能打开 LED 灯。
2、将 Air5101S 开发板的 LED 脚和 WAKEUP 脚 用跳线帽短接起来:

3、当 LED 脚被拉高时,LED 灯就会亮,所以可以通过 AT 指令拉高 WAKEUP,从而拉高 LED 脚。
指令:AT+WAKEUP=1,0,10(注意此指令掉电不保存)
含义:启用蓝牙断连唤醒功能,当蓝牙断开后会拉低 WAKEUP 10ms,然后会继续保持高电平。
所以可以通过这条指令,让 WAKEUP 的电平 处于常高状态,从而起到拉高 LED 引脚,点亮 LED 灯的作用。
同理,也可以短接 LED 脚和 SWITCH,让 SWITCH 输出高电平来点亮 LED 灯。

7.5 看门狗介绍
精心设计的互为看门狗:
Air5101S守护主控:Air5101S 作为独立的硬件看门狗。当主控运行异常、未能在设定时间内“喂狗”时,Air5101S模组能通过 SWITCH 引脚自动输出指定电平,强制重启主控。
主控守护Air5101S:主控亦可作为Air5101S的看门狗,当Air5101S工作异常时,主控可拉低Air5101S的RESET脚,复位Air5101S。

上图分别加了个三极管反向,这样的好处是:
可以通过三极管基极的下拉电阻,保证电平的稳定性;
因为无论是Air5101还是主控(比如:Air780EXX),在开机初始化完成之前,SWITCH和主控的GPIO的电平可能不确定,所以需要通过三极管反向,确保SWITCH和主控的GPIO的电平稳定;
上面这个参考电路基本没有什么耗流:SWITCH和接主控的某个GPIO平时都是低电平,没有耗流,这是常态;只有需要重启的时候,这两个信号才会变成高,才会有耗流
重点注意:
按照上面的参考电路,需要让Air5101的SWITCH在平时为低,喂狗超时后拉高控制主控复位,所以需要这样设置指令:
AT+WDCFG=1,60,1,100
上面指令的意思是:开启看门狗,60秒超时,超时后拉高SWITCH持续100ms;
重点在第一个参数 “1” 和第三个参数 “1” :
第一个参数 “1” 表示开启看门狗功能;
第三个参数 “1” 表示超时后拉高 SWITCH 引脚,那么在平常正常工作时,SWITCH 引脚就会保持低电平。
7.6 唤醒主控功能演示
专为 4G+ 蓝牙 双模设备优化。在 4G 模组进入低功耗时,蓝牙可保持低功耗连接。一旦发生蓝牙连接断开或收到数据等关键事件,蓝牙模块能通过 WAKEUP 引脚立即唤醒 4G 模组,实现真正的按需工作。
Air5101 的 WAKEUP 可以连接到主控模组的 WAKEUP 管脚上,通过 WAKEUP 的电平变化来唤醒主控模组。
1、在演示唤醒功能前,先了解下基本的 AT 指令
配置唤醒主控功能指令:AT+WAKEUP
功能说明:
配置蓝牙唤醒主控的低功耗功能。在主控进入低功耗模式时,蓝牙与手机保持连接。当蓝牙连接断开或收到数据时,需要唤醒主控(通过 WAKEUP 引脚)以恢复主控的处理数据功能。
语法规则:
| 命令类型 | 语法 | 返回 |
|---|---|---|
| 执行命令 | AT+WAKEUP=<source_mask>[,<polarity>,<pulse_width_ms>] |
AT:OK |
| 查询命令 | AT+WAKEUP? |
AT:<source_mask>,<polarity>,<pulse_width_ms> |
参数定义:
| 参数 | 定义 | 取值 | 对取值的说明 |
|---|---|---|---|
<source_mask> |
唤醒源配置 | 0,1,2,3 | 必选参数 0:禁用所有唤醒源 1:使能蓝牙连接断开作为唤醒源 2:使能蓝牙接收到数据作为唤醒源 3:同时使能蓝牙连接断开和蓝牙接收到数据作为唤醒源 |
<polarity> |
唤醒电平 | 0,1 | 可选参数,默认值:0 0:当唤醒事件发生时,拉低 WAKEUP 1:当唤醒事件发生时,拉高 WAKEUP 注意:当 source_mask 为 0 时,此参数忽略 |
<pulse_width_ms> |
复位脉冲宽度 | 整数 | 可选参数,默认值:100 单位:毫秒 范围:10-10000ms(10 毫秒到 10 秒) 注意:当 source_mask 为 0 时,此参数忽略 |
2、演示蓝牙断连的唤醒功能
AT 指令:AT+WAKEUP=1,1,5000
含义:使能蓝牙连接断开作为唤醒源,当蓝牙断连后,拉高 WAKEUP 持续 5 秒
3、验证
有多种验证方式:
(1)LED 灯验证
通过跳线帽短接 WAKEUP 脚和 LED 脚,当蓝牙断连后,LED 灯会亮 5 秒。
(2)万用表或者示波器 测量 WAKEUP 的电平变化。