跳转至

AT 指令集

表:文档信息
项目 内容
版本 V1.2.1
日期 2026-07-28
适用模组 SF32LB57 双模蓝牙模组(SIFLI_AT)

本文档说明 SF32LB57 双模蓝牙(Bluetooth)模组(SIFLI_AT)V1.2.1 版提供的对外 AT 指令接口。命令和响应字符串均以等宽字体标注;其中 \r 表示回车符(0x0D),\n 表示换行符(0x0A)。AT 指令以 ASCII 文本传输,PDU 帧中的二进制字段按小端字节序排列。

本文档是蓝牙 AT 指令模组页面引用的完整 AT 接口规范。

表:变更记录
版本 变更内容 日期
V1.2.1 SF32LB57 V1.2.1 版本:补充 AT+CFGRESET;更新经典蓝牙名称的上电同步、CLEARLINKKEY、连接句柄和 PDU 说明;启用 BQB 构建配置。 2026-07-28

概述

SF32LB57 双模蓝牙模组通过 UART 向主机提供 AT 指令接口,用于 BLE 和经典蓝牙(BR/EDR)。主机可用 AT 指令配置设备参数、管理连接、收发数据,并接收模组主动上报的状态信息。

默认设置

表:默认设置
项目 默认值
设备名 SIFLI_AT
串口波特率 460800 bps
命令/透传模式 透传模式
蓝牙工作模式 双模(BLE+BT)
事件上报 正常上报
设备名附加 MAC 后缀 关闭
设备类别(Class of Device,COD) 000000
BLE MTU 上限 247
全局多连接 已启用(1)
透传空闲断连时间 0(关闭)
GATT 上电自动加载 开启
BLE 随机地址 关闭(使用公有地址)
蓝牙地址 由芯片 UID 自动生成

指令格式

语法定义

AT 指令以 ASCII 文本传输,以回车符 \r(0x0D)作为命令结束符。命令前缀为 AT+(AT 格式指令)或 AT>(PDU 格式指令)。SF32LB57 的 AT 口为 USART1,串口格式为 8N1、无硬件流控,默认波特率为 460800 bps。单条 AT 帧最大长度为 512 字节。

AT 格式指令

表:AT 格式指令形式
形式 命令 说明
查询 AT+<CMD>?\r 读取参数或状态
设置 AT+<CMD>=<param>[,<param>...]\r 写入参数
执行 AT+<CMD>\r 触发动作
表:AT 格式响应
结果 响应字符串
成功 \r\nOK\r\n
失败 \r\nERROR\r\n 或 \r\nFALSE\r\n
查询返回值 \r\n+<CMD>:<value>\r\n\r\nOK\r\n

PDU 格式指令

PDU 指令用于在命令模式下传输二进制数据。除特别标注外,帧内数值字段均按小端字节序排列,data 为原始二进制数据。

命令(主机 → 模组)

'A' 'T' '>' <Opcode(2 bytes)> <Total Length(2 bytes)> [Body] '\r'
表:PDU 命令帧结构
元素 说明
AT> 命令前缀,3 字节 ASCII
Opcode 操作码,2 字节小端。0x0101、0x0102
Total Length Body 总字节数,2 字节小端
Body 载荷数据,具体结构由 Opcode 决定
\r 命令结束符,1 字节

上报(模组 → 主机)

'\r' '\n' '<' <Opcode(2 bytes)> <Total Length(2 bytes)> [Data] '\r' '\n'

命令与响应

以下按能力分类列出全部 AT 指令;分类与"蓝牙 AT 指令模组"页中的索引表一致。

系统与设备

获取固件版本信息

表:获取固件版本信息
项目 内容
命令 AT+GFWVER?\r
响应 成功:\r\n+GFWVER:SIFLI_AT_<version>_<build date>\r\n\r\nOK\r\n;任何设置命令均返回 \r\nERROR\r\n。
参数 无
备注 仅支持查询。返回值固定以 SIFLI_AT_ 开头,依次拼接版本号与编译日期。

查询设备名

表:查询设备名
项目 内容
命令 AT+NAME?\r
响应 \r\n+NAME:<device name>\r\n\r\nOK\r\n
参数 无
备注 返回当前配置的设备名(不含 MAC 后缀,MAC 后缀仅影响对外广播显示名)。

设置设备名

表:设置设备名
项目 内容
命令 AT+NAME=<device name>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 设备名:设备名称字符串,长度 1~29 字节;为空或超过 29 字节返回 ERROR。默认值 SIFLI_AT。
备注 设置后更新设备名配置,并同步更新本地名称及 BLE 扫描响应中的名称。最终对外显示的设备名由 MACNAME 控制。

查询名称附加 MAC 后缀设置

表:查询名称附加 MAC 后缀设置
项目 内容
命令 AT+MACNAME?\r
响应 \r\n+MACNAME:<value>\r\n\r\nOK\r\n
参数 无
备注 返回当前设置状态:0=不附加后缀,1=附加后缀。

设置是否附加 MAC 名称后缀

表:设置是否附加 MAC 名称后缀
项目 内容
命令 AT+MACNAME=<value>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 值:0=对外显示名直接使用设备名;1=在设备名后追加 -XXXX 后缀(XXXX 为本机 BD_ADDR 最后两个字节的大写十六进制)。取值范围 0~1。默认值 0。
备注 设置后更新配置。开启时若设备名加后缀超过显示名长度上限(29 字节),设备名部分会被截断以容纳 5 字节后缀。

查询 IEEE 1284 设备 ID

表:查询 IEEE 1284 设备 ID
项目 内容
命令 AT+1284ID?\r
响应 \r\n+1284ID:<ID string>\r\n\r\nOK\r\n
参数 无
备注 返回当前配置的 IEEE 1284 设备 ID 字符串;未配置时为空字符串。

设置 IEEE 1284 设备 ID

表:设置 IEEE 1284 设备 ID
项目 内容
命令 AT+1284ID=<ID string>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 ID 字符串:IEEE 1284 设备 ID 字符串,长度须小于存储缓冲区容量,超长返回 ERROR。默认值为空字符串。
备注 设置后更新配置。

重启设备

表:重启设备
项目 内容
命令 AT+RESET\r
响应 成功:\r\nOK\r\n;查询形式(AT+RESET?\r):\r\nERROR\r\n
参数 无
备注 收到命令后保存当前 AT 配置,回复 OK,随后停止广播、断开连接并软复位重启设备。本命令不修改配置。

恢复出厂设置

表:恢复出厂设置
项目 内容
命令 AT+FACTORYRESET\r
响应 成功:\r\nOK\r\n;查询形式(AT+FACTORYRESET?\r):\r\nERROR\r\n
参数 无
备注 恢复 AT 配置默认值,清除自定义 GATT 服务配置、BLE 配对绑定、BR/EDR 经典蓝牙配对绑定和 BLE 静态随机地址,然后回复 OK 并重启设备。主机应在重启后等待 IM_READY。

配置复位

表:配置复位
项目 内容
命令 AT+CFGRESET\r
响应 成功:\r\nOK\r\n;查询形式(AT+CFGRESET?\r):\r\nERROR\r\n
参数 无
备注 恢复 AT 配置和已保存的自定义 GATT 配置,然后回复 OK 并重启设备;配对记录和当前 BLE 地址保留。

进入 OTA 升级模式

表:进入 OTA 升级模式
项目 内容
命令 AT+OTA\r
响应 成功:\r\nOK\r\n(随后进入 DFU 模式并复位,不再返回);查询形式(AT+OTA?\r):\r\nERROR\r\n
参数 无
备注 先保存当前 AT 配置,回复 OK,随后写入 DFU 标志并复位进入串口 DFU 升级模式。

查询频偏校准值

表:查询频偏校准值
项目 内容
命令 AT+TRIM?\r
响应 \r\n+TRIM:<freq_off>\r\n\r\nOK\r\n
参数 freq_off:当前记录的频偏校准值,单位 Hz。
备注 返回的是 AT 配置中记录的回显值;实际生效值保存在 FACTORY_CFG_ID_CRYSTAL 分区。

设置频偏校准值

表:设置频偏校准值
项目 内容
命令 AT+TRIM=<freq_off>\r
响应 成功:\r\nOK\r\n;取值越界或校准接口返回失败:\r\nERROR\r\n
参数 freq_off:频偏校准值,单位 Hz,取值范围 -120000~120000,默认值 0。取值为 0 时执行校准复位(恢复硬件/产线原始值);非零值则直接按指定值设置。
备注 设置时修改 HXT 电容组寄存器,并将结果写入 FACTORY_CFG_ID_CRYSTAL 分区。校准成功后,更新 AT 配置中记录的回显值并标记保存。

进入被测设备(DUT)测试模式

表:进入 DUT 测试模式
项目 内容
命令 AT+DUT\r
响应 成功:\r\nOK\r\n;查询形式(AT+DUT?\r):\r\nERROR\r\n
参数 无
备注 置位 BR/EDR 经典蓝牙 DUT 使能位并回复 OK,随后等待综测仪通过空口发送 LMP_test_control 触发信令测试。AT 串口(USART1)保持可用。进入 DUT 模式后不可逆,只能通过复位退出。

地址与标识

查询蓝牙地址

表:查询蓝牙地址
项目 内容
命令 AT+LBDADDR?\r
响应 成功:\r\n+LBDADDR:<addr>\r\n\r\nOK\r\n;失败:\r\nERROR\r\n
参数 addr:返回当前公有蓝牙地址,12 位十六进制字符(大写,无分隔符),高字节在前,例如 001583112233。
备注 返回固件读取到的公有地址;读取失败时返回 ERROR。

设置蓝牙地址

表:设置蓝牙地址
项目 内容
命令 AT+LBDADDR=<addr>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 addr:要设置的蓝牙地址,必须为 12 位十六进制字符(无分隔符),高字节在前,例如 001583112233。长度必须恰为 12 位十六进制字符。
备注 地址写入配置并保存。重启后生效。出厂默认为全 0,表示由芯片 UID 自动生成。

查询 BLE 地址

表:查询 BLE 地址
项目 内容
命令 AT+BLEADDR?\r
响应 成功:\r\n+BLEADDR:<addr>\r\n\r\nOK\r\n;失败:\r\nERROR\r\n
参数 addr:返回当前 BLE 使用的地址,12 位十六进制字符(大写,无分隔符),高字节在前。
备注 若已通过 AT+RANDOMADDR=1 生成 BLE 专用静态随机地址,则返回该静态随机地址;否则返回与蓝牙地址相同的公有地址。读取失败时返回 ERROR。

设置 BLE 地址

表:设置 BLE 地址
项目 内容
命令 AT+BLEADDR=<addr>\r
响应 \r\nERROR\r\n
参数 无
备注 该命令不接受直接设置 BLE 地址,调用即返回 ERROR。BLE 静态随机地址通过 AT+RANDOMADDR=1 生成。

查询 BLE 随机地址使用设置

表:查询 BLE 随机地址使用设置
项目 内容
命令 AT+RANDOMADDR?\r
响应 \r\n+RANDOMADDR:<n>\r\n\r\nOK\r\n
参数 n:当前设置值,0=BLE 使用公有地址,1=BLE 使用静态随机地址。
备注 无

设置 BLE 随机地址使用方式

表:设置 BLE 随机地址使用方式
项目 内容
命令 AT+RANDOMADDR=<n>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 n:0 或 1。1=启用 BLE 静态随机地址,由公有地址推导生成(将公有地址最高字节的高两位置 1,例如公有 001583112233 推导为 BLE C01583112233);0=BLE 改用公有地址。其他取值或多余字符返回 ERROR。默认值为 0。
备注 命令会更新配置。设为 1 后,如果读取公有地址失败,设置值会回退为 0 并返回 ERROR。地址变更会写入 NVDS,重启后生效。再次执行 AT+RANDOMADDR=1 时,会根据未改变的公有地址生成相同的随机地址。

查询设备类别(Class of Device)

表:查询设备类别(Class of Device)
项目 内容
命令 AT+CLASS?\r
响应 成功:\r\n+CLASS:<cod>\r\n\r\nOK\r\n(<cod> 为 6 位大写十六进制)
参数 cod:当前设备类别(Class of Device),固定输出 6 位十六进制(取低 24 位,%06X 格式,不足前补 0)
备注 返回当前设备类别(Class of Device)值。

设置设备类别(Class of Device)

表:设置设备类别(Class of Device)
项目 内容
命令 AT+CLASS=<cod>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 cod:设备类别,十六进制字符串(按 %X 解析)。取值范围 0~FFFFFF(24 位)。默认值 000000。
备注 设置设备类别并更新配置;解析时仅保留低 24 位。

工作模式与可见性

查询可被发现状态

表:查询可被发现状态
项目 内容
命令 AT+DISCOVERABLE?\r
响应 成功:\r\n+DISCOVERABLE:<state>\r\n\r\nOK\r\n
参数 state:当前可被发现状态。0=不可被发现,1=可被发现,2=部分可被发现(混合状态)。含义随工作模式而定:BLE 模式(BTMODE=1)反映 BLE 广播设置,1=开启,0=关闭;BT 模式(BTMODE=2)反映查询扫描(inquiry scan)和分页扫描(page scan)的状态,二者均开为 1,均关为 0,其余为 2;双模(BTMODE=0)下,BLE 广播、查询扫描和分页扫描均开为 1,均关为 0,其余为 2。
备注 仅查询当前可被发现状态,不改变设备状态。

设置可被发现状态

表:设置可被发现状态
项目 内容
命令 AT+DISCOVERABLE=<mode>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 mode:0=关闭可被发现,1=开启可被发现。
备注 命令按当前工作模式生效:BLE 模式(BTMODE=1)下控制 BLE 广播;BT 模式(BTMODE=2)下控制查询扫描(inquiry scan)和分页扫描(page scan);双模(BTMODE=0)下同时控制上述三项。

查询 GATT 广播状态

表:查询 GATT 广播状态
项目 内容
命令 AT+GATTDISCOVER?\r
响应 成功:\r\n+GATTDISCOVER:<state>\r\n\r\nOK\r\n;失败:\r\nERROR\r\n
参数 state:BLE 广播当前是否处于空口发射状态。0=未广播,1=正在广播。
备注 返回 BLE 广播当前的实际发送状态。当工作模式为仅 BT(BTMODE=2)时,该命令不可用并返回 ERROR。

设置 GATT 广播

表:设置 GATT 广播
项目 内容
命令 AT+GATTDISCOVER=<value>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 value:0=停止 BLE 广播,1=启动 BLE 广播。
备注 直接控制 BLE 广播的启动与停止。当工作模式为 BT 模式(BTMODE=2)时该命令不可用。

查询 SPP 可被发现状态

表:查询 SPP 可被发现状态
项目 内容
命令 AT+SPPDISCOVER?\r
响应 \r\n+SPPDISCOVER:<state>\r\n\r\nOK\r\n
参数 <state>:当前查询扫描(inquiry scan)状态,用于控制设备可被发现。0=关闭,1=开启。
备注 当 AT+BTMODE 为 1(仅 BLE)时返回 ERROR。

设置 SPP 可被发现状态

表:设置 SPP 可被发现状态
项目 内容
命令 AT+SPPDISCOVER=<state>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 <state>:查询扫描(inquiry scan)设置,用于控制设备是否可被发现。0=关闭,1=开启。
备注 当 AT+BTMODE 为 1(仅 BLE)时返回 ERROR。仅改变查询扫描位,保持分页扫描(page scan)位不变。

查询 SPP 可被连接状态

表:查询 SPP 可被连接状态
项目 内容
命令 AT+SPPCONNECT?\r
响应 \r\n+SPPCONNECT:<state>\r\n\r\nOK\r\n
参数 <state>:当前分页扫描(page scan)状态,用于控制设备可被连接。0=关闭,1=开启。
备注 当 AT+BTMODE 为 1(仅 BLE)时返回 ERROR。

设置 SPP 可被连接状态

表:设置 SPP 可被连接状态
项目 内容
命令 AT+SPPCONNECT=<state>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 <state>:分页扫描(page scan)设置,用于控制设备是否可被连接。0=关闭,1=开启。
备注 当 AT+BTMODE 为 1(仅 BLE)时返回 ERROR。仅改变分页扫描位,保持查询扫描(inquiry scan)位不变。

查询蓝牙工作模式

表:查询蓝牙工作模式
项目 内容
命令 AT+BTMODE?\r
响应 \r\n+BTMODE:<mode>\r\n\r\nOK\r\n
参数 mode:当前蓝牙工作模式。0=双模(BLE+BT),1=仅 BLE,2=仅 BT。
备注 无

设置蓝牙工作模式

表:设置蓝牙工作模式
项目 内容
命令 AT+BTMODE=<mode>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 mode:蓝牙工作模式。0=双模(BLE+BT),1=仅 BLE,2=仅 BT;取值范围 0~2。默认值 0(双模)。
备注 设置值更新配置,重启后生效。

查询命令模式

表:查询命令模式
项目 内容
命令 AT+COMMAND?\r
响应 \r\n+COMMAND:<mode>\r\n\r\nOK\r\n
参数 mode:当前工作模式。0=透传模式,1=命令模式。
备注 无

设置命令模式

表:设置命令模式
项目 内容
命令 AT+COMMAND=<mode>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 mode:工作模式。0=透传模式,1=命令模式。设备上电后默认进入透传模式。
备注 立即生效,不写入持久化配置,重启后回到透传模式。透传模式下串口收到的数据按透传方式转发给已连接的对端;命令模式下串口数据按 AT 命令解析。

配对与安全

清除配对信息

表:清除配对信息
项目 内容
命令 AT+CLEARLINKKEY\r
响应 成功:\r\nOK\r\n;查询形式 AT+CLEARLINKKEY?\r:\r\nERROR\r\n
参数 无参数。
备注 清除 BLE 绑定信息和经典蓝牙 link key。命令成功后设备会重启;设备名、波特率、COD 等 AT 配置保留。主机应在重启后等待 IM_READY。不支持查询形式。

串口与事件

查询串口波特率

表:查询串口波特率
项目 内容
命令 AT+BAUD?\r
响应 \r\n+BAUD:<baud_rate>\r\n\r\nOK\r\n
参数 baud_rate:当前配置的波特率,单位 bps。
备注 设置波特率后重启设备,新的串口波特率在重启后生效。

设置串口波特率

表:设置串口波特率
项目 内容
命令 AT+BAUD=<baud_rate>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 baud_rate:串口波特率,单位 bps。可使用 38400、57600、115200、230400、460800、921600、1000000。默认值 460800。
备注 设置值更新配置。

查询事件上报设置

表:查询事件上报设置
项目 内容
命令 AT+EVT?\r
响应 \r\n+EVT:<evt_silent>\r\n\r\nOK\r\n
参数 evt_silent:事件上报设置值。0=正常上报,1=启用静默模式(不再上报事件)。
备注 无

设置事件上报方式

表:设置事件上报方式
项目 内容
命令 AT+EVT=<evt_silent>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 evt_silent:事件上报设置值。0=正常上报 IM_CONN/IM_DISCONN/IM_READY 等事件,1=抑制所有事件通知。默认值为 0(正常上报)。
备注 设置值会更新配置。置 1 后,连接建立、断开及就绪事件均不会通过串口输出。

查询透传空闲断连时间

表:查询透传空闲断连时间
项目 内容
命令 AT+IDLE?\r
响应 \r\n+IDLE:<idle_ms>\r\n\r\nOK\r\n
参数 idle_ms:当前空闲断连超时时间,单位毫秒。
备注 无

设置透传空闲断连时间

表:设置透传空闲断连时间
项目 内容
命令 AT+IDLE=<idle_ms>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 idle_ms:透传空闲断连超时时间,单位毫秒,取值范围 0~65535;超过 65535 返回 ERROR。0 表示关闭空闲断连功能。默认值 0(关闭)。
备注 设置值更新配置。仅在透传模式下生效:当处于透传模式且串口距上一次收到数据已超过 idle_ms 毫秒时,若当前存在连接则断开全部连接;idle_ms 为 0 时不触发。

连接管理

查询多连接设置

表:查询多连接设置
项目 内容
命令 AT+MULTICONN?\r
响应 \r\n+MULTICONN:<n>\r\n\r\nOK\r\n
参数 <n>:多连接全局设置值。0=关闭(全局单连接);1=开启(按各传输上限并发)。
备注 无

设置多连接功能

表:设置多连接功能
项目 内容
命令 AT+MULTICONN=<n>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 <n>:0=关闭多连接;1=开启多连接。取值为 0 或 1。默认值 1。
备注 设置后更新配置。关闭多连接时限制并发连接能力;开启多连接时按 AT+BLEMULTICONN、AT+BTMULTICONN 的配置工作。

查询最大 BLE 并发连接数

表:查询最大 BLE 并发连接数
项目 内容
命令 AT+BLEMULTICONN?\r
响应 成功:\r\n+BLEMULTICONN:<n>\r\n\r\nOK\r\n;多连接关闭时:\r\nERROR\r\n
参数 <n>:当前配置的最大 BLE 并发连接数,十进制。
备注 仅在全局多连接已启用(AT+MULTICONN=1)时可查询;未启用时返回 ERROR。

设置最大 BLE 并发连接数

表:设置最大 BLE 并发连接数
项目 内容
命令 AT+BLEMULTICONN=<n>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 <n>:最大 BLE 并发连接数,十进制,取值范围 1~6。默认值 3。
备注 仅在全局多连接已启用(AT+MULTICONN=1)时可设置。命令会更新配置;连接数达到上限后停止广播(不再接受新连接)。连接断开、连接数降至上限以下后,广播会自动恢复。

查询最大经典蓝牙并发连接数

表:查询最大经典蓝牙并发连接数
项目 内容
命令 AT+BTMULTICONN?\r
响应 成功:\r\n+BTMULTICONN:<n>\r\n\r\nOK\r\n;多连接关闭时:\r\nERROR\r\n
参数 <n>:当前配置的最大经典蓝牙(BR/EDR)并发连接数,十进制。
备注 仅在全局多连接已启用(AT+MULTICONN=1)时可查询;未启用时返回 ERROR。

设置最大经典蓝牙并发连接数

表:设置最大经典蓝牙并发连接数
项目 内容
命令 AT+BTMULTICONN=<n>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 <n>:最大经典蓝牙并发连接数,十进制,取值范围 1~7。默认值 7。
备注 仅在全局多连接已启用(AT+MULTICONN=1)时可设置。命令会更新配置;连接数达到上限时,模组会停止分页扫描(page scan),连接数降至上限以下后自动恢复。

断开连接

表:断开连接
项目 内容
命令 断开单个:AT+DISCONN=<conn_hdl>\r;断开全部:AT+DISCONN\r
响应 成功:\r\nOK\r\n;失败或未找到:\r\nERROR\r\n
参数 <conn_hdl>:连接句柄,十六进制。BLE 连接句柄为从 1 开始编号的外部句柄(与 AT+CONNLIST 返回的句柄一致);BT 连接使用其 ACL 句柄。<conn_hdl> 为 0 视为非法输入,返回 ERROR。
备注 不带参数(或参数为空)时断开所有活动链路(BLE 与 BR/EDR)并返回 OK。带参数时按句柄查找:优先按 BLE 外部句柄(内部句柄 = <conn_hdl>-1)匹配,未命中再按 BT ACL 原始句柄匹配;找不到对应连接返回 ERROR。查询形式 AT+DISCONN? 返回 ERROR。

查询连接列表

表:查询连接列表
项目 内容
命令 AT+CONNLIST?\r 或 AT+CONNLIST\r
响应 每条活动连接输出一行 \r\n+CONNLIST:<conn_hdl>,<type>,<addr>,<extra>\r\n;全部输出后 \r\nOK\r\n;无活动连接时仅返回 \r\nOK\r\n;带非空参数:\r\nERROR\r\n
参数 输出字段:<conn_hdl>——连接句柄,4 位十六进制;BLE 使用从 1 开始编号的外部句柄。<type>——连接类型,BLE 或 BT。<addr>——对端蓝牙地址,12 位十六进制(高字节在前)。<extra>——BLE 连接为当前 MTU,BT 连接为服务通道,十进制。
备注 以设置形式传入非空参数时返回 ERROR。模组遍历所有连接槽位,并输出每条活动连接。

数据收发

查询 BLE MTU

表:查询 BLE MTU
项目 内容
命令 AT+GMTU?\r
响应 成功:\r\n+GMTU:<mtu>\r\n\r\nOK\r\n
参数 mtu:当前配置的 BLE MTU 上限值,十进制。
备注 无

设置 BLE MTU

表:设置 BLE MTU
项目 内容
命令 AT+GMTU=<mtu>\r
响应 成功:\r\nOK\r\n;失败:\r\nFALSE\r\n
参数 mtu:BLE MTU 上限值,十进制,取值范围 23~1024,超出范围返回 FALSE。默认值 247。
备注 该值为 MTU 协商的上限设置。

SPP 数据发送

表:SPP 数据发送
项目 内容
命令 AT+SPPSEND=<conn_hdl>,<data>\r 或 AT+SPPSEND=,<data>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 conn_hdl:目标 BT 连接句柄,十六进制。可省略或填 0,此时使用当前第一个活动 BT 连接。data:待发送数据,十六进制字符串,每两个字符表示一个字节,不能为空且字符数须为偶数。ASCII AT 帧的实际数据长度还受单条 AT 帧上限约束。
备注 conn_hdl 与 data 之间以逗号分隔;省略 conn_hdl 时仍需保留逗号。不支持查询形式。

自定义 GATT

查询自定义 GATT 服务列表

表:查询自定义 GATT 服务列表
项目 内容
命令 AT+GATTSRV?\r
响应 对每个已配置的服务依次返回一行 \r\n+GATTSRV:<idx>,<char_count>,<state>\r\n,最后返回 \r\nOK\r\n。无已配置服务时仅返回 \r\nOK\r\n
参数 idx:服务槽位编号,取值 0~5。char_count:该服务已配置的特征数量。state:REG 表示已注册到协议栈,CFG 表示仅在 RAM 中配置、尚未注册
备注 仅列出处于占用状态的服务槽位

创建自定义 GATT 服务

表:创建自定义 GATT 服务
项目 内容
命令 AT+GATTSRV=<idx>,<uuid>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 idx:服务槽位编号,取值 0~5。uuid:服务 UUID,按 MSB 在前的十六进制字符串输入,4 个字符表示 16 位 UUID,32 个字符表示 128 位 UUID
备注 idx 必须为单个数字且其后紧跟逗号。UUID 长度只能为 4 或 32 个字符,其它长度返回 ERROR。若该槽位已注册到协议栈,则不能重新配置,创建返回 ERROR。创建会清空该槽位原有配置

删除自定义 GATT 服务

表:删除自定义 GATT 服务
项目 内容
命令 AT+GATTSRV=<idx>,DEL\r
响应 \r\nOK\r\n
参数 idx:服务槽位编号,取值 0~5
备注 清除该槽位在 RAM 中的配置。已注册到协议栈的服务无法在运行期撤销,此命令仅清除 RAM 配置

查询自定义 GATT 特征列表

表:查询自定义 GATT 特征列表
项目 内容
命令 AT+GATTCHAR?<svc>\r
响应 对该服务的每个特征依次返回一行 \r\n+GATTCHAR:<svc>,<chr>,prop=0x<prop>,len=<max_len>\r\n,最后返回 \r\nOK\r\n;服务不存在:\r\nERROR\r\n
参数 svc:服务槽位编号,取值 0~5。chr:特征索引。prop:特征属性位的十六进制值。max_len:特征值最大长度
备注 无

添加自定义 GATT 特征

表:添加自定义 GATT 特征
项目 内容
命令 AT+GATTCHAR=<svc>,<chr>,<uuid>,<prop>,<len>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 svc:服务槽位编号,取值 0~5。chr:特征索引,取值 0~7。uuid:特征 UUID,按 MSB 在前输入,4 个字符为 16 位、32 个字符为 128 位。prop:属性字符串,由字符 R(读)、W(写,需响应)、w(写,无响应)、N(通知)、I(指示)组合而成。len:特征值最大长度,取值 1~512
备注 五个参数缺一不可,否则返回 ERROR。UUID 长度只能为 4 或 32 个字符。prop 必须至少包含一个有效属性字符,未识别出任何属性返回 ERROR;prop 中无法识别的字符被忽略。len 为 0 或大于 512 返回 ERROR。所属服务必须已创建且尚未注册到协议栈

启动(注册)自定义 GATT 服务

表:启动(注册)自定义 GATT 服务
项目 内容
命令 AT+GATTSTART\r
响应 \r\n+GATTSTART:<count>\r\n 随后 \r\nOK\r\n;查询形式 AT+GATTSTART?\r:\r\nERROR\r\n
参数 count:本次成功注册到协议栈的服务数量
备注 将所有处于占用、尚未注册且至少含一个特征的服务注册到协议栈。服务一经注册即无法在运行期撤销或重新配置。不支持查询形式

发送 GATT 特征数据(通知/指示)

表:发送 GATT 特征数据(通知/指示)
项目 内容
命令 AT+GATTSEND=<svc>,<chr>,<conn_hdl>,<hex>\r;省略连接句柄:AT+GATTSEND=<svc>,<chr>,,<hex>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n;查询形式 AT+GATTSEND?\r:\r\nERROR\r\n
参数 svc:服务槽位编号。chr:特征索引。conn_hdl:BLE 连接句柄,十六进制,从 1 开始计数,可省略。hex:待发送数据,十六进制字符串,字符数须为偶数;ASCII AT 帧的实际数据长度受单条 AT 帧上限约束。
备注 省略 conn_hdl 时使用当前第一个 BLE 连接。目标服务须已注册,特征索引须有效;特征属性含指示(I)时使用指示,否则使用通知。

保存自定义 GATT 配置到 Flash

表:保存自定义 GATT 配置到 Flash
项目 内容
命令 AT+GATTSTORE\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n;查询形式 AT+GATTSTORE?\r:\r\nERROR\r\n
参数 无
备注 将当前所有服务与特征配置持久化到 Flash。仅保存配置数据,注册状态等运行期信息不保存。KVDB 未就绪或写入失败返回 ERROR。不支持查询形式

清除 Flash 中的自定义 GATT 配置

表:清除 Flash 中的自定义 GATT 配置
项目 内容
命令 AT+GATTCLEAR\r
响应 成功:\r\nOK\r\n;查询形式 AT+GATTCLEAR?\r:\r\nERROR\r\n
参数 无
备注 删除 Flash 中保存的 GATT 配置项。不影响当前 RAM 中的配置。不支持查询形式。

查询 GATT 服务上电自动加载设置

表:查询 GATT 服务上电自动加载设置
项目 内容
命令 AT+GATTAUTOSTART?\r
响应 \r\n+GATTAUTOSTART:<v>\r\n\r\nOK\r\n
参数 v:当前设置值,0=关闭,1=开启。默认值为 1。
备注 无

设置 GATT 服务上电自动加载方式

表:设置 GATT 服务上电自动加载方式
项目 内容
命令 AT+GATTAUTOSTART=<v>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 v:0=关闭,1=开启。默认值为 1。
备注 设置后更新配置。开启时,设备会在上电后自动加载已保存的 GATT 服务配置。

主动上报事件(URC)

以下为模组主动发出的状态通知(URC),主机无需下发命令即可接收。通知由 AT+EVT 控制;启用静默模式后,不再输出这些事件。

IM_READY 就绪通知

表:IM_READY 就绪通知
项目 内容
命令 无(由固件主动上报,非用户下发)
响应 上报字符串:\r\nIM_READY\r\n
参数 无
备注 模组完成初始化并进入可用状态时会主动上报一次;当所有连接断开、连接数归零后也会再次上报。是否输出由 AT+EVT 控制;设置为 AT+EVT=1 后,这些通知会被抑制。

IM_CONN 连接指示

表:IM_CONN 连接指示
项目 内容
命令 无(连接建立时由固件主动上报)
响应 命令模式:\r\nIM_CONN <hdl>,<addr>,<mtu>\r\n;透传模式:\r\nIM_CONN\r\n
参数 hdl:连接句柄,4 位十六进制(大写、固定 4 位、不足补 0)。BLE 连接对外显示的句柄从 1 开始编号(内部 0 起始句柄加 1),其他类型显示原始值。addr:对端地址,12 位十六进制,MSB 在前(高字节先出)。mtu:当前连接的 MTU,十进制。
备注 命令模式下,每建立一条连接就会上报一次,并携带句柄、对端地址和 MTU。透传模式下,仅在首条连接建立时(连接数为 1)上报,且不带参数。是否输出由 AT+EVT 控制;设置为 AT+EVT=1 后,这些通知会被抑制。

IM_DISCONN 断开指示

表:IM_DISCONN 断开指示
项目 内容
命令 无(连接断开时由固件主动上报)
响应 命令模式:\r\nIM_DISCONN:<hdl>\r\n
参数 hdl:断开的连接句柄,4 位十六进制(大写、固定 4 位、不足补 0)。BLE 连接对外显示的句柄从 1 开始编号(原始句柄加 1),其他类型显示原始值。
备注 该通知仅在命令模式下输出,并携带句柄;透传模式下不输出此通知。无论处于哪种模式,当所有连接断开、连接数归零后,模组还会额外上报 \r\nIM_READY\r\n。是否输出由 AT+EVT 控制;设置为 AT+EVT=1 后,这些通知会被抑制。

PDU 格式命令

PDU 数据上报(opcode 0x0101)

表:PDU 数据上报(模组 → 主机,opcode 0x0101)
项目 内容
命令 无(由固件在命令模式下主动上报)
响应 \r\n< + opcode(2-byte little-endian) + len(2-byte little-endian) + body + \r\n
参数 opcode 固定为 0x0101;body = conn_hdl(2 字节小端) + data。BLE 连接使用从 1 开始编号的外部句柄,SPP 连接使用原始 ACL 句柄。
备注 命令模式下,BLE 自定义特征写入数据或经典蓝牙 SPP 收到数据时,模组按上述格式向主机上报;透传模式下直接输出数据。

PDU 模式发送数据(自动选择通知特征,opcode 0x0101)

表:PDU 模式发送数据(自动选择通知特征,opcode 0x0101)
项目 内容
命令 二进制帧(非文本 AT 行):AT> + opcode(2 字节小端) + len(2 字节小端) + body + \r。其中 opcode = 0x0101(字节序列 01 01);len 为 body 字节数;body = conn_hdl(2 字节小端) + data。data 为待发送的有效负载。
响应 无文本应答串。固件按连接类型把 data 透传给对端,不回 OK/ERROR。
参数 opcode:固定 0x0101。len:body 长度,取值范围 2~508(小于 2 或大于 AT_RX_BUF_SIZE-4 的帧被丢弃;AT_RX_BUF_SIZE=512)。conn_hdl:目标连接句柄;BLE 连接使用从 1 开始编号的外部句柄,SPP 连接使用原始 ACL 句柄。data:有效负载字节,长度 = len-2,可为 0。
备注 conn_hdl 解析顺序:先按从 1 开始编号的 BLE 句柄查找(即用 conn_hdl-1 命中 BLE 槽),未命中再按原始值查找 SPP 槽;查不到连接则丢弃该帧。当目标为 BLE 连接时,固件遍历自定义 GATT 服务,自动选用第一个带 Notify 或 Indicate 属性的特征发送;找不到此类特征则不发送。当目标为 SPP(BR/EDR)连接时,data 经 SPP 通道发送。帧尾必须紧跟 \r,缺失则丢弃当前帧。帧间若超过 PDU 超时阈值无新字节,PDU 接收状态会被复位。

PDU 模式发送数据(指定服务与特征,opcode 0x0102)

表:PDU 模式发送数据(指定服务与特征,opcode 0x0102)
项目 内容
命令 二进制帧(非文本 AT 行):AT> + opcode(2 字节小端) + len(2 字节小端) + body + \r。其中 opcode = 0x0102(字节序列 02 01);len 为 body 字节数;body = conn_hdl(2 字节小端) + svc_idx(1 字节) + char_idx(1 字节) + data。
响应 无文本应答串。固件按指定服务/特征把 data 发往对端,不回 OK/ERROR。
参数 opcode:固定 0x0102。len:body 长度,取值范围 4~508(接收层统一门限为 2,本 opcode 要求 body 不少于 4 字节,含 svc_idx+char_idx),否则丢弃。conn_hdl:目标 BLE 连接句柄,使用从 1 开始编号的外部值。svc_idx:自定义 GATT 服务索引。char_idx:该服务内的特征索引。data:有效负载字节,长度 = len-4,可为 0。
备注 仅支持 BLE 连接;若解析到的连接为 SPP 类型则丢弃。svc_idx 必须对应一个已注册的自定义服务,char_idx 必须小于该服务的特征数量,否则丢弃。所指定特征必须带 Notify 或 Indicate 属性,否则丢弃。conn_hdl 解析方式同 0x0101(先按从 1 开始编号的 BLE 句柄、再按原始值查找)。帧尾必须紧跟 \r。

PDU 模式断开连接

表:PDU 模式断开连接
项目 内容
命令 AT+DISCONN\r(无参数)或 AT+DISCONN=<conn_hdl>\r
响应 成功:\r\nOK\r\n;失败:\r\nERROR\r\n
参数 conn_hdl:要断开的连接句柄,十六进制。BLE 连接使用从 1 开始编号的外部句柄;0 为非法值,会返回 ERROR。SPP 连接使用原始 ACL 句柄。
备注 无参数时断开当前所有连接并返回 OK。带参数时解析顺序:先按从 1 开始编号的 BLE 句柄查找(用 conn_hdl-1 命中 BLE 槽),未命中再按原始值查找 SPP 槽;查不到连接返回 ERROR。对 BLE 连接以原因码 0x13 发起断开;对 SPP 连接按对端地址发起断开。查询形式 AT+DISCONN? 返回 ERROR。

PDU 连接状态指示(IM_CONN / IM_DISCONN)

表:PDU 连接状态指示(IM_CONN / IM_DISCONN)
项目 内容
命令 主动上报,无需主机下发命令。建立连接时上报 IM_CONN,断开时上报 IM_DISCONN。
响应 命令模式建立连接:\r\nIM_CONN <hdl>,<mac>,<mtu>\r\n,其中 <hdl> 为 4 位十六进制句柄,<mac> 为 12 位十六进制地址(高字节在前),<mtu> 为十进制 MTU。命令模式断开连接:\r\nIM_DISCONN:<hdl>\r\n(<hdl> 为 4 位十六进制)。透传模式仅在建立首条连接时上报 \r\nIM_CONN\r\n(无参数),断开不上报 IM_DISCONN。所有连接断开后两种模式均上报 \r\nIM_READY\r\n。
参数 <hdl>:连接句柄;BLE 连接显示为从 1 开始编号的值(内部句柄从 0 开始编号,再加 1),SPP 连接显示为原始句柄。<mac>:对端蓝牙地址。<mtu>:协商后的 MTU。
备注 是否上报由 AT+EVT 控制:值为 0(默认)时正常上报,值为 1 时不再上报 IM_READY/IM_CONN/IM_DISCONN。上报格式与内容随当前工作模式(命令模式/透传模式)不同,见上文。

附录

常用设备类别(Class of Device)

表:常用设备类别(Class of Device)
设备类别 十六进制值
Computer 0x000100
Phone 0x000200
LAN/Network Access Point 0x000300
Audio/Video 0x000400
Peripheral(键盘/鼠标等) 0x000500
Imaging(打印机/扫描仪等) 0x000600

最后更新: