HCM511S AT命令手册

引言

本文档主要介绍移远通信HCM511S模块通用和BLE相关的AT命令。

定义

  • <CR> 回车符。
  • <LF> 换行符。
  • <...> 参数名称。实际命令行中不包含尖括号。
  • [...] 可选参数或TA信息响应的可选部分。实际命令行中不包含方括号。若无特别说明,设置命令中的可选参数被省略时,将默认使用其之前已设置的值或其默认值。
  • 下划线 参数的默认设置。

AT命令语句

前缀ATat必须加在每个命令行的开头。输入<CR>将终止命令行。通常,命令后面跟随形式为<CR><LF><Respone><CR><LF>的响应。在本文档中表现命令和响应的表格中,省略了<CR><LF>,仅显示命令和响应。

模块实现的AT命令可以在语法上分为两类:基础类扩展类,如下所列。

  • 基础类

基础类AT命令的格式为ATAT&,其中<x>是命令,<n>是该命令的参数。以ATE<n>为例,DCE会根据<n>的取值确定是否将接收到的字符回显给DTE。若<n>为可选参数,则其被省略时将使用其默认值。

  • 扩展类

扩展类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: ,表示已经准备好接收新命令。在返回最终的OK、ERROR或 +CME ERROR: 之前,会发送请求的响应消息。

以下是响应消息的格式:

+CMD1:

OK

或者

OK

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广播数据。

BLE Advertising Format

命令格式:

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.2https://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

特性说明: 该命令立即生效;参数配置不保存。

备注:

  1. 该命令最多支持创建2个BLE服务。
  2. 在执行此命令创建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

特性说明: 该命令立即生效;参数配置不保存。

备注:

  1. 模块最多支持通过该命令设置2个BLE特征值UUID。当省略<att_cfg>时,每个特征值的属性默认为通知(Notify)和无响应方式写入(Write no response)。
  2. 模块作为外围设备或者多连接设备时,必须先通过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

特性说明:

备注:

  1. 未初始化BLE功能和未创建BLE服务时,可直接通过该命令开启广播,此时模块会创建默认BLE服务。默认服务为:
    • 服务UUID:0x6E400001B5A3F393E0A9E50E24DCCA9E。
    • 接收数据的特征值UUID:0x6E400002B5A3F393E0A9E50E24DCCA9E,属性为Write和Write no response;
    • 发送数据的特征值UUID:0x6E400003B5A3F393E0A9E50E24DCCA9E,属性为Notify。
  2. 模块开机后,若直接通过该命令开启广播,则模块将自动被配置为外围设备。

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

特性说明: 该命令立即生效;参数配置不保存。

备注:

  1. 当模块为中心设备时,在BLE连接成功且完成对端设备服务的搜索(上报URC: +QBLEINFO: "DOWN")后,可执行此命令使模块进入透传模式。BLE连接断开后,模块自动退出透传模式。仅支持通过写命令方式透传数据。
  2. 当模块为外围设备时,在开启广播或者建立BLE连接之后,可执行此命令使模块进入透传模式。如果自动广播功能开启,则BLE连接断开后模块不会退出透传模式;如果自动广播功能关闭,则BLE连接断开后模块自动退出透传模式。仅支持通过通知(Notify)方式透传数据。

+++

描述: 使模块退出透传模式。

命令格式:

+++

响应:

  • OK (成功)
  • ERROR (失败)

最大响应时间: 300 ms

特性说明: 该命令立即生效;该命令无需换行符。

AT+QBLESERVERENV

描述: 模块作为外围设备时保存或清除当前配置的参数。若配置的参数保存成功,则模块重启后配置的参数仍然有效。

命令格式:

AT+QBLESERVERENV=<env>

响应:

  • OK (成功)
  • ERROR (失败)

参数:

  • <env>:整型。清除/保存当前配置的参数。
    • 0:清除当前配置的参数
    • 1:保存当前配置的参数,参数包括广播数据、BLE设备名称、扫描应答数据、广播间隔和服务及特征值UUID等

最大响应时间: 300 ms

特性说明:

备注:

  1. 若需要再次保存已清除的配置参数,则需要重启模块后,重新通过相应的命令配置对应的参数,再通过上述命令保存。
  2. 必须先执行AT+QBLEGATTSSRVDONE完成BLE服务创建,方可通过上述命令保存已配置的参数。

AT+QBLEDCSPROPSHOW

描述: 模块作为中心设备或多连接设备时,启用或禁用显示对端服务的特征值属性。

命令格式:

AT+QBLEDCSPROPSHOW=<enable>

响应:

  • OK (成功)
  • ERROR (失败)

参数:

  • <enable>:整型。启用/禁用显示对端服务的特征值属性。0 = 禁用,1 = 启用。

最大响应时间: 300 ms

特性说明: 该命令立即生效;参数配置不保存。

备注:

  1. 若启用显示对端服务的特征值属性,则上报+QBLEINFO: ,;若禁用显示对端服务的特征值属性,则上报+QBLEINFO:
  2. 有关<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 通用唯一识别码