跳转至

使用手册

1概述

Air5101系列是一款基于BLE 5.2技术的低功耗蓝牙(BLE)透传模块,兼具高性能与低功耗特性。本系列模块提供完整的AT指令集配置接口和透明数据传输模式,极大简化了无线通信应用的开发流程。

系列型号说明:

● Air5101S:工作于从模式,可被手机、主机等连接。

● Air5101M:工作于主模式,可主动扫描并连接其他从设备。

注意:Air5101S和Air5101M两者硬件封装一致,仅固件差异。

蓝牙技术规格

● 蓝牙版本:BLE 5.2;

● 协议标准:低功耗蓝牙(BLE);

● 通信距离:参考距离10~20米(注:具体距离取决于环境和使用条件);

● 数据传输率:物理层理论支持 1Mbps,短包格式传输;

● 发射功率:-40dBm~6dBm;

● 接收灵敏度 < -96 dBm;

工作模式

● AT指令模式:通过串口发送AT指令配置模块参数;

● 透传模式:建立连接后数据透明传输,无需协议封装;

● 快速切换:支持两种工作模式的热切换;

应用场景

本模块适用于各类物联网设备和无线通信应用,包括但不限于:

● 灯控、玩具控制;

● 数据透传模块;

● 无线传感设备;

● 其他专用设备;

功耗说明:

Air5101S 支持三种功耗模式,常规模式、低功耗模式和休眠模式;

1. 常规模式:具体功耗与广播,连接的工作间隔有关,具体请参考第三章节的功耗说明。

2. 低功耗模式:具体功耗与广播,连接的工作间隔有关,具体请参考第三章节的功耗说明。

3. 休眠模式:蓝牙不工作,整机功耗 2uA 左右;

2 硬件说明

脚位说明

表1 Air5101模组管脚定义

引脚号 引脚名 类型 功能
1 GND 电源地
2 RXD 输入 串口数据接收(同时也是SWD烧录口:SWCLK)
3 TXD 输出 串口数据发送(同时也是SWD烧录口:SWDIO)
4 GND 电源地
5 VBAT 电源 模组工作电源输入
6 GND 电源地
7 PA14 输出 蓝牙连接状态指示(0-未连接,1-已连接),兼作主控唤醒信号
8 PA17 输出 看门狗复位输出,用于重启主控芯片
9 PA19 输入 RST复位信号,复位模组
10 GND 电源地

电平说明

Air5101S,串口电平默认3.3V;

Air5101S-1.8V,串口电平默认1.8V;

天线说明

集成板载PCB天线;

温度

-40°C~+85°C

(这个温度范围,也就是大家常说的“工业级”)

供电

1.8V时,供电范围2.0V--5.5V

3.3V时,供电范围3.0V--5.5V

模组封装

资料中心 - product@air5101 - 合宙模组资料中心

3 功耗说明

工作状态 发射功率 (dbm) 功耗模式 工作间隔 (ms) 峰值电流 (mA) 底电流 (uA) 平均电流 (uA)
广播 6 常规模式 30 17.6 2100 2690
100 17.5 2100 2300
500 18.1 2110 2150
1000 17.45 2110 2120
低功耗模式 30 17.62 76.48 1100
100 17.49 2 483.43
200 17.71 1.97 235.62
500 17.34 1.98 93.93
1000 17.77 1.97 52.69
3000 17.73 1.96 20.15
5000 16.7 2.2 12.34
10000 17.2 2.1 8.4
连接 常规模式 50 19.06 2110 2240
380 19.5 2100 2100
500 19.03 2090 2080
1000 19.06 2070 1070
低功耗模式 35 17.58 75.94 1070
50 19.67 2.04 635
500 18.8 2.16 74.17
1000 18.5 2.17 43.18

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:<软件版本信息>

举例:

命令(→)/返回(←) 实例 解释和说明
AT+VER 获取软件版本信息
AT:1.5.0-2507041634 返回查询结果

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

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SAVE 保存配置
AT:OK 保存成功

6.1.4恢复出厂设置:AT+DEFAULT

功能说明:

恢复模块所有配置为出厂默认值,并重启模块。

注意事项:

1. 执行AT+SAVE指令保存的信息也会被擦除。

2. 执行后模块会重启。

语法规则:

命令类型 语法 返回
执行命令 AT+DEFAULT AT:OK

6.1.5模组重启:AT+RESTART

功能说明:

软重启模块。

注意事项:

重启后未保存的配置将丢失。

语法规则:

命令类型 语法 返回和说明
执行命令 AT+RESTART AT:OK

6.1.6获取当前设定的串口波特率:AT+GETBAUD/AT+GD

功能说明:

获取当前设定的串口波特率。

注意事项:

返回值为整数,如 9600、115200 等。

语法规则:

命令类型 语法 返回
执行命令 AT+GETBAUD AT:<baud>
执行命令(简略版) AT+GD AT:<baud>

参数定义:

参数 定义 取值 对取值的说明
<baud> 串口波特率 整数 常见值:9600, 19200, 38400, 57600, 115200等

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETBAUD 查询串口波特率
AT:9600 返回当前值

6.1.7设置串口波特率:AT+SETBAUD/AT+SD

功能说明:

设置串口波特率。

注意事项:

1. 默认波特率为9600。

2. 回复完成后,芯片会重启,并按设定的波特率初始化串口。

语法规则:

命令类型 语法 返回
执行命令 AT+SETBAUD=<baud> AT:OK
执行命令(简略版) AT+SD=<baud> AT:OK

参数定义:

参数 定义 取值 对取值的说明
<baud> 串口波特率 整数 常见值:9600, 19200, 38400, 57600, 115200等

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETBAUD=9600 设置串口波特率为9600
AT:OK 设置成功

6.2模式切换指令

6.2.1蓝牙切换为透传模式:AT+BLEUART/AT+AU

功能说明:

将模块切换为蓝牙透传模式,此时串口数据将通过蓝牙透明传输。

注意事项:

透传模式下仍然响应 AT+BLEATCMD 或 AT+UA 指令。

语法规则:

命令类型 语法 返回
执行命令 AT+BLEUART UT:OK
执行命令(简略版) AT+AU UT:OK

举例:

命令(→)/返回(←) 实例 解释和说明
AT+BLEUART 进入透传模式
UT:OK 切换成功

6.2.2切换为AT指令模式:AT+BLEATCMD/AT+UA

功能说明:

将模块从透传模式切换回AT指令模式。

语法规则:

命令类型 语法 返回和说明
执行命令 AT+BLEATCMD AT:OK
执行命令(简略版) AT+UA AT:OK

举例:

命令(→)/返回(←) 实例 解释和说明
AT+BLEATCMD 进入AT指令模式
AT:OK 切换成功

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 返回查询的蓝牙设备名称

6.3.2设置设备名称:AT+SETNAME/AT+SN

功能说明:

设置蓝牙设备的名称。

注意事项:

1. 设备名称最大长度为20个字符。

2. 模块使用ASCII编码,此时每个字符占用1字节。

3. 设置后需执行AT+SAVE保存配置。

语法规则:

命令类型 语法 返回和说明
执行命令 AT+SETNAME=\<name> AT:OK
执行命令(简略版) AT+SN=\<name> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<name> 蓝牙设备名称 字符串 ASCII字符,最大长度20个字符。

举例:

命令(→)/ 返回(←) 实例 解释和说明
AT+SETNAME=Air5101S 设置蓝牙设备名称
AT:OK 设置成功

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 返回查询的蓝牙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
执行命令(简略版) AT+SM=<MAC> AT:OK

参数定义:

参数 定义 取值 对取值的说明
<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 设置成功
AT+GETMAC 验证设置的MAC地址
AT:0x1234567890AB 返回查询的蓝牙MAC地址
AT+SAVE 保存MAC地址配置
AT:OK 保存成功

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 返回当前广播类型为可连接广播

6.4.2 设置广播类型:AT+SETADVTYPE/AT+SAT

功能说明:

设置蓝牙模块的广播类型,控制设备是否允许被其他蓝牙设备连接。

注意事项:

1. 广播类型决定了设备是否可被其他蓝牙设备连接。

2. 更改广播类型后需执行AT+SAVE命令保存配置。

3. 广播类型会影响设备的被发现和连接行为。

语法规则:

命令类型 语法 返回
执行命令 AT+SETADVTYPE=<type> AT:OK
执行命令(简略版) AT+SAT=<type> AT:OK

参数定义:

参数 定义 取值 对取值的说明
<type> 蓝牙广播类型 0x02
0x03
0x02-不可连接广播包:设备只广播数据,不接受连接请求
0x03-可连接广播包:设备广播数据并接受连接请求

举例:

命令(→)/ 返回(←) 实例 解释和说明
AT+SETADVTYPE=0x03 设置广播类型为0x03
AT:OK 设置成功
AT+SAVE 保存广播类型设置
AT:OK 保存成功

6.4.3 获取广播包内容:AT+GETADV/AT+GA

功能说明:

获取当前蓝牙模块的广播数据包内容。

注意事项:

1. 广播数据包最大长度为31字节(十六进制)。

2. 数据内容以十六进制字符串形式返回,前缀为"0x"。

3. 广播数据格式遵循蓝牙AD Structure格式。

语法规则:

命令类型 语法 返回
执行命令 AT+GETADV AT:
执行命令(简略版) AT+GA AT:

参数定义:

参数 定义 取值 对取值的说明
\<data> 蓝牙广播包内容 十六进制字符串 格式:"0x" + 十六进制数据
最大长度:62字符(31字节数据)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETADV 获取当前广播包内容
AT:0x0201060303121803190000 返回当前广播包内容
数据解析:
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
执行命令(简略版) AT+SA=\<data> AT:OK

参数定义:

参数 定义 取值 对取值的说明
<data> 蓝牙广播包内容 十六进制字符串 格式:"0x" + 十六进制数据
最大长度:62字符(31字节数据)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETADV=0x020106 设置广播数据为基本广播标志
解析:
02 01 06 → [长度2][类型1-广播标志][06-通用发现模式]
AT:OK 设置成功
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>
执行命令(简略版) AT+GSR AT:\<data>

参数定义:

参数 定义 取值 对取值的说明
\<data> 扫描响应数据 十六进制字符串 格式:"0x" + 十六进制数据
最大长度:62字符(31字节数据)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETSCANRSP 获取扫描响应数据
AT:0x080941697235313031 获取成功
数据解析:
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 设置成功
AT+SETSCANRSP=0x00 清空扫描响应数据,恢复默认空状态
AT:OK 设置成功
AT+SAVE 保存配置
AT:OK 保存成功

6.4.7 获取广播间隔:AT+GETADVINTERV/AT+GAI

功能说明:

获取当前蓝牙模块的广播间隔设置。

注意事项:

1. 单位时间:0.625ms。

2. 取值范围:最大为 3125ms,最小不低于 20ms。

3. 返回值为十六进制格式,需要转换为十进制后乘以0.625ms得到实际时间。

语法规则:

命令类型 语法 返回
执行命令 AT+GETADVINTERV AT:\<interval>
执行命令(简略版) AT+GAI AT:\<interval>

参数定义:

参数 定义 取值 对取值的说明
\<interval> 广播间隔 十六进制字符串 格式:"0x" + 十六进制数据
单位时间:0.625ms
范围:0x0020-0x1388 (20ms-3125ms)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETADVINTERV 获取广播间隔
AT:0x0030 获取成功
广播间隔:30ms(0x30 * 0.625ms)

6.4.8 设置广播间隔:AT+SETADVINTERV/AT+SAI

功能说明:

设置当前蓝牙模块的广播间隔设置。

注意事项:

1. 单位时间:0.625ms。

2. 取值范围:最大为 3125ms,最小不低于 20ms。

3. 数据必须以"0x"前缀的十六进制字符串格式输入。

4. 修改广播间隔后需执行AT+SAVE保存配置。

语法规则:

命令类型 语法 返回
设置命令 AT+SETADVINTERV=\<interval> AT:OK
设置命令(简略版) AT+SAI=\<interval> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<interval> 广播间隔 十六进制字符串 格式:"0x" + 十六进制数据
单位时间:0.625ms
范围:0x0020-0x1388 (20ms-3125ms)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETADVINTERV=0x0050 设置广播间隔为50ms
50ms /0.625ms = 80,对应的十六进制为0x0050
AT:OK 设置成功
AT+SAVE 保存配置
AT:OK 保存成功

6.4.9 获取连接间隔:AT+GETCONINTERV/AT+GCI

功能说明:

获取当前蓝牙连接时主从设备之间的实际通信间隔。

注意事项:

1. 需要在蓝牙连接时调用,否则会报错。

2. 单位时间:1.25ms,返回值需乘以1.25ms得到实际时间间隔

3. 取值范围:最大为 2000ms,最小不低于 7.5ms

4. 返回值为十六进制格式,需要转换为十进制后乘以1.25ms得到实际时间。

语法规则:

命令类型 语法 返回
执行命令 AT+GETCONINTERV AT:\<interval>
执行命令(简略版) AT+GCI AT:\<interval>

参数定义:

参数 定义 取值 对取值的说明
\<interval> 连接间隔 十六进制字符串 格式:"0x" + 4位十六进制数据
单位:1.25ms
范围:0x0006-0x0640 (7.5ms-2000ms)
示例:0x0018 = 30ms (0x18 × 1.25ms)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETCONINTERV 获取连接间隔
AT:0x0018 获取成功
连接间隔: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
设置命令(简略版) AT+SCI=\<interval> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<interval> 连接间隔 十六进制字符串 格式:"0x" + 4位十六进制数据
单位:1.25ms
范围:0x0006-0x0640 (7.5ms-2000ms)
示例:0x0018 = 30ms (0x18 × 1.25ms)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETCONINTERV=0x0018 设置蓝牙连接间隔为30ms
AT:OK 设置成功
AT+SAVE 保存配置
AT:OK 保存成功

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>
设置命令(简略版) AT+GMT AT:\<len>

参数定义:

参数 定义 取值 对取值的说明
\<len> MTU长度 整数 单位:字节
范围:23~512字节
默认值:23
实际有效数据:MTU-3字节

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETMTU 获取当前 MTU 长度
AT:23 返回 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
设置命令(简略版) AT+SMT=\<len> AT:OK

参数定义:

[TABLE] | 参数 | 定义 | 取值 | 对取值的说明 | |:---------|:------------|:------|:-------------------------------| | \<len> | MTU长度 | 整数 | 单位:字节
范围:23~512字节
默认值:23
建议值:根据实际数据传输需求设置|

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETMTU=50 设置 MTU 长度为 50 字节
AT:OK 设置成功
AT+GETMTU 等待 3 个连接间隔后回读实际 MTU
AT:158 返回协商后的实际 MTU 长度
AT+SAVE 保存 MTU 配置
AT:OK 保存成功

6.5 功耗与控制指令

6.5.1 设置功耗模式:AT+SETLOWPOWER/AT+LP

功能说明:

设置功耗模式。

注意事项:

1. 0”表示没有低功耗,全速运行;“1”、“3”表示低功耗模式,蓝牙可以被发现、连接;“2”、“4”表示整机休眠,蓝牙不工作,整机功耗 2uA 左右;“3”与“4”唤醒后会自动恢复为常规模式“0”。

2. 唤醒方式:串口RX引脚检测到低电平(≥1μs)即可唤醒模块。实际操作中,通过串口向模块发送任意数据即可产生起始位低电平,从而触发唤醒。芯片唤醒时间约600μs。

3. 如果是在模式“1”,芯片的 RX 引脚低电平触发唤醒后才能接收串口数据,所以有可能串口数据接收不完整,导致提示 AE:错误。

4. 唤醒后会延时50ms再次进入休眠,如果收到串口数据会延时150ms再进入休眠。

5. 在ASCII模式下,可在唤醒后延时10ms发送回车换行加有效指令,回车换行用于与前面的错误数据(唤醒操作)分隔开,便于模组识别有效指令。

6. 设置后需执行AT+SAVE保存配置,否则重启后恢复原模式。

语法规则:

命令类型 语法 返回
执行命令 AT+SETLOWPOWER=\<mode> AT:OK
执行命令(简略版) AT+LP=\<mode> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<mode> 功耗模式 0,1,2,3,4 0: 常规模式
1: 低功耗模式
3: 低功耗模式
2: 休眠模式
4: 休眠模式

模式说明:

模式值 工作状态 功耗特性 蓝牙功能 唤醒后行为
0 常规模式 正常功耗 正常工作 -
1 低功耗模式 较低功耗 可被发现和连接 50ms左右后会再次进入低功耗
3 低功耗模式 较低功耗 可被发现和连接 自动退出低功耗模式,恢复为模式0
2 休眠模式 极低功耗(~2uA) 蓝牙不工作 50ms左右后会再次进入休眠
4 休眠模式 极低功耗(~2uA) 蓝牙不工作 自动退出休眠模式,恢复为模式0

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETLOWPOWER=1 进入低功耗模式1
AT:OK

6.5.2 获取功耗模式:AT+GETLOWPOWER/AT+GLP

功能说明:

获取功耗模式。

注意事项:

“0”表示没有低功耗,全速运行;“1”表示低功耗模式运行,蓝牙可以连接通讯;“2”表示休眠模式,蓝牙不工作。

语法规则:

命令类型 语法 返回
执行命令 AT+GETLOWPOWER AT:LOWPOWER=\<mode>
执行命令(简略版) AT+GLP AT:LOWPOWER=\<mode>

参数定义:

参数 定义 取值 对取值的说明
低功耗模式 0,1,2 0: 常规模式
1: 低功耗模式
2: 休眠模式

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETLOWPOWER
AT:LOWPOWER=0

6.5.3 获取发射功率等级:AT+GETTXPOWER/AT+GP

功能说明:

获取发射功率等级。

注意事项:

目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。

语法规则:

命令类型 语法 返回
执行命令 AT+GETTXPOWER AT:TxPower=\<level>
执行命令(简略版) AT+GP AT:TxPower=\<level>

参数定义:

参数 定义 取值 对取值的说明
\<level> 发射功率等级 0~15 目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。

举例:

命令(→)/返回(←) 实例 解释和说明
AT+GETTXPOWER 获取发射功率
AT:TxPower=15 发射功率等级为15

6.5.4 设置发射功率等级:AT+SETTXPOWER/AT+TP

功能说明:

设置发射功率等级。

注意事项:

目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm;更改发射功率后,会重启射频,因此处于连接状态时会断连。

语法规则:

命令类型 语法 返回
执行命令 AT+SETTXPOWER=\<level> AT:OK
执行命令(简略版) AT+TP=\<level> AT:OK>

参数定义:

参数 定义 取值 对取值的说明
\<level> 发射功率等级 0~15 目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETTCPOWER=15 设置发射功率等级为15
AT:OK 设置成功

6.6 数据通信指令

6.6.1 向主机发送数据:AT+BLESEND/AT+BS

功能说明:

发送数据给主机。

注意事项:

必须在蓝牙已连接状态下使用,未连接时会返回AE错误。

语法规则:

命令类型 语法 返回
执行命令 AT+BLESEND=\<data> AT:OK
执行命令(简略版) AT+BS=\<data> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<data> 要发送的数据 字符串 最大长度受MTU和蓝牙协议限制,建议不超过20字节

举例:

命令(→)/返回(←) 实例 解释和说明
AT+BLESEND=123456 发送字符串”123456”给主机
AT:OK 发送成功

6.6.2 断开蓝牙连接:AT+DISCON/AT+DN

功能说明:

断开蓝牙连接。

注意事项:

连接状态可用,若在非连接状态发送该条指令,会上报AE错误。

语法规则:

命令类型 语法 返回
执行命令 AT+SETTXPOWER=\<level> AT:OK
执行命令(简略版) AT+TP=\<level> AT:OK>

参数定义:

参数 定义 取值 对取值的说明
\<level> 发射功率等级 0~15 目前发射功率只有(0~15)共 16 个等级,最高等级 15 发射功率约 6dbm。

举例:

命令(→)/返回(←) 实例 解释和说明
AT+SETTCPOWER=15 设置发射功率等级为15
AT:OK 设置成功
AT+SAVE 保存配置
AT:OK 保存成功

6.6.3 获取连接状态:AT+STATUS/AT+SU

功能说明:

获取蓝牙连接状态。

注意事项:

语法规则:

命令类型 语法 返回
执行命令 AT+STATUS AT:\<status>
执行命令(简略版) AT+SU AT:\<status>

参数定义:

参数 定义 取值 对取值的说明
\<status> 连接状态 CONNECTED
DISCONNECTED
CONNECTED: 已连接
DISCONNECTED: 未连接

举例:

命令(→)/返回(←) 实例 解释和说明
AT+STATUS 查询连接状态
AT:CONNECTED 返回状态:已连接

6.7 FLASH操作指令

6.7.1 读取flash数据:AT+READFLASH/AT+RF

功能说明:

从模块的Flash存储器中读取指定地址的数据内容。

注意事项:

1. 单次读取最大长度为 32 字节。

2. 地址范围:0x0000 - 0x3FFF (共16KB),确保访问地址不超过此范围。

3. 地址规则:输入的地址字符串按低字节在前处理(例如:输入 0xf23f,实际访问 0x3ff2)。

语法规则:

命令类型 语法 返回
执行命令 AT+READFLASH=\<address>,\<length> AT:\<data>
执行命令(简略版) AT+RF=\<address>,\<length> AT:\<data>

参数定义:

参数 定义 取值 对取值的说明
Flash起始地址 十六进制字符串 格式:"0x"+4位十六进制数
地址规则:小端模式,低字节在前
地址范围:0x0000-0x3FFF (16KB空间)
读取数据长度 十进制整数 单位:字节
范围:1-32字节,即单次读取最大32字节

举例:

命令(→)/返回(←) 实例 解释和说明
AT+READFLASH=0xf23f,12 从实际地址0x3ff2读取12字节数据
AT:0x000000000000000000000000 返回12字节数据(全0)

6.7.2 擦除flash:AT+ERASEFLASH/AT+EF

功能说明:

擦除 flash,一次擦除一个 page(256byte)

注意事项:

1. 地址对齐:起始地址必须 256 字节对齐(即实际地址的低 8 位必须为 0,例如 0x0000, 0x0100, 0x0200)。

2. 地址规则:输入的地址字符串按低字节在前规则处理(例如:输入 0x0020,实际擦除起始地址为 0x2000)。

3. 擦除特性:一次擦除整个 256 字节页,擦除后数据变为 0xFF,此操作不可逆。

语法规则:

命令类型 语法 返回
执行命令 AT+ERASEFLASH=\<address> AT:OK
执行命令(简略版) AT+EF=\<address> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<address> Flash起始地址 十六进制字符串 格式:"0x"+4位十六进制数
地址规则:小端模式,低字节在前
地址对齐:必须256字节对齐

举例:

命令(→)/返回(←) 实例 解释和说明
AT+ERASEFLASH=0x0020 擦除实际地址0x2000开始的256字节页
AT:OK 擦除成功

6.7.3 记录写入数据内容:AT+WRITEFLASH/AT+WF

功能说明:

向Flash存储器的指定地址写入数据内容。

注意事项:

1. 地址规则:地址按低字节在前处理(如输入0x0030,实际地址0x3000)

2. 数据规则:数据按输入顺序写入,必须4字节对齐,不足时左侧自动补零(如0x1234567→0x01234567)

3. 操作限制:单次写入≤32字节,写入前需先擦除,总空间16KB

语法规则:

命令类型 语法 返回
执行命令 AT+WRITEFLASH=\<address>,\<data> AT:OK
执行命令(简略版) AT+WF=\<address>,\<data> AT:OK

参数定义:

参数 定义 取值 对取值的说明
\<address> Flash起始地址 十六进制字符串 格式:"0x"+4位十六进制数
地址规则:小端模式,低字节在前
\<data> 要写入的数据 十六进制字符串 格式:"0x"+4位十六进制数
数据规则:数字字符串按输入顺序写入(大端模式,高字节在前)
范围:单次最大32字节,必须4字节对齐

举例:

命令(→)/返回(←) 实例 解释和说明
AT+WRITEFLASH=0x0030,0x1234567 向实际地址0x3000写入数据01 23 45 67
AT:OK 写入成功

6.8 系统控制指令

6.8.1 设置看门狗配置:AT+WDCFG

功能说明:

配置看门狗功能参数,用于监控主控设备运行状态。当主控设备在指定时间内未喂狗时,蓝牙模块将通过PA17引脚复位主控。

注意事项:

设置后需执行AT+SAVE保存配置。

语法规则:

命令类型 语法 返回
执行命令 AT+WDCFG=<en>[,<timeout_s>,<action_lvl>,<pulse_width_ms>] AT:OK
查询命令 AT+WDCFG? AT:<en>,<timeout_s>,<action_lvl>,<pulse_width_ms>

参数定义:

参数 定义 取值 对取值的说明
<en> 看门狗使能 0,1 必选参数
0:关闭看门狗功能
1:开启看门狗功能
<timeout_s> 喂狗超时时长 整数 可选参数,默认值:60
单位:秒
范围:1-99999999秒
示例:45表示45秒超时
<action_lvl> 超时动作电平 0,1 可选参数,默认值:0
0:超时后拉低PA17
1:超时后拉高PA17
<pulse_width_ms> 复位脉冲宽度 整数 可选参数,默认值:100
单位:毫秒
范围:10-10000ms(10毫秒到10秒)

举例:

命令(→)/返回(←) 实例 解释和说明
AT+WDCFG=1,45,1,500 开启看门狗,45秒超时,超时后拉高PA17持续500ms
AT:OK 设置成功
AT+WDCFG=1,30,0,200 开启看门狗,30秒超时,超时后拉低PA17持续200ms
AT:OK 设置成功
AT+WDCFG? 查询当前配置
AT+WDCFG=1,30,0,200 返回查询结果
AT+WDCFG=0 关闭看门狗功能
AT:OK 保存成功
AT+SAVE 保存看门狗配置
AT:OK 保存成功

6.8.2 看门狗喂狗:AT+WDFED

功能说明:

主控设备通过发送此指令告知蓝牙模块运行正常,重置看门狗计时器。

注意事项:

1. 必须在看门狗功能开启状态下使用。

2. 喂狗间隔应小于设置的超时时长。

3. 建议在主控设备主循环中定期调用此指令。

4. 若超时未喂狗,模块将按配置通过PA17发送指定脉冲复位主控。

语法规则:

命令类型 语法 返回
执行命令 AT+WDFED AT:OK

举例:

命令(→)/返回(←) 实例 解释和说明
AT+WDFED 喂狗操作,重置看门狗计时器
AT:OK 喂狗成功

6.8.3 配置唤醒主控功能:AT+WAKEUP

功能说明:

配置蓝牙唤醒主控的低功耗功能。在主控进入低功耗模式时,蓝牙与手机保持连接。当蓝牙连接断开或收到数据时,需要唤醒主控(通过PA14引脚)以恢复主控的处理数据功能。

注意事项:

1. 使用该功能前,请确保硬件连接正确,PA14引脚可用于唤醒主控。

2. 蓝牙发送的第一条数据可能仅用于唤醒主控。

3. 设置后需执行AT+SAVE保存配置。

语法规则:

命令类型 语法 返回
执行命令 AT+WAKEUP=<source_mask>[,<polarity>,<pulse_width_ms>] AT:OK
执行命令 AT+WAKEUP=[,,] 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:当唤醒事件发生时,拉低 PA14
1:当唤醒事件发生时,拉高 PA14
注意:当 source_mask 为 0 时,此参数忽略
<pulse_width_ms> 复位脉冲宽度 整数 可选参数,默认值:100
单位:毫秒
范围:10-10000ms(10 毫秒到 10 秒)
注意:当 source_mask 为 0 时,此参数忽略

举例:

命令(→)/返回(←) 实例 解释和说明
AT+WAKEUP=1,1,100 启用蓝牙断链唤醒,设置PA14为高电平,脉冲宽度100ms
AT:OK 设置成功
AT+WAKEUP=2,0,50 启用蓝牙收到数据唤醒,设置PA14为低电平,脉冲宽度50ms
AT:OK 设置成功
AT+WAKEUP=3,1,200 同时启用蓝牙断链和数据接收唤醒,设置PA14为高电平,脉冲宽度200ms
AT:OK 设置成功
AT+WAKEUP=0 禁用所有唤醒源
AT:OK 设置成功
AT+SAVE 保存配置
AT:OK 保存成功

6.9 错误代码说明

6.9.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.9.2 AE: 错误回复(AT指令模式)

说明: AT 指令模式下的错误回复,不是发送指令

举例 :AT+VER1

返回: AE:(7)

解释: 与“UE:”回复类似

6.9.3 UT:有效回复(透传模式)

说明: 透传模式下的有效回复,不是发送指令

举例: 主机连接蓝牙设备提示

返回: UT:CONNECTED

解释:

6.9.4 AT:有效回复(AT指令模式)

说明: AT 指令模式下的有效回复,不是发送指令

举例: 主机断开蓝牙设备提示

返回: AT:DISCONNECT

解释: