HCM111Z AT命令手册

引言

本文档主要介绍移远通信HCM111Z模块的通用AT命令和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: <err>,表示已经准备好接收新命令。在返回最终的OK、ERROR或 +CME ERROR: <err>之前,会发送请求的响应消息。

以下是响应消息的格式:

<CR><LF>+CMD1: <parameters><CR><LF>

<CR><LF>OK<CR><LF>

或者

<CR><LF><parameters><CR><LF>

<CR><LF>OK<CR><LF>

AT示例声明

本文中的示例仅为方便用户了解AT命令的使用方法,不构成移远通信对终端流程设计的建议或意见,也不代表模块应被设置成相应示例中的状态。某些AT命令存在多个示例,这些示例之间不存在承接关系或连续性。AT命令示例中存在的URL、域名、IP地址、用户名/账号以及密码等(若有),仅为示意以供说明之用;实际使用时须根据实际情况进行修改。

AT命令描述

通用AT命令详解

AT+QRST

描述: 重启模块。

命令格式:

AT+QRST

响应:

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

最大响应时间: 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。单位:bps。

最大响应时间: 300 ms

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

AT+QTXPOWER

描述: 设置射频发射功率并将发射功率值写入Flash。

命令格式:

AT+QTXPOWER? (查询)

AT+QTXPOWER=<TX_power> (设置)

响应:

  • +QTXPOWER: <TX_power>
    OK (查询)
  • OK (设置成功)
  • ERROR (失败)

参数:

  • <TX_power>:整型。发射功率值。范围:-16~10;默认值:0;单位:dBm。

最大响应时间: 300 ms

特性说明: 该命令在模块重启后生效;参数配置自动保存。

AT+QCFGRI

描述: 启用或禁用RI引脚、设置URC在RI引脚电平翻转后的延迟输出时间和RI引脚低电平的持续时间。

命令格式:

AT+QCFGRI=<RI_enable>[,<URC_delay>[,<RI_hold>]]

响应:

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

参数:

  • <RI_enable>:整型。是否启用RI引脚。模块的RI引脚为ADC3引脚(对应的模块引脚号在不同的天线版本上不同,可参考Quectel_HCM111Z_硬件设计手册查找对应模块引脚)。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个中心设备和5个外围设备。
  • <auto_adv>:整型。模块作为外围设备或者多连接设备时,与其它中心设备断开BLE连接后是否自动开启广播。1 = 开启广播,0 = 不开启广播。

最大响应时间: 300 ms

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

AT+QBLEADDR

描述: 查询BLE设备地址。

命令格式:

AT+QBLEADDR?

响应:

  • +QBLEADDR: <BLE_addr>
    OK (成功)
  • ERROR (失败)

参数:

  • <BLE_addr>:字符串类型(无双引号)。BLE设备地址。48位地址以十六进制字符串表示,如"58:D3:91:01:02:03"。

最大响应时间: 300 ms

特性说明:

AT+QBLENAME

描述: 设置BLE设备名称。

命令格式:

AT+QBLENAME? (查询)

AT+QBLENAME=<BLE_name> (设置)

响应:

  • +QBLENAME: <BLE_name>
    OK (查询)
  • OK (设置成功)
  • ERROR (失败)

参数:

  • <BLE_name>:字符串类型(无双引号)。BLE设备名称。最大长度:25字节。默认名称:"HCM111Z"。

最大响应时间: 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广播数据报文格式

命令格式:
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服务,且不可重复创建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~255。其中bit7~bit0表示控制不同属性:
    • bit0:写入(Write)
    • bit1:无响应方式写入(Write no response)
    • bit2:通知(Notify)
    • bit3:指示(Indicate)
    • bit4:读取(Read)
    • bit5~bit7:预留

最大响应时间: 300 ms

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

备注:

  1. 模块最多支持使用该命令为每个服务设置5个BLE特征值UUID,且不可重复创建BLE特征值UUID。当省略<att_cfg>时,每个特征值的属性默认为读取(Read)、通知(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+QBLEGATTSNTFY

描述: 模块作为外围设备或多连接设备时以通知的方式发送GATT数据。

命令格式:

AT+QBLEGATTSNTFY=<conn_idx>,<UUID>[,<hex_length>],<data>

响应:

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

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围:0~6。当模块为外围设备时,参数值固定为0。
  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送。例如,若<data>为123456,模块会将该数据转换为0x123456进行发送。省略该参数时模块会直接发送<data>;例如,若<data>为123456,模块则会发送数据123456。
  • <data>:字符串类型(无双引号)。GATT数据。

最大响应时间: 300 ms

特性说明:

AT+QBLEGATTSCFGREAD

描述: 当模块作为外围设备时,配置具有读取属性的BLE特征值。

命令格式:

AT+QBLEGATTSCFGREAD=<UUID>[,<hex_length>],<data>

响应:

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

参数:

  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送。例如,若<data>为123456,模块会将该数据转换为0x123456进行发送。省略该参数时模块会直接发送<data>;例如,若<data>为123456,模块则会发送数据123456。
  • <data>:字符串类型(无双引号)。GATT数据。最大长度:64字节。

最大响应时间: 300 ms

特性说明:

备注:
该命令仅在BLE服务添加完成后才能使用。

AT+QBLESCAN

描述: 模块作为中心设备或者多连接设备时打开或关闭BLE扫描。

命令格式:

AT+QBLESCAN? (查询)

AT+QBLESCAN=<scan>[,<timeout>] (设置)

响应:

  • +QBLESCAN: <scan_state>
    OK (查询)
  • OK (设置成功)
  • +QBLESCAN: <name>,<address_type>,<BLE_addr> (当<scan>=1)
  • +QBLESCAN: <name>,<address_type>,<BLE_addr>,<RSSI>,<adv_data> (当<scan>=2或3)
  • ERROR (失败)

参数:

  • <scan_state>:整型。当前扫描状态。0 = 扫描未开启,1 = 扫描已开启。
  • <scan>:整型。打开或关闭BLE扫描。
    • 0:关闭
    • 1:打开,不输出<adv_data>
    • 2:打开,输出<adv_data>。该模式必须指定<timerout>值。
    • 3:打开,输出<adv_data>。该模式只扫描可连接广播。
  • <timeout>:整型。扫描持续时间。范围:500~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秒);默认值:100(62.5毫秒);单位:timeslot(1 timeslot = 0.625毫秒)。
  • <scan_window>:整型。BLE扫描持续的时间。<scan_window>要小于或等于<scan_interval>。范围:17~4096(对应的时间范围:10.625毫秒~2.56秒);默认值:30(18.75毫秒);单位:timeslot(1 timeslot = 0.625毫秒)。

最大响应时间: 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>

响应:

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

参数:

  • <addr_type>:整型。外围设备地址类型。0 = 公共地址,1 = 随机地址。
  • <peer_addr>:字符串类型(无双引号)。外围设备地址。

最大响应时间: 300 ms

特性说明: 该命令立即生效;参数配置不保存。连接超时时间为15秒。

备注:
若模块开机后直接通过该命令连接外围设备,则模块将自动被配置为中心设备。

AT+QBLECONNPARAM

描述: 模块作为外围设备或中心设备时设置连接参数。

命令格式:

AT+QBLECONNPARAM? (查询)

AT+QBLECONNPARAM=<con_interval>,<timeout>,<latency> (设置)

响应:

  • +QBLECONNPARAM: <con_interval>,<timeout>,<latency>
    OK (查询)
  • OK (设置成功)
  • ERROR (失败)

参数:

  • <con_interval>:整型。连接时间间隔。范围:6~3200(对应的时间范围:7.5毫秒~4秒);默认值:40(50毫秒);单位:1.25毫秒。
  • <timeout>:整型。BLE链路的监督超时。范围:10~3200(对应的时间范围:100毫秒~32秒);默认值:500(5秒);单位:10毫秒。
  • <latency>:整型。外围设备跳过的连接事件的个数。范围:0~499(0x0000~0x01F3);默认值:0。

最大响应时间: 300 ms

特性说明:

备注:
<con_interval><timeout><latency>之间的大小关系需满足:<con_interval> × <latency>小于<timeout>

AT+QBLEGATTCRD

描述: 模块作为中心设备或者多连接设备时读取GATT数据。

命令格式:

AT+QBLEGATTCRD=<conn_idx>,<UUID>

响应:

  • OK (成功)
  • <data>
  • ERROR (失败)

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的目标设备索引。范围:0、~6。当模块为中心设备时,参数值固定为0。
  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <data>:字符串类型(无双引号)。读取到的GATT数据。

最大响应时间: 300 ms

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

AT+QBLEGATTCWR

描述: 模块作为中心设备或者多连接设备时以写命令的方式发送GATT数据。

命令格式:

AT+QBLEGATTCWR=<conn_idx>,<UUID>[,<hex_length>],<data>

响应:

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

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的目标设备索引。范围:0~6。当模块为中心设备时,参数值固定为0。
  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送,例如,若<data>,模块会将该数据转换成0x123456进行发送。省略该参数时模块会直接发送<data>;例如,若<data>为123456,模块则会发送数据123456。
  • <data>:字符串类型(无双引号)。GATT数据。

最大响应时间: 300 ms

特性说明:

AT+QBLEGATTCWRREQ

描述: 模块作为中心设备或者多连接设备时以写请求的方式发送GATT数据。

命令格式:

AT+QBLEGATTCWRREQ=<conn_idx>,<UUID>[,<hex_length>],<data>

响应:

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

参数:

  • <conn_idx>:整型。范围0~6。建立BLE连接时,模块自动分配的目标设备索引。当模块为中心设备时,参数值固定为0。
  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <hex_length>:整型。十六进制数据长度。使用该参数时,模块会将<data>转换为十六进制再进行发送,例如,若<data>为123456,模块会将该数据转换成0x123456进行发送。省略该参数时模块会直接发送<data>;例如,若<data>为123456,模块则会发送数据123456。
  • <data>:字符串类型(无双引号)。GATT数据。

最大响应时间: 300 ms

特性说明:

AT+QBLEGATTCNTFCFG

描述: 模块作为中心设备或者多连接设备时启用/禁用通知。

命令格式:

AT+QBLEGATTCNTFCFG=<conn_idx>,<UUID>,<enable>

响应:

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

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的目标设备索引。范围0~6。当模块为中心设备时,参数值固定为0。
  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <enable>:整型。启用/禁用通知。0 = 禁用,1 = 启用。

最大响应时间: 300 ms

特性说明:

AT+QBLEGATTCINDCFG

描述: 模块作为中心设备或者多连接设备时启用/禁用指示。

命令格式:

AT+QBLEGATTCINDCFG=<conn_idx>,<UUID>,<enable>

响应:

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

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的目标设备索引。范围0~6。当模块为中心设备时,参数值固定为0。
  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。
  • <enable>:整型。启用/禁用指示。0 = 禁用,1 = 启用。

最大响应时间: 300 ms

特性说明:

AT+QBLEDISCONN

描述: 断开BLE连接。

命令格式:

AT+QBLEDISCONN

响应:

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

最大响应时间: 300 ms

特性说明:

AT+QBLEIDXDISC

描述: 模块作为多连接设备时断开与指定目标设备的BLE连接。

命令格式:

AT+QBLEIDXDISC=<conn_idx>

响应:

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

参数:

  • <conn_idx>:整型。目标设备索引。范围:0~6。建立BLE连接时,模块自动分配的目标设备索引。

最大响应时间: 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~6。
  • <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~6。
  • <peer_role>:整型。BLE连接的对端设备角色。0 = 中心设备,1 = 外围设备。
  • <MTU_value>:整型。最大传输单元值。范围:23~247;单位:字节。
  • <BLE_addr>:字符串类型(无双引号)。BLE连接的对端设备地址。48位地址以十六进制数串表示,如"58:D3:91:01:02:03"。

最大响应时间: 500 ms

特性说明:

备注:
执行AT+QBLECONNLIST查询连接设备列表时,若<conn_idx>对应的BLE连接断开或对端设备无BLE连接,则返回时<peer_role><MTU_value><BLE_addr>为空,示例:+QBLECONNLIST:<conn_idx>",,,"。

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)方式透传数据。

AT+QBLETRANMODES

描述: 保存透传模式下的参数配置。模块重启后可自动按照之前的参数配置运行且自动使用已保存的特征值UUID进入透传模式。

命令格式:

AT+QBLETRANMODES=<UUID>

响应:

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

参数:

  • <UUID>:字符串类型(无双引号)。特征值UUID。长度:4字节或32字节。

最大响应时间: 300 ms

特性说明:

备注:

  1. 使用该命令保存当前配置的参数,参数包括广播数据、BLE设备名称、扫描响应数据、广播间隔、BLE服务UUID、通过AT+QBLEGATTSCHAR设置的BLE特征值UUID和通过AT+QBLETRANMODES指定的特征值UUID等。
  2. 执行AT+QBLETRANMODES后,若需再修改已保存的参数,需先使用+++退出透传模式,再使用AT+QBLESERVERENV=0清除已保存的参数,模块复位后重新配置参数。
  3. 必须先执行AT+QBLEGATTSSRVDONE完成BLE服务创建,才可通过AT+QBLETRANMODES保存已配置的参数。

+++

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

命令格式:

+++

响应:

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

最大响应时间: 300 ms

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

AT+QBLEPAIRENABLE

描述: 模块作为外围设备时启用或禁用与其他设备进行BLE配对的功能。

命令格式:

AT+QBLEPAIRENABLE? (查询)

AT+QBLEPAIRENABLE=<enable> (设置)

响应:

  • +QBLEPAIRENABLE: <enable>
    OK (查询)
  • OK (设置成功)
  • ERROR (失败)

参数:

  • <enable>:整型。启用或禁用与其他设备进行BLE配对的功能。0 = 禁用,1 = 启用(无需输入PIN码即可配对),2 = 启用(需要输入PIN码才能配对)。

最大响应时间: 300 ms

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

备注:

  1. 此命令必须在BLE服务创建前使用,并且模块开机后仅可使用一次。
  2. 当启用配对功能时,模块会将HID服务添加进服务列表。

AT+QBLERFCHALCFG

描述: 启用或禁用指定范围内的BLE信道。BLE共40个信道,每个信道带宽2 MHz,其中37、38及39信道为广播信道,其余为数据信道。

BLE信道

命令格式:

AT+QBLERFCHALCFG=<op>[,<start_chl>,<end_chl>]

响应:

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

参数:

  • <op>:整型。启用或禁用指定范围内的BLE信道。1 = 启用全部信道,0 = 禁用。
  • <start_chl>:整型。BLE信道。范围0~39。仅在<op>为0时配置该参数。与<end_chl>组合使用,表示禁用<start_chl>~<end_chl>之间的所有信道。
  • <end_chl>:整型。BLE信道。范围0~39。仅在<op>为0时配置该参数。与<start_chl>组合使用,表示禁用<start_chl>~<end_chl>之间的所有信道。

最大响应时间: 300 ms

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

备注:

  1. 此命令仅在BLE服务添加完成前才能使用。
  2. 禁止关闭全部广播信道。
  3. 最多关闭信道数量上限为20。
  4. 关闭信道会导致跳频概率上升以及跳频区间变窄,BLE性能将会降低,请谨慎使用此命令。

AT+QBLESERVERENV

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

命令格式:

AT+QBLESERVERENV=<env>

响应:

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

参数:

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

最大响应时间: 300 ms

特性说明:

备注:

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

AT+QBLEPASSCODECFG

描述: 模块作为外围设备时查询或设置配对PIN码。

命令格式:

AT+QBLEPASSCODECFG? (查询)

AT+QBLEPASSCODECFG=<passcode> (设置)

响应:

  • +QBLEPASSCODECFG: <passcode>
    OK (查询)
  • OK (设置成功)
  • ERROR (失败)

参数:

  • <passcode>:整型。BLE配对PIN码。范围:000000~999999。模块首次上电复位后会随机生成一个6位格式的PIN码并保存。

最大响应时间: 300 ms

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

AT+QBLECLRPAIRINFO

描述: 模块作为外围设备时清除蓝牙配对信息。

命令格式:

AT+QBLECLRPAIRINFO

响应:

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

最大响应时间: 300 ms

特性说明:

相关URC描述

+QBLESTAT

描述: BLE连接状态变化提示。

URC格式:

+QBLESTAT: <event>

参数:

  • <event>:字符串类型(无双引号)。BLE连接状态发生变化时上报的事件。
    • NOINIT:未初始化事件
    • INIT:初始化事件
    • ADVERTISING:广播事件
    • CONNECTED:连接事件
    • PAIRED:配对事件
    • DISCONNECTED:断开连接事件
    • TIMEOUT:连接超时事件,向指定设备发起连接请求之后在5秒内未连接成功将产生该事件

+QBLEMTU

描述: BLE MTU数值变化提示。

URC格式:

+QBLEMTU: <MTU_value>

参数:

  • <MTU_value>:整型。最大传输单元值。范围:23~247;单位:字节。

+QBLEINFO

描述: 当模块作为中心设备或多连接设备成功连接对端设备时,此URC上报对端设备的特征值UUID。

URC格式:

+QBLEINFO: <handle> <UUID>

+QBLEINFO: DOWN

参数:

  • <handle>:整型。已连接的对端设备的句柄。范围:0~255。
  • <UUID>:整型。已连接的对端设备的特征值UUID。长度:4字节或32字节。
  • "DOWN":表示完成对端设备服务的搜索。

+QBLEPEERINFO

描述: 当BLE在连接、断开连接及MTU更新后收到的对端消息提示。

URC格式:

+QBLEPEERINFO: <conn_idx>,<peer_role>,<BLE_addr>

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围0~6。模块输出+QBLESTAT:CONNECTED后输出的+QBLEPEERINFO中的<conn_idx>为模块为该条连接链路上的已连接设备分配的索引。
  • <peer_role>:整型。BLE连接的对端设备的角色。0 = 中心设备,1 = 外围设备。
  • <BLE_addr>:字符串类型(无双引号)。对端设备地址。48位地址以十六进制数串表示,如"58:D3:91:01:02:03"。

+QBLERECV

描述: 接收到数据提示。

URC格式:

+QBLERECV: <conn_idx>,<UUID>,<Length>\r\n<data>\r\n

参数:

  • <conn_idx>:整型。建立BLE连接时,模块自动分配的对端设备索引。范围0~6。
  • <UUID>:整型。已连接BLE设备的特征值UUID。范围:0000~ffff。
  • <Length>:整型。数据长度。
  • <data>:接收到的数据。

举例

本章节介绍了模块作为外围设备、中心设备以及多连接设备角色在实际应用中的主要AT命令示例。其中,蓝牙应用程序nRF Connect需用户自行下载安装,有关QCOM串口工具的获取可联系移远通信技术支持。

外围设备角色

建立连接过程中,接受连接请求的BLE设备定义为外围设备角色。BLE连接建立后,外围设备在链路层中是从机角色。

配置模块为外围设备

AT+QBLEINIT=2 //模块作为外围设备进行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=QuecHCM111Z //设置BLE设备名称为"QuecHCM111Z"。
OK
AT+QBLEADDR? //查询BLE设备地址。
+QBLEADDR:D11:33:33:35:32:94
OK
AT+QBLEADVSTART //开启BLE广播。
OK

连接到nRF Connect应用

步骤1: 点击"SCAN"扫描外围设备,在扫描结果中选择"QuecHCM111Z"设备并点击"CONNECT"进行连接。


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

发送数据至模块

步骤1: 选择一个可以编辑的特征值,并点击向上的箭头。

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

成功发送至模块后,将会在QCOM串口工具中收到发送的数据。如下所示:

from phone

发送数据至nRF Connect

步骤1: 使用QCOM串口工具发送如下命令,以通知的方式发送数据至UUID 0xFFF3:

AT+QBLEGATTSNTFY=0,fff3,from HCM111Z
OK

步骤2: nRF Connect应用界面 UUID 0xFFF3显示接收的数据。

中心设备角色

建立连接过程中,发起连接请求的BLE设备定义为中心设备角色。BLE连接建立后,中心设备在链路层中是主机角色。

配置模块为中心设备

AT+QBLEINIT=1 //模块作为中心设备进行BLE功能初始化。
OK
AT+QBLESCAN=1 //打开BLE扫描。
OK
+QBLESCAN:test_phone,1,50081759010f
AT+QBLESCAN=0 //关闭BLE扫描。
OK
AT+QBLECONN=1,50081759010f //连接外围设备。
OK
+QBLESTAT:CONNECTED
+QBLEMTU:247
+QBLEINFO: 8 2ac9
+QBLEINFO: 15 fff1
+QBLEINFO: 18 fff2
+QBLEINFO:DOWN
+QBLECONNPARAM:24,500,0

配置nRF Connect应用

添加外围设备

步骤1: 打开nRF Connect,点击"Configure GATT server"。

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

添加并开启广播

步骤1: 选择"ADVERTISER",点击右下角加号。

步骤2: 在"Display name"中输入"test_phone",在"Options"选项中勾选"Connectable",然后点击"OK"。

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


发送数据至模块

步骤1: 选择一个可以编辑的特征值,并点击向上的箭头。

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

多连接角色

模块可作为多连接设备,最多同时支持连接2个中心设备和5个外围设备。

AT+QBLEINIT=4 //模块作为多连接设备进行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=QuecHCM111Z //设置BLE设备名称为"QuecHCM111Z"。
OK
AT+QBLEADDR? //查询BLE设备地址。
+QBLEADDR:D1:33:33:35:32:94
OK
AT+QBLEADVPARAM=150,150 //设置BLE广播参数。
OK
AT+QBLEADVSTART //开启BLE广播。
OK
+QBLESTAT:CONNECTED //模块作为外围设备被中心设备连接。
+QBLEPEERINFO:0,0,54:f9:67:e8:28:74 //对端设备信息,包括连接索引、角色和MAC地址。
+QBLEMTU:247 //MTU为247字节。
+QBLEPEERINFO:0,0,54:f9:67:e8:28:74 //对端设备信息,包括连接索引、角色和MAC地址。

AT+QBLEADVSTART //开启BLE广播。
OK
+QBLESTAT:CONNECTED
+QBLEPEERINFO:1,0,5b:4d:48:bd:f5:14
+QBLEMTU:247 //MTU为247字节。
+QBLEPEERINFO:1,0,5b:4d:48:bd:f5:14

AT+QBLESCAN=1 //打开BLE扫描。
OK
+QBLESCAN:Simple_Peripheral,1,cc3732356583 //扫描到目标外围设备。
AT+QBLESCAN=0 //关闭BLE扫描。
OK
AT+QBLECONN=1,cc3732356583 //连接外围设备。
OK
+QBLESTAT:CONNECTED //连接成功。
+QBLEPEERINFO:2,1,cc:37:32:35:65:83 //对端设备信息,包括连接索引、角色和MAC地址。
+QBLEMTU:247
+QBLEPEERINFO:2,1,cc:37:32:35:65:83
+QBLEINFO: 8 2ac9 //对端设备服务UUID信息。
+QBLEINFO: 15 0783b03e8535b5a07140a304d2495cb8
+QBLEINFO: 17 2901
+QBLEINFO: 19 0783b03e8535b5a07140a304d2495cba
+QBLEINFO: 20 2901
+QBLEINFO: 22 fff3
+QBLEINFO: 23 2901
+QBLEINFO:DOWN //发现对端设备服务完成。

AT+QBLEGATTSNTFY=0,fff3,FROM BLE MASTER //作为外围设备发送数据到目标中心设备。
OK
AT+QBLEGATTCWR=2,fff2,from HCM111Z //作为中心设备发送数据到目标外围设备。
OK
AT+QBLEIDXDISC=0 //断开指定设备的蓝牙连接。
OK
+QBLESTAT:DISCONNECTED
+QBLEPEERINFO:0,0,54:f9:67:e8:28:74

术语缩写

缩写 英文全称 中文全称
BLE Bluetooth Low Energy 蓝牙低功耗
DTE Data Terminal Equipment 数据终端设备
GATT Generic Attribute Profile 通用属性协议
MT Low Energy 低功耗
MAC Medium Access Control 媒体访问控制
MTU Maximum Transmission Unit 最大传输单元
RI Ring Indicator 铃声指示
URC Unsolicited Result Code 非请求结果码
UUID Universally Unique Identifier 通用唯一识别码