HCM511S AT命令手册
引言
本文档主要介绍移远通信HCM511S模块通用和BLE相关的AT命令。
定义
- <CR> 回车符。
- <LF> 换行符。
- <...> 参数名称。实际命令行中不包含尖括号。
- [...] 可选参数或TA信息响应的可选部分。实际命令行中不包含方括号。若无特别说明,设置命令中的可选参数被省略时,将默认使用其之前已设置的值或其默认值。
- 下划线 参数的默认设置。
AT命令语句
前缀AT或at必须加在每个命令行的开头。输入<CR>将终止命令行。通常,命令后面跟随形式为<CR><LF><Respone><CR><LF>的响应。在本文档中表现命令和响应的表格中,省略了<CR><LF>,仅显示命令和响应。
模块实现的AT命令可以在语法上分为两类:基础类和扩展类,如下所列。
- 基础类
基础类AT命令的格式为AT
- 扩展类
扩展类AT命令可以在多种模式下运行,如下表所示:
AT命令类型:
| 命令类型 | 语法 | 描述 |
|---|---|---|
| 测试命令 | AT+<cmd>=? |
测试是否存在相应的命令,并返回有关其参数的类型、值或范围的信息。 |
| 查询命令 | AT+<cmd>? |
查询相应命令的当前参数值。 |
| 设置命令 | AT+<cmd>=<p1>[,<p2>[,<p3>]] |
设置用户可定义的参数值。 |
| 执行命令 | AT+<cmd> |
返回特定的参数信息或执行特定的操作。 |
可以用分号(;)将多个命令放在同一行。此时只有第一个命令带有AT前缀。命令可以是大写或小写。
输入AT命令时,可以忽略空格。但以下情况除外:
- 带引号的字符串内;
- 不带引号的字符串或数字参数内;
- IP地址内;
- 在AT命令名称中的 =、? 或 =? 内。
输入AT命令时,至少需要一个回车符。换行符会被忽略,因此在输入时允许使用一个回车符/换行符对。
若只输入了AT标记,未携带命令,则会返回OK;若输入的是无效命令,则会返回ERROR。
对于可选参数,除非明确说明,否则需要一直输入到最后一个可选参数为止。
AT命令响应
当AT命令处理器处理完一条命令后,会返回OK、ERROR或 +CME ERROR:
以下是响应消息的格式:
或者
AT命令描述
通用AT命令详解
AT+QRST
描述: 重启模块。
命令格式:
AT+QRST
响应:
- OK (成功)
- ERROR (失败)
最大响应时间: 300 ms
特性说明: 无
ATI
描述: 显示MT的ID信息。
命令格式:
ATI
响应:
- Quectel
<objectID>
Revision: <revision>
OK (成功)
- ERROR (失败)
参数:
- <objectID>:字符串类型(无双引号)。设备类型的标识符。
- <revision>:字符串类型(无双引号)。MT固件版本的ID信息。
最大响应时间: 300 ms
特性说明: 无
AT+QVERSION
描述: 获取固件版本。
命令格式:
AT+QVERSION
响应:
- +QVERSION: <version>
OK (成功) - ERROR (失败)
参数:
- <version>:字符串类型(无双引号)。模块固件版本号。
最大响应时间: 300 ms
特性说明: 无
AT+QECHO
描述: 启用或禁用回显。
命令格式:
AT+QECHO=<enable>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <enable>:整型。启用/禁用回显。0 = 禁用,1 = 启用。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
AT+QSETBAUD
描述: 设置串口波特率并将设置的波特率值写入Flash。
命令格式:
AT+QSETBAUD=<baud_rate>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <baud_rate>:整型。串口波特率。波特率值:2400、4800、9600、19200、38400、57600、115200、230400、460800和921600。默认值:115200;单位:bps。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置自动保存。
AT+QTXPOWER
描述: 设置射频发射功率并将发射功率值写入Flash。
命令格式:
AT+QTXPOWER? (查询)
或
AT+QTXPOWER=<TX_power> (设置)
响应:
- +QTXPOWER: <TX_power>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <TX_power>:整型。发射功率值。范围:-16~6;默认值:0;单位:dBm。
最大响应时间: 300 ms
特性说明: 该命令在模块重启后生效;参数配置自动保存。
AT+QCFGRI
描述: 启用或禁用RI引脚、设置URC在RI引脚电平翻转后的延迟输出时间和RI引脚低电平的持续时间。
命令格式:
AT+QCFGRI=<enable>,<delay_time>,<low_time>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <RI_enable>:整型。是否启用RI引脚。模块的RI引脚为GPIO5。0 = 禁用,1 = 启用。
- <URC_delay>:整型。URC在RI引脚电平翻转后的延迟输出时间。仅在<RI_enable>为1时有效。范围:10~50;默认值:20;单位:毫秒。
- <RI_hold>:整型。RI引脚低电平的持续时间。仅在<RI_enable>为1时有效。范围:10~50;默认值:20;单位:毫秒。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
RI引脚默认为高电平。执行AT+QCFGRI=1,20,20启用RI引脚后,RI引脚被配置为低电平并持续输出20毫秒,URC在RI低电平持续20毫秒后输出。
BLE相关AT命令详解
AT+QBLEINIT
描述: 初始化BLE功能。模块开启后仅需执行一次该命令进行BLE功能初始化。
命令格式:
AT+QBLEINIT? (查询)
或
AT+QBLEINIT=<role>[,<auto_adv>] (设置)
响应:
- +QBLEINIT: <role>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <role>:整型。设置模块在BLE功能初始化过程中的角色。
- 1:模块作为中心设备
- 2:模块作为外围设备。作为外围设备时,在BLE连接断开之后默认自动开启广播。若无需此功能,可在BLE功能初始化时发送
AT+QBLEINIT=2,0关闭该功能。 - 4:模块作为多连接设备。最多同时支持连接2个中心设备和3个外围设备。
- <auto_adv>:整型。模块作为外围设备或者多连接设备时,与其它中心设备断开BLE连接后是否自动开启广播。
- 0 = 不开启广播
- 1 = 开启广播。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
AT+QBLEADDR
描述: 查询BLE设备地址。
命令格式:
AT+QBLEADDR?
响应:
- +QBLEADDR: <BLE_addr>
OK (成功) - ERROR (失败)
参数:
- <BLE_addr>:字符串类型。BLE设备地址。48位地址以十六进制字符串表示,如"90395E8A70D1"。
最大响应时间: 300 ms
特性说明: 无
AT+QBLENAME
描述: 设置BLE设备名称。
命令格式:
AT+QBLENAME? (查询)
或
AT+QBLENAME=<BLE_name> (设置)
响应:
- +QBLENAME: <BLE_name>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <BLE_name>:字符串类型。BLE设备名称。最大长度:25字节。默认名称:"QUEC_HCM511S"。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置自动保存。
AT+QBLEADVPARAM
描述: 模块作为外围设备或多连接设备时设置BLE广播参数。
命令格式:
AT+QBLEADVPARAM? (查询)
或
AT+QBLEADVPARAM=<adv_int_min>,<adv_int_max> (设置)
响应:
- +QBLEADVPARAM: <adv_int_min>,<adv_int_max>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <adv_int_min>:整型。非定向广播及低占空比定向广播的最小广播间隔。范围:32~16384(对应的时间范围:20毫秒~10.24秒);默认值:160(100毫秒);单位:timeslot(1 timeslot = 0.625毫秒)。
- <adv_int_max>:整型。非定向广播及低占空比定向广播的最大广播间隔。范围:32~16384(对应的时间范围:20毫秒~10.24秒);默认值:160(100毫秒);单位:timeslot(1 timeslot = 0.625毫秒)。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
通过AT+QBLEADVPARAM设置的BLE广播参数在BLE广播重新开启后方可生效。
AT+QBLEADVDATA
描述: 模块作为外围设备或多连接设备时设置BLE广播数据。

命令格式:
AT+QBLEADVDATA=<adv_data>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <adv_data>:十六进制字符串类型。广播数据。由多个AD Structure字段组成,需符合BLE广播格式。所包含的字段如下:
- Length:AD Structure的长度,包括AD Type和AD Data的长度,不包含Length本身的1字节。最大0x1e,即Data字段最大长度为30字节。
- AD Type:广播数据所属的类型,如功耗级别TX Power Level(0x0A)、设备名称 Local Name(0x09)、角色Le Role(0x1C)、服务标识Service UUIDs(0x16)等。对端扫描到广播后,可以根据AD Type判断出广播数据的意义。
- AD Data:广播数据内容,采用大端字节顺序。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
关于AD Type的类型和含义取值,请参考BLE官方文档Core Specification 5.2(https://www.bluetooth.com/specifications/specs/core-specification/%EF%BC%89%E3%80%82
AT+QBLESRDATA
描述: 模块作为外围设备时设置BLE扫描响应数据。
命令格式:
AT+QBLESRDATA=<sr_data>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <sr_data>:字符串类型。扫描响应数据。该参数与<adv_data>类似。有关<adv_data>的详情,请参考AT+QBLEADVDATA。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
AT+QBLEGATTSSRV
描述: 模块作为外围设备或者多连接设备时创建BLE服务。
命令格式:
AT+QBLEGATTSSRV=<srv_UUID>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <srv_UUID>:字符串类型。服务UUID。长度:4字节或32字节。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
- 该命令最多支持创建2个BLE服务。
- 在执行此命令创建BLE服务前,需先通过AT+QBLEINIT进行BLE功能初始化,配置模块作为外围设备或多连接设备,否则蓝牙广播、扫描及连接等功能无法正常使用。
AT+QBLEGATTSCHAR
描述: 模块作为外围设备或者多连接设备时设置BLE特征值UUID。
命令格式:
AT+QBLEGATTSCHAR=<char_UUID>[,<att_cfg>]
响应:
- OK (成功)
- ERROR (失败)
参数:
- <char_UUID>:字符串类型。特征值UUID。长度:4字节或32字节。
- <att_cfg>:整型。特征值UUID属性配置。参数范围:0~FF。其中bit7~bit0表示控制不同属性:
- bit7~bit3:预留
- bit2:通知(Notify)
- bit1:无响应方式写入(Write no response)
- bit0:写入(Write)
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
- 模块最多支持通过该命令设置2个BLE特征值UUID。当省略<att_cfg>时,每个特征值的属性默认为通知(Notify)和无响应方式写入(Write no response)。
- 模块作为外围设备或者多连接设备时,必须先通过AT+QBLEGATTSSRV创建BLE服务,再通过该命令设置BLE特征值UUID,否则蓝牙广播、扫描及连接等功能无法正常使用。
AT+QBLEGATTSSRVDONE
描述: 模块作为外围设备或多连接设备时完成BLE服务创建。
命令格式:
AT+QBLEGATTSSRVDONE
响应:
- OK (成功)
- ERROR (失败)
最大响应时间: 300 ms
特性说明: 无
备注:
模块作为外围设备或者多连接设备时,必须先通过AT+QBLEGATTSCHAR设置BLE特征值UUID,再通过该命令完成BLE服务创建,否则蓝牙广播、扫描及连接等功能无法正常使用。
AT+QBLEADVSTART
描述: 模块作为外围设备或者多连接设备时开启BLE广播。
命令格式:
AT+QBLEADVSTART? (查询)
或
AT+QBLEADVSTART (执行)
响应:
- +QBLEADVSTART: <adv_state>
OK (查询) - OK (执行成功)
- ERROR (失败)
参数:
- <adv_state>:整型。广播状态。0 = 关闭,1 = 开启。
最大响应时间: 1000 ms
特性说明: 无
AT+QBLEADVSTOP
描述: 模块作为外围设备或多连接设备时关闭BLE广播。
命令格式:
AT+QBLEADVSTOP
响应:
- OK (成功)
- ERROR (失败)
最大响应时间: 300 ms
特性说明: 无
AT+QBLEADV
描述: 快速开启BLE广播。
命令格式:
AT+QBLEADV? (查询)
AT+QBLEADV=<adv_state> (设置)
响应:
- +QBLEADV: <adv_state>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <adv_state>:整型。广播状态。0 = 关闭,1 = 开启。
最大响应时间: 1000 ms
特性说明: 无
备注:
- 未初始化BLE功能和未创建BLE服务时,可直接通过该命令开启广播,此时模块会创建默认BLE服务。默认服务为:
- 服务UUID:0x6E400001B5A3F393E0A9E50E24DCCA9E。
- 接收数据的特征值UUID:0x6E400002B5A3F393E0A9E50E24DCCA9E,属性为Write和Write no response;
- 发送数据的特征值UUID:0x6E400003B5A3F393E0A9E50E24DCCA9E,属性为Notify。
- 模块开机后,若直接通过该命令开启广播,则模块将自动被配置为外围设备。
AT+QBLEGATTSNTFY
描述: 模块作为外围设备或多连接设备时以通知的方式发送GATT数据。
命令格式:
AT+QBLEGATTSNTFY=<conn_idx>,<UUID>[,<hex_length>],<data>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
:字符串类型。特征值UUID。长度:4字节或32字节。 - <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送。例如,若<data>为123456,模块会将该数据转换为0x123456进行发送。
- <data>:字符串类型。GATT数据。
最大响应时间: 300 ms
特性说明: 无
AT+QBLESCAN
描述: 模块作为中心设备或者多连接设备时打开或关闭BLE扫描。
命令格式:
AT+QBLESCAN? (查询)
AT+QBLESCAN=<scan>[,<timeout>] (设置)
响应:
- +QBLESCAN: <scan_state>
OK (查询) - OK (设置成功)
- +QBLESCAN:
,<address_type>,<BLE_addr> (当<scan>=1) - +QBLESCAN:
,<address_type>,<BLE_addr>, ,<adv_data> (当<scan>=2或3) - ERROR (失败)
参数:
- <scan_state>:整型。当前扫描状态。0 = 扫描未开启,1 = 扫描已开启。
- <scan>:整型。打开或关闭BLE扫描。
- 0:关闭
- 1:打开,不输出<adv_data>
- 2:打开,输出<adv_data>。该模式必须指定<timeout>值。
- 3:打开,输出<adv_data>。该模式只扫描可连接广播。
- <timeout>:整型。扫描持续时间。范围:100~10000;单位:毫秒。当<scan>为2时,必须设置该参数。
- <name>:字符串类型。扫描到的BLE设备名称。
- <address_type>:整型。BLE设备地址类型。0 = 公共地址,1 = 随机地址。
- <BLE_addr>:字符串类型。BLE设备地址。48位地址以十六进制数串表示,如"58D391010203"。
- <RSSI>:整型。信号强度值。
- <adv_data>:字符串类型。扫描到的广播数据及响应数据。
最大响应时间: 1000 ms
特性说明: 无
备注:
若模块开机后直接通过该命令开启BLE扫描,模块将自动被配置为中心设备。
AT+QBLESCANPARAM
描述: 模块作为中心设备或多连接设备时查询或设置BLE扫描参数。
命令格式:
AT+QBLESCANPARAM? (查询)
AT+QBLESCANPARAM=<scan_interval>,<scan_window> (设置)
响应:
- +QBLESCANPARAM: <scan_interval>,<scan_window>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <scan_interval>:整型。BLE扫描间隔。范围:18~4096(对应的时间范围:11.25毫秒~2.56秒);单位:timeslot(1 timeslot = 0.625毫秒);默认值:100。
- <scan_window>:整型。BLE扫描持续的时间。<scan_window>要小于或等于<scan_interval>。范围:17~4096(对应的时间范围:10.625毫秒~2.56秒);单位:timeslot(1 timeslot = 0.625毫秒);默认值:30。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
在扫描过程中配置的扫描参数不会立即生效,必须关闭扫描后重新打开扫描,参数方可生效。
AT+QBLESCANKWSET
描述: 设置关键词过滤。
命令格式:
AT+QBLESCANKWSET=<enable>[,<keyword_num>[,<keyword1>[,<keyword2>[, ... [,<keyword5>]]]]]
响应:
- OK (成功)
- ERROR (失败)
参数:
- <enable>:整型。使能或禁用关键词过滤。0 = 禁用,1 = 使能。
- <keyword_num>:整型。关键词个数。范围:0~5。
- <keywordx>:字符串类型。目标设备广播数据的关键词。
最大响应时间: 1000 ms
特性说明: 该命令立即生效;参数配置不保存。
AT+QBLECONN
描述: 模块作为中心设备或者多连接设备时连接外围设备。
命令格式:
AT+QBLECONN=<addr_type>,<peer_addr>[,<timeout>]
响应:
- OK (成功)
- ERROR (失败)
参数:
- <addr_type>:整型。外围设备地址类型。0 = 公共地址,1 = 随机地址。
- <peer_addr>:字符串类型。外围设备地址。
- <timeout>:整型。发起连接到连接完成的超时时间。范围:1000~60000;单位:毫秒;默认值:15000。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
若模块开机后直接通过该命令连接外围设备,则模块将自动被配置为中心设备。
AT+QBLECONNPARAM
描述: 模块作为外围设备或中心设备时设置连接参数。
命令格式:
AT+QBLECONNPARAM? (查询)
AT+QBLECONNPARAM=<conn_idx>,<con_interval>,<timeout>,<latency> (设置)
响应:
- +QBLECONNPARAM: <conn_idx>,<con_interval>,<timeout>,<latency>
OK (查询) - OK (设置成功)
- ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <con_interval>:整型。连接时间间隔。范围:6~3200(对应的时间范围:7.5毫秒~4秒);单位:1.25毫秒。
- <timeout>:整型。BLE链路的监督超时。范围:10~3200(对应的时间范围:100毫秒~32秒);单位:10毫秒。
- <latency>:整型。外围设备跳过的连接事件的个数。范围:0~499(0x0000~0x01F3)。
最大响应时间: 300 ms
特性说明: 无
备注:
<con_interval>、<timeout>和<latency>之间的大小关系需满足:<con_interval> × <latency>小于<timeout>。
AT+QBLEGATTCWRCMD
描述: 模块作为中心设备或者多连接设备时以写命令的方式发送GATT数据。
命令格式:
AT+QBLEGATTCWRCMD=<conn_idx>,<UUID>[,<hex_length>],<data>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <UUID>:字符串类型。特征值的UUID。长度:4字节或者32字节。
- <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送,例如,若<data>为123456,模块会将该数据转换成0x123456进行发送。
- <data>:字符串类型。GATT数据。
最大响应时间: 300 ms
特性说明: 无
AT+QBLEGATTCWRREQ
描述: 模块作为中心设备或者多连接设备时以写请求的方式发送GATT数据。
命令格式:
AT+QBLEGATTCWRREQ=<conn_idx>,<UUID>[,<hex_length>],<data>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <UUID>:字符串类型。特征值的UUID。长度:4字节或32字节。
- <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送,例如,若<data>为123456,模块会将该数据转换成0x123456进行发送。
- <data>:字符串类型。GATT数据。
最大响应时间: 1000 ms
特性说明: 无
AT+QBLEGATTCNTFCFG
描述: 模块作为中心设备或者多连接设备时启用/禁用通知。
命令格式:
AT+QBLEGATTCNTFCFG=<conn_idx>,<UUID>,<enable>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <UUID>:字符串类型。特征值的UUID。长度:4字节或32字节。
- <enable>:整型。启用/禁用通知。0 = 禁用,1 = 启用。
最大响应时间: 300 ms
特性说明: 无
AT+QBLEDISCONN
描述: 断开BLE连接。
命令格式:
AT+QBLEDISCONN[=<conn_idx>]
响应:
- OK (成功)
- ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
最大响应时间: 300 ms
特性说明: 无
AT+QBLESTAT
描述: 模块作为中心设备或外围设备时查询BLE设备状态。
命令格式:
AT+QBLESTAT
响应:
- +QBLESTAT: <BLE_state>
OK (成功) - ERROR (失败)
参数:
- <BLE_state>:字符串类型。BLE设备当前状态。
- "NOINIT":未初始化状态
- "INIT":初始化状态
- "ADVERTISING":广播状态
- "CONNECTED":连接状态
- "DISCONNECTED":断开连接状态
最大响应时间: 300 ms
特性说明: 无
AT+QBLEIDXCONNSTAT
描述: 模块作为多连接设备时查询指定设备的BLE连接状态。
命令格式:
AT+QBLEIDXCONNSTAT=<conn_idx>
响应:
- +QBLEIDXCONNSTAT: <conn_idx>,<conn_state>
OK (成功) - ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <conn_state>:整型。BLE连接状态。0 = 未连接,1 = 已连接。
最大响应时间: 300 ms
特性说明: 无
AT+QBLECONNLIST
描述: 模块作为多连接设备时查询连接设备列表。
命令格式:
AT+QBLECONNLIST
响应:
- +QBLECONNLIST: <conn_idx>[,<peer_role>,<MTU_value>,<BLE_addr>]
...
OK (成功) - ERROR (失败)
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <peer_role>:整型。BLE连接的对端设备角色。0 = 中心设备,1 = 外围设备。
- <MTU_value>:整型。最大传输单元值。范围:23~250;单位:字节。
- <BLE_addr>:字符串类型。BLE连接的对端设备地址。48位地址以十六进制数串表示,如"58D391010203"。
最大响应时间: 500 ms
特性说明: 无
备注:
执行AT+QBLECONNLIST查询连接设备列表时,若对端设备索引无BLE连接,则返回时会省略<peer_role>,<MTU_value>和<BLE_addr>。
AT+QBLETRANMODE
描述: 作为外围设备或中心设备时,指定特征值UUID并使模块进入透传模式。
命令格式:
AT+QBLETRANMODE=<UUID>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <UUID>:字符串类型。特征值UUID。长度:4字节或32字节。
最大响应时间: 500 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
- 当模块为中心设备时,在BLE连接成功且完成对端设备服务的搜索(上报URC: +QBLEINFO: "DOWN")后,可执行此命令使模块进入透传模式。BLE连接断开后,模块自动退出透传模式。仅支持通过写命令方式透传数据。
- 当模块为外围设备时,在开启广播或者建立BLE连接之后,可执行此命令使模块进入透传模式。如果自动广播功能开启,则BLE连接断开后模块不会退出透传模式;如果自动广播功能关闭,则BLE连接断开后模块自动退出透传模式。仅支持通过通知(Notify)方式透传数据。
+++
描述: 使模块退出透传模式。
命令格式:
+++
响应:
- OK (成功)
- ERROR (失败)
最大响应时间: 300 ms
特性说明: 该命令立即生效;该命令无需换行符。
AT+QBLESERVERENV
描述: 模块作为外围设备时保存或清除当前配置的参数。若配置的参数保存成功,则模块重启后配置的参数仍然有效。
命令格式:
AT+QBLESERVERENV=<env>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <env>:整型。清除/保存当前配置的参数。
- 0:清除当前配置的参数
- 1:保存当前配置的参数,参数包括广播数据、BLE设备名称、扫描应答数据、广播间隔和服务及特征值UUID等
最大响应时间: 300 ms
特性说明: 无
备注:
- 若需要再次保存已清除的配置参数,则需要重启模块后,重新通过相应的命令配置对应的参数,再通过上述命令保存。
- 必须先执行AT+QBLEGATTSSRVDONE完成BLE服务创建,方可通过上述命令保存已配置的参数。
AT+QBLEDCSPROPSHOW
描述: 模块作为中心设备或多连接设备时,启用或禁用显示对端服务的特征值属性。
命令格式:
AT+QBLEDCSPROPSHOW=<enable>
响应:
- OK (成功)
- ERROR (失败)
参数:
- <enable>:整型。启用/禁用显示对端服务的特征值属性。0 = 禁用,1 = 启用。
最大响应时间: 300 ms
特性说明: 该命令立即生效;参数配置不保存。
备注:
- 若启用显示对端服务的特征值属性,则上报+QBLEINFO:
, ;若禁用显示对端服务的特征值属性,则上报+QBLEINFO:。 - 有关<char>和<prop>详情,详见相关章节。
相关URC描述
+QBLESTAT
描述: BLE连接状态变化提示。
URC格式:
+QBLESTAT: <event>
参数:
- <event>:字符串类型。BLE连接状态发生变化时上报的事件。
- "CONNECTED":连接事件
- "DISCONNECTED":断开连接事件
+QBLEMTU
描述: BLE MTU数值变化提示。
URC格式:
+QBLEMTU: <MTU_value>
参数:
- <MTU_value>:整型。最大传输单元值。范围:23~250;单位:字节。
+QBLEINFO
描述: 当模块作为中心设备或多连接设备成功连接对端设备时,此URC上报对端设备的特征值UUID和特征值属性。
URC格式:
+QBLEINFO: <char>[,<prop>]
参数:
- <char>:字符串类型。
- "DOWN":表示完成对端设备服务的搜索
- 其他:表示对端设备的特征值UUID。长度:4字节或32字节。
- <prop>:整型。特征值UUID属性配置。参数范围:0~FF。其中bit7~bit0表示控制不同属性:
- bit0:写入(Write)
- bit1:无响应方式写入(Write no response)
- bit2:通知(Notify)
- bit3:指示(Indicate)
- bit4:读取(Read)
- bit5~bit7:预留
+QBLEPEERINFO
描述: 当BLE在连接、断开连接及MTU更新后收到的对端消息提示。
URC格式:
+QBLEPEERINFO: <conn_idx>,<peer_role>,<BLE_addr>
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <peer_role>:整型。BLE连接的对端设备的角色。0 = 中心设备,1 = 外围设备。
- <BLE_addr>:字符串类型。对端设备地址。48位地址以十六进制数串表示,如"58D391010203"。
+QBLERECV
描述: 接收到数据提示。
URC格式:
+QBLERECV: <conn_idx>,<UUID>,<length>\r\n<data>\r\n
参数:
- <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~4;默认值:0。
- <UUID>:字符串类型。特征值UUID。长度:4字节或32字节。
- <length>:整型。接收到的数据长度。单位:字节。
- <data>:字符串类型(无双引号)。接收到的数据。
举例
本章节介绍了模块作为外围设备、中心设备以及多连接设备角色在实际应用中的主要AT命令示例。其中,蓝牙应用程序nRF Connect需用户自行下载安装,有关QCOM串口工具的获取可联系移远通信技术支持。
外围设备角色
建立连接过程中,接受连接请求的BLE设备定义为外围设备角色。BLE连接建立后,外围设备在链路层中是从机角色。
配置模块为外围设备
AT+QBLEINIT=2,1 //模块作为外围设备进行BLE功能初始化。
OK
AT+QBLEADVPARAM=150,150 //设置BLE广播参数。
OK
AT+QBLEGATTSSRV="FFF1" //创建BLE服务并设置服务UUID为"FFF1"。
OK
AT+QBLEGATTSCHAR="FFF2" //设置特征值UUID为"FFF2"。
OK
AT+QBLEGATTSCHAR="FFF3" //设置特征值UUID为"FFF3"。
OK
AT+QBLEGATTSSRVDONE //完成BLE服务的创建。
OK
AT+QBLENAME="QuecHCM511S" //设置BLE设备名称为"QuecHCM511S"。
OK
AT+QBLEADDR? //查询BLE设备地址。
+QBLEADDR: "90395E8A70D1"
OK
AT+QBLEADVSTART //开启BLE广播。
OK
连接到nRF Connect应用
步骤1: 点击"SCAN"扫描外围设备,在扫描结果中选择"QuecHCM511S"设备并点击"CONNECT"进行连接。

步骤2: 连接成功后显示"CONNECTED",在"CLIENT"区域会显示已添加的UUID。

发送数据至模块
步骤1: 选择一个可以编辑的特征值,并点击向上的箭头。

步骤2: 在对话框中选择数据格式"TEXT",输入需要发送的数据,然后点击"SEND"进行发送。

成功发送至模块后,将会在QCOM串口工具中收到发送的数据。如下所示:
+QBLERECV: 0,"FFF3",10
from phone
发送数据至nRF Connect
步骤1: 使用QCOM串口工具发送如下命令,以通知的方式发送数据至UUID 0xFFF2:
AT+QBLEGATTSNTFY=0,"FFF2","from HCM511S"
OK
步骤2: nRF Connect应用界面 UUID 0xFFF2显示接收的数据。

中心设备角色
建立连接过程中,发起连接请求的BLE设备定义为中心设备角色。BLE连接建立后,中心设备在链路层中是主机角色。
配置模块为中心设备
AT+QBLEINIT=1 //模块作为中心设备进行BLE功能初始化。
OK
AT+QBLESCAN=1 //打开BLE扫描。
OK
+QBLESCAN: "test_phone",1,"7F88CFB8E8C3"
AT+QBLESCAN=0 //关闭BLE扫描。
OK
AT+QBLECONN=1,"7F88CFB8E8C3" //连接外围设备。
OK
+QBLESTAT: "CONNECTED"
+QBLEPEERINFO: 0,1,"7F88CFB8E8C3"
+QBLEMTU: 250
+QBLEPEERINFO: 0,1,"7F88CFB8E8C3"
+QBLEINFO: "2B3A"
+QBLEINFO: "2B29"
+QBLEINFO: "046C"
+QBLEINFO: "3344"
+QBLEINFO: "DOWN"
配置nRF Connect应用
添加外围设备
步骤1: 打开nRF Connect,点击"Configure GATT server"。

步骤2: 添加一个名为"TEST"的设备,设置服务UUID为0x1122,设置特征值UUID为0x3344。

添加并开启广播
步骤1: 选择"ADVERTISER",点击右下角加号。

步骤2: 首先在"Display name"中输入"test_phone";然后点击"ADD RECORD",在"Advertising data"选项中勾选"Flags"、"Complete Local Name"和"16-bit Service UUID: 0xFF09";之后在"Options"选项中勾选"Connectable";最后点击"OK"。

步骤3: 广播配置完成,开始广播。此外,用户可以手动设置播放时长。


发送数据至模块
步骤1: 选择一个可以编辑的特征值,并点击向上的箭头。

步骤2: 在对话框中选择数据格式"TEXT",输入需要发送的数据,然后点击"SEND"进行发送。

发送成功后,在QCOM串口工具中收到发送的数据。
+QBLERECV: 0,"3344",15
from test phone
发送数据至nRF Connect应用
步骤1: 使用QCOM串口工具发送如下命令:
AT+QBLEGATTCWRCMD=0,"3344","write to test phone"
OK
步骤2: nRF Connect UUID 0x3344显示接收的数据。

多连接角色
模块可作为多连接设备,最多同时支持连接2个中心设备和3个外围设备。
AT+QBLEINIT=4,1 //模块作为多连接设备进行BLE功能初始化。
OK
AT+QBLEGATTSSRV="FFF1" //创建BLE服务并设置服务UUID为"FFF1"。
OK
AT+QBLEGATTSCHAR="FFF2" //设置特征值UUID为"FFF2"。
OK
AT+QBLEGATTSCHAR="FFF3" //设置特征值UUID为"FFF3"。
OK
AT+QBLEGATTSSRVDONE //完成BLE服务的创建。
OK
AT+QBLENAME="QuecHCM511S" //设置BLE设备名称为"QuecHCM511S"。
OK
AT+QBLEADDR? //查询BLE设备地址。
+QBLEADDR: "3333353294"
OK
AT+QBLEADVPARAM=150,150 //设置BLE广播参数。
OK
AT+QBLEADVSTART //开启BLE广播。
OK
+QBLESTAT: CONNECTED //模块作为外围设备被中心设备连接。
+QBLEPEERINFO: 0,0,"54F967E82874" //对端设备信息,包括连接索引、角色和MAC地址。
+QBLEMTU: 247 //MTU为247字节。
+QBLEPEERINFO: 0,0,"54F967E82874" //对端设备信息,包括连接索引、角色和MAC地址。
AT+QBLESCAN=1 //打开BLE扫描。
OK
+QBLESCAN: "Simple_Peripheral",1,"CC3732356583" //扫描到目标外围设备。
AT+QBLESCAN=0 //关闭BLE扫描。
OK
AT+QBLECONN=1,"CC3732356583" //连接外围设备。
OK
+QBLESTAT: CONNECTED //连接成功。
+QBLEPEERINFO: 1,1,"CC3732356583" //对端设备信息,包括连接索引、角色和MAC地址。
+QBLEMTU: 247 //MTU为247字节。
+QBLEPEERINFO: 1,1,"CC3732356583" //对端设备信息,包括连接索引、角色和MAC地址。
+QBLEINFO: "2AC9" //对端设备服务UUID信息。
+QBLEINFO: "0783B03E8535B5A07140A304D2495CB8" //对端设备服务UUID信息。
+QBLEINFO: "0783B03E8535B5A07140A304D2495CBA" //对端设备服务UUID信息。
+QBLEINFO: "FFF3" //对端设备服务UUID信息。
+QBLEINFO: "DOWN" //完成对端设备服务的搜索。
AT+QBLEGATTSNTFY=0,"FFF3","FROM BLE MASTER" //作为外围设备发送数据到目标中心设备。
OK
AT+QBLEGATTCWRCMD=2,"FFF2","from HCM511S" //作为中心设备发送数据到目标外围设备。
OK
AT+QBLEDISCONN=0 //断开指定设备的蓝牙连接。
OK
+QBLESTAT: DISCONNECTED //断开连接成功。
+QBLEPEERINFO: 0,0,"54F967E82874" //对端设备信息,包括连接索引、角色和MAC地址。
术语缩写
| 缩写 | 英文全称 | 中文全称 |
|---|---|---|
| BLE | Bluetooth Low Energy | 蓝牙低功耗 |
| DCE | Data Circuit-terminating Equipment | 数据电路终端设备 |
| DTE | Data Terminal Equipment | 数据终端设备 |
| GATT | Generic Attribute Profile | 通用属性协议 |
| ID | Mostly refers to Identifier in terms of software | 软件中多数指"标识符" |
| MAC | Medium Access Control | 媒体访问控制 |
| MT | Mobile Terminal | 移动终端 |
| MTU | Maximum Transmission Unit | 最大传输单元 |
| RI | Ring Indicator | 铃声指示 |
| URC | Unsolicited Result Code | 非请求结果码 |
| UUID | Universally Unique Identifier | 通用唯一识别码 |