AT 命令使用指南
概述
本文介绍WS53V100的AT指令式及场景,为用户提供相应的指令格式和参数示例解释。
指令说明
命令简介
AT命令用于TE(例如:PC等用户终端)和MT(例如:移动台等移动终端)之间控制信息的交互,如图1所示。
图 1 AT命令示意图

指令类型
AT指令类型如表1所示。
表 1 AT指令类型说明
类型
|
格式
|
用途
|
测试指令
|
AT+<cmd>=?
|
该命令用于查询设置指令的参数以及取值范围。
|
查询指令
|
AT+<cmd>?
|
该命令用于返回参数的当前值。
|
设置指令
|
AT+<cmd>=<parameter>,…
|
设置参数值或执行。
|
执行指令
|
AT+<cmd>
|
用于执行本指令的功能。
|
注意事项
Wi-Fi模块AT指令
通用AT指令
通用AT指令一览表
指令
|
描述
|
AT+HELP
|
查看当前可用AT命令。
|
AT+MAC
|
MAC地址管理。
|
AT+IPERF
|
性能测试。
|
AT+SYSINFO
|
查看系统信息。
|
AT+PING
|
测试IPV4网络连接。
|
AT+PING6
|
测试IPV6网络连接。
|
AT+DNS
|
设置单板dns服务器地址。
|
AT+NETSTAT
|
查看网络状态。
|
AT+DHCP
|
dhcp客户端命令。
|
AT+DHCPS
|
dhcps服务器端命令。
|
AT+GETRATE
|
获取最近一次发给指定关联设备的报文空口速率。
|
AT+IFCFG
|
接口配置。
|
AT+PS
|
Wi-Fi低功耗设置。
|
AT+RST
|
复位单板。
|
AT+SYSCHANNEL
|
启动Syschannel并等卡。
|
AT+QUERYFILTER
|
查询Syschannel过滤规则。
|
AT+ADDFILTER
|
添加指定Syschannel过滤规则。
|
AT+DELFILTER
|
删除指定Syschannel过滤规则。
|
AT+SYSCHANIF
|
指定Syschannel使用的网络设备接口。
|
AT+SENDPKT
|
发送任意帧。
|
AT+HEAPSTAT
|
打印堆使用情况。
|
AT+TASKSTACK
|
打印每个任务栈使用情况。
|
AT+TASKMALLOC
|
打印每个任务内存申请情况。
|
通用AT指令描述
AT+HELP 查看当前可用AT命令
格式
|
AT+HELP
|
响应
|
+HELP:
显示当前支持的AT命令
OK
|
参数说明
|
-
|
示例
|
AT+HELP
|
注意
|
包含Wi-Fi、BLE、GLE命令。默认不使能。
|
AT+MAC MAC地址管理
格式
|
设置命令:
AT+MAC=<MAC>
|
查询命令:
AT+MAC?
|
响应
|
|
+MAC: <MAC>
|
参数说明
|
<MAC>:MAC地址
|
-
|
示例
|
AT+MAC=90:2B:D2:E4:CE:28
|
AT+MAC?
|
注意
|
设置命令在AT+STARTSTA/AT+STARTAP前下发有效。
|
AT+IPERF 性能测试
格式
|
AT+IPERF=<-x>
|
响应
|
+IPERF:
<Interval> <Bandwidth>
|
参数说明
|
- <-x>:参数类型
-s:以server模式启动
-c,IP:以client模式启动,IP为server端地址
-u:使用udp协议
-i,sec:以秒为单位显示报告间隔
-t,sec:测试时间,默认30s
-b,Bandwidth:udp发送带宽,单位为bps,如设置为10K、20M,默认值为1Mbps
-l,length:单次发送数据长度,单位为字节
-B,IP:绑定一个主机IP地址,当主机有多个地址或接口时使用该参数
-S,value:指定tos,value不同取值范围分别对应tid0~tid7,value取值与tid对应关系如下:
0~31:tid0
32~63:tid1
64~95:tid2
96~127:tid3
128~159:tid4
160~191:tid5
192~223:tid6
224~255:tid7
-p,portNum:指定服务器端使用的端口或客户端所连接的端口
-k:停止iperf服务
- <Interval>:统计时间间隔,单位为s。
- <Bandwidth>:测试吞吐量,显示统计间隔内的平均吞吐量。
|
示例
|
- AT+IPERF=-s,-i,1:以server模式启动iperf,使用协议默认为tcp,显示报告以1s为间隔。
- AT+IPERF=-s,-u,-i,1:以server模式启动iperf,使用协议udp,显示报告以1s为间隔。
- AT+IPERF=-c,192.168.3.1,-t,5,-i,1:以client模式启动iperf,使用协议默认为tcp,测试5s,显示报告以1s为间隔。
- AT+IPERF=-c,192.168.3.1,-u,-b,10M,-t,5,-i,1:以client模式启动iperf,使用协议udp,发送带宽为10Mbps,测试5s,显示报告以1s为间隔。
- AT+IPERF=-c,192.168.3.1,-u,-b,10M,-t,5,-i,1,-l,1000,-B,192.168.3.2,-p,5001,-S,28:以client模式启动iperf,使用协议udp,发送带宽为10Mbps,测试5s,显示报告以1s为间隔,单次发送数据包最大为1000Byte,绑定本次iperf命令的主机IP地址为192.168.3.2,设定使用端口5001,指定tos为28。
- AT+IPERF=-k:手动停止iperf性能测试。
|
注意
|
- -c或者-s须放在第一个参数位置。
- -s使用时,须使用-k结束才能进行下一次启动。
- 仅支持一次执行,不支持多实例同时进行。
|
AT+SYSINFO 查看系统信息
格式
|
AT+SYSINFO
|
响应
|
+SYSINFO:
显示内存使用、系统资源、任务调度、系统运行时间等信息。
|
参数说明
|
-
|
示例
|
AT+SYSINFO
|
注意
|
-
|
AT+PING 测试IPV4网络连接
格式
|
AT+PING=[<-x>,]<IP>
|
响应
|
[<index>]Reply from <IP>: time=<time> TTL=<TTL>
<tx_count> packets transmitted, <rx_count> received, <loss_count> loss
|
参数说明
|
- <-x>:参数类型。
-n,count:发送count指定的数据包数,默认值为4
-t:Ping指定的主机,直到AT+PING=-k停止
-w,interval:相邻两次ping包的时间间隔,单位为毫秒
-W,timeout:ping超时时间设置,单位为毫秒
-l,size:单次发送数据长度,单位为字节,默认48字节
-k:停止ping包,-k后不带参数
- <IP>:目的主机IP地址。
- <index>:ping包序号。
- <time>:ping包耗时。
- <TTL>:生存时间TTL。
- <tx_count>:发包数。
- <rx_count>:收包数。
- <loss_count>:丢包数。
|
示例
|
- AT+PING=192.168.3.1:执行ping 192.168.3.1,默认ping 4个包。
- AT+PING=-n,6,192.168.3.1:执行ping 192.168.3.1,ping 6个包。
- AT+PING=-w,1,192.168.3.1:执行ping 192.168.3.1,相邻两次ping包的时间间隔为1ms。
- AT+PING=-l,100,192.168.3.1:执行ping 192.168.3.1,设置单次发送包长最大为100Byte。
- AT+PING=-t,192.168.3.1:执行ping 192.168.3.1,直到输入ping的-k命令停止。
- AT+PING=-k:停止ping包。
|
注意
|
-
|
AT+PING6 测试IPV6网络连接
格式
|
AT+PING6=[<-x>,]< IP>
|
响应
|
- [<index>]Reply from <IP>: time=<time>
- <tx_count> packets transmitted, <rx_count> received, <loss_count> loss
|
参数说明
|
|
示例
|
- AT+PING6=2001:a:b:c:d:e:f:b
- AT+PING6=-c,100,2001:a:b:c:d:e:f:b
- AT+PING6=-k
|
注意
|
-
|
AT+DNS 设置单板dns服务器地址
格式
|
设置命令:
AT+DNS=<dns_num>,<IP>
|
查询命令:
AT+DNS?
|
响应
|
|
+DNS:
<Dns1_IP>
<Dns2_IP>
|
参数说明
|
- <dns_num>:选择设置第一个还是第二个DNS服务器。
1:第一个DNS服务器。
2:第二个DNS服务器。
- <IP>:服务器IP地址。
- <Dns1_IP>:DNS1的IP地址。
- <Dns2_IP>:DNS2的IP地址。
|
示例
|
- AT+DNS?
- AT+DNS=1,192.168.3.1
- AT+DNS=2,192.168.3.2
|
注意
|
-
|
AT+NETSTAT 查看网络状态
格式
|
AT+NETSTAT
|
响应
|
Proto Recv-Q Send-Q Local Address Foreign Address State
|
参数说明
|
- Proto:协议类型。
tcp
udp
- Resv-Q:未被用户读取的数据量。
- Send-Q:对TCP连接,已发送但未确认的数据量;对UDP连接,由于IP地址解析未完成而缓存的数据量。
- Local Address:本地地址和端口。
- Foreign Address:远程地址和端口。
- State:TCP连接状态;UDP不包含此项。
TCP连接态描述如下:
- CLOSED,即没有任何连接状态。
- LISTEN,即侦听来自远方的TCP端口的连接请求。
- SYN_SENT,即在发送连接请求后等待匹配的连接请求。
- SYN_RCVD,即在收到和发送一个连接请求后等待对方对连接请求的确认。
- ESTABLISHED,即代表一个打开的连接。
- FIN_WAIT_1,即等待远程TCP连接中断请求,或先前的连接中断请求的确认。
- FIN_WAIT_2,即从远程TCP等待连接中断请求。
- CLOSE_WAIT,即等待从本地用户发来的连接中断请求。
- CLOSING,即等待远程TCP对连接中断的确认。
- LAST_ACK,即等待原来的发向远程TCP的连接中断请求的确认。
- TIME_WAIT,即等待足够的时间以确保远程TCP接收到连接中断请求的确认。
|
示例
|
AT+NETSTAT
|
注意
|
-
|
AT+DHCP dhcp客户端命令
格式
|
AT+DHCP=<ifname>,<stat>
|
响应
|
|
参数说明
|
- <ifname>:网卡名称。
- <stat>:DHCP开关。
0:停止
1:启动
|
示例
|
AT+DHCP=wlan0,1
|
注意
|
网卡名称与AT+IFCFG查看的STA网卡名称保持一致。
|
AT+DHCPS dhcps服务器端命令
格式
|
AT+DHCPS=<ifname>,<stat>
|
响应
|
|
参数说明
|
- <ifname>:网卡名称。
- <stat>:DHCPS开关。
0:停止
1:启动
|
示例
|
AT+DHCPS=ap0,1
|
注意
|
网卡名称与AT+IFCFG查看的AP网卡名称保持一致。
|
AT+IFCFG 接口配置
格式
|
设置指令:
AT+IFCFG=<ifname>,<IP>,netmask,<netmask>, gateway,<gateway>
AT+IFCFG=<ifname>[,<switch>]
|
查询指令:
AT+ IFCFG
|
响应
|
|
+IFCFG:<ifname>,ip=<IP>,netmask =<netmask>,gateway =<gateway>, ip6=<IP6>, HWaddr =<HWaddr>,MTU=<MTU value>, RunStatus =<RunStatus>
|
参数说明
|
- <ifname>:网卡名称。
- <IP>:IP 地址。
- <netmask>:子网掩码。
- <gateway>:网关地址。
- <switch>:网卡开关。
up:启用网卡;
down:停用网卡。
- <IP6>:IPV6 地址。
- <HWaddr>:硬件地址。
- <MTU value>:数据帧最大长度。
- <RunStatus>:网卡是否正在运行。
0:网卡没有运行;
1:网卡正在运行。
|
示例
|
- AT+IFCFG=ap0,192.168.3.1,netmask,255.255.255.0,gateway,192.168.3.1:配置网卡ap0的IP、子网掩码、网关。
- AT+IFCFG=ap0,up:启动网卡ap0。
- AT+IFCFG=ap0,down:停用网卡ap0。
- AT+IFCFG:查询网卡各类配置信息。
|
注意
|
- 启动STA/SOFTAP后,方可查询到有效<HWaddr>。
- 配置IP地址时,需将<IP>紧跟<ifname>之后。
- 启用/关闭网卡时,需将<switch>紧跟<ifname>之后。
- 启用/关闭网卡和网卡的IP/netmask/gateway配置,不能在同一条命令中配置。
|
AT+PS Wi-Fi 低功耗设置
格式
|
AT+PS=<switch>[,<sleep_time>]
|
响应
|
|
参数说明
|
- <switch>:低功耗模式使能开关。
0:关闭低功耗;
1:使能FAST-PS低功耗模式;
2:使能PS-POLL低功耗模式;
3:关闭PS-POLL模式,使能FAST-PS低功耗模式;
255:永久关闭低功耗设置(仅认证使用,重启后恢复)。
- <sleep_time>:低功耗睡眠时间,取值范围0~4000,缺省为0
0:跟随AP的dtim设置;
100:设置dtim_count为1;
1000:设置dtim_count为10。
参数可选,在switch为1时,sleep_time才生效。
|
示例
|
AT+PS=0 关闭低功耗
AT+PS=1 开启低功耗
AT+PS=1,1000 开启低功耗并设置dtim_count=10
|
注意
|
低功耗命令,需要在起STA之后下发,否则有可能不生效。
|
AT+RST 复位单板
格式
|
执行命令:
AT+RST=[<type>]
|
响应
|
|
参数说明
|
|
示例
|
AT+RST
|
注意
|
AT+RST缺省是AT+RST=0
|
AT+SYSCHANNEL 启动Syschannel并等卡
格式
|
AT+SYSCHANNEL
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SYSCHANNEL
|
注意
|
|
AT+QUERYFILTER 查询Syschannel过滤规则
格式
|
AT+QUERYFILTER=<filter>,<length>,<type>
|
响应
|
|
参数说明
|
- <filter>:是否查询filter。
0:不查询;
1:查询。
- <length>:是否查询filter个数。
0:不查询;
1:查询。
- <type>:查询filter类型。
0:IPV4类型;
1:IPV6类型。
|
示例
|
AT+QUERYFILTER=1,1,0
|
注意
|
- type为必填参数,其他为选填。
- Sychannel功能初始化完成后可以查询到默认的过滤规则。
|
AT+ADDFILTER 添加Syschannel过滤规则
格式
|
AT+ADDFILTER=<local_port>,<packet_type>,<match_mask>
<config_type>,<len>,<type>
|
响应
|
|
参数说明
|
- <local_port>:本地端口号。
- <packet_type>:数据包类型。
17:UDP数据包;
6:TCP数据包。
- <match_mask>:匹配掩码。
0x01:WIFI_FILTER_MASK_IP;
0x02:WIFI_FILTER_MASK_PROTOCOL;
0x04:WIFI_FILTER_MASK_LOCAL_PORT;
0x08:WIFI_FILTER_MASK_LOCAL_PORT_RANGE;
0x10:WIFI_FILTER_MASK_REMOTE_PORT;
0x20: WIFI_FILTER_MASK_REMOTE_PORT_RANGE。
- <packet_type>:数据包类型。
17:UDP数据包;
6:TCP数据包。
- <config_type>:配置类型。
0:WIFI_FILTER_LWIP;
1:WIFI_FILTER_VLWIP;
2:WIFI_FILTER_BOTH 。
- <len>:数据包类型。
20:IPV4;
32:IPV6。
- <type>:类型。
0:IPV4类型;
1:IPV6类型。
|
示例
|
AT+ADDFILTER=6001,17,31,2,,0
|
注意
|
|
AT+DELFILTER 删除Syschannel过滤规则
格式
|
AT+DELFILTER=<local_port>,<packet_type>,<match_mask>
<config_type>,<len>,<type>
|
响应
|
|
参数说明
|
- <local_port>:本地端口号。
- <packet_type>:数据包类型。
17:UDP数据包;
6:TCP数据包。
- <match_mask>:匹配掩码。
0x01:WIFI_FILTER_MASK_IP;
0x02:WIFI_FILTER_MASK_PROTOCOL;
0x04:WIFI_FILTER_MASK_LOCAL_PORT;
0x08:WIFI_FILTER_MASK_LOCAL_PORT_RANGE;
0x10:WIFI_FILTER_MASK_REMOTE_PORT;
0x20: WIFI_FILTER_MASK_REMOTE_PORT_RANGE。
- <packet_type>:数据包类型。
17:UDP数据包;
6:TCP数据包。
- <config_type>:配置类型。
0:WIFI_FILTER_LWIP;
1:WIFI_FILTER_VLWIP;
2:WIFI_FILTER_BOTH 。
- <len>:数据包类型。
20:IPV4;
32:IPV6。
- <type>:类型。
0:IPV4类型;
1:IPV6类型。
|
示例
|
AT+DELFILTER=6001,17,31,2,,0
|
注意
|
|
AT+SYSCHANIF 指定Syschannel使用的网络设备接口
格式
|
AT+SYSCHANIF=<netif_name>
|
响应
|
|
参数说明
|
- <netif_name>:网络设备接口。
- wlan0:STA设备的默认物理网络接口。
- ap0:AP设备的默认物理网络接口。
- sle0:星闪设备的默认物理网络接口。
|
示例
|
AT+SYSCHANIF=wlan0
|
注意
|
- 网络接口切换后,主控侧需要配合修改为对应网络设备的mac地址和ip地址。
- 网络接口切换后,需要对应的网络设备处于UP状态,Syschannel才能正常工作。
|
AT+GETRATE 查询最近一次发送给指定设备的报文速率
格式
|
AT+GETRATE=<mac_addr>
|
响应
|
|
参数说明
|
|
示例
|
AT+GETRATE=00:11:22:33:44:55
|
注意
|
- 设备作为STA模式时,MAC地址为关联AP的BSSID。
- 设备作为SOFTAP模式时,MAC为待查询关联STA的MAC。
|
AT+SENDPKT 发送任意帧
格式
|
AT+SENDPKT=<type>,<data>
|
响应
|
|
参数说明
|
<type>:vap类型,取值范围0,1,依次为STA、AP。
<data>:报文内容,字符长度最大为2800,即报文最大为1400字节。
|
示例
|
以下已关联状态的STA发送RST帧为例,其他类型报文请自行参考报文结构构造:
AT+SENDPKT=0,B4010000D45D64A4CCD05CED93A10503
- 0~1位:B4,表示报文的SubType和Type。
- 2~3位:01,表示报文的Frame Control Flag字段。
- 4~7位:0000, 表示报文的Duration字段。
- 8~19位:D45D64A4CCD0,根据RTS报文,表示RA地址。
- 20~31位:5CED93A10503,根据RTS报文,表示TA地址。
|
注意
|
STA未关联场景,如果需要发送任意帧,请先指定信道。
|
AT+HEAPSTAT 打印堆使用情况
格式
|
AT+HEAPSTAT
|
响应
|
打印所有线程堆内存申请信息
OK
|
参数说明
|
-
|
示例
|
AT+HEAPSTAT
|
注意
|
-
|
AT+TASKSTACK 打印每个任务栈使用情况
格式
|
AT+TASKSTACK
|
响应
|
打印所有线程栈信息
OK
|
参数说明
|
-
|
示例
|
AT+TASKSTACK
|
注意
|
-
|
STA相关AT指令
STA相关AT指令一览表
指令
|
描述
|
AT+STARTSTA
|
启动STA。
|
AT+STOPSTA
|
关闭STA。
|
AT+RECONN
|
配置重连策略。
|
AT+SCAN
|
发起STA扫描。
|
AT+SCANCHN
|
指定信道扫描。
|
AT+SCANSSID
|
指定ssid扫描。
|
AT+SCANRESULT
|
查看STA扫描结果。
|
AT+CONN
|
发起与AP的连接。
|
AT+FCONN
|
发起与AP的快速连接。
|
AT+DISCONN
|
断开与AP的连接。
|
AT+STASTAT
|
查看STA状态。
|
AT+PBC
|
wps pbc连接。
|
AT+PIN
|
wps_pin连接。
|
AT+PINSHOW
|
显示生成的pin码。
|
STA相关AT指令描述
AT+STARTSTA 启动STA
格式
|
带参数执行指令:AT+STARTSTA=[<protocol_mode>],[<pmf>]
|
不带参数执行指令:
AT+STARTSTA
|
响应
|
|
|
参数说明
|
|
-
|
示例
|
AT+STARTSTA
AT+STARTSTA=1,1
|
AT+STARTSTA
|
注意
|
- 不带参数指令执行时,上述参数使用系统默认值。
- 不支持重复启动STA。
|
AT+STOPSTA 关闭STA
格式
|
AT+STOPSTA
|
响应
|
|
参数说明
|
-
|
示例
|
AT+STOPSTA
|
注意
|
执行AT+STOPSTA后,无需先执行"AT+DHCP=wlan0,0"关闭DHCP服务,会自动关闭DHCP服务。
|
AT+RECONN 配置重连策略
格式
|
AT+RECONN=<enable>[,<period>,<count>[,<timeout>]]
|
响应
|
|
参数说明
|
- <enable>:重连使能。
0:不执行重连;
1:执行重连。
- <period>:重连间隔周期,单位为s,取值范围:1~65535。
- <count>:重连最大次数,取值范围:1~65535。
- <timeout>:单次重连超时时间,取值范围:2~65535,默认2,当取值为65535时,表示无限次循环重连。
|
示例
|
AT+RECONN=1,10,3600,50
AT+RECONN=1,10,3600,
AT+RECONN=0
|
注意
|
- 当重连使能位为0(关闭使能)时,不用再输入后面的参数,否则会响应ERROR。
- 当重连使能位为1(开启使能)时,需要输入后面的参数,参数个数必须3个,或者4个。
- 命令在AT+STARTSTA之后才能使用,执行AT+STOPSTA关闭STA以后,本命令配置的参数会恢复成默认值。
|
AT+SCAN 启动STA扫描
格式
|
AT+SCAN
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SCAN
|
注意
|
- 此命令为非阻塞式命令。
- 命令返回OK表示启动扫描成功,执行“AT+SCANRESULT”查看扫描结果。
|
AT+SCANCHN 指定信道扫描
格式
|
AT+SCANCHN=<chn>
|
响应
|
|
参数说明
|
<chn>:信道号,取值范围1~14,只支持单信道扫描。
|
示例
|
AT+SCANCHN=3
|
注意
|
- 此命令为非阻塞式命令。
- 命令返回OK表示启动扫描成功。
- <chn>不同区域取值范围有差异,中国为1~13。
|
AT+SCANSSID 指定ssid扫描
格式
|
AT+SCANSSID=<ssid>
|
响应
|
|
参数说明
|
<ssid>:服务集标识符,即路由器名称,参数需使用双引号。
|
示例
|
AT+SCANSSID="XXX"
AT+SCANSSID=P"\\xe4\\xb8\\xad\\xe5\\x9b\\xbd":指定ssid为“中国”并启动扫描
|
注意
|
- 此命令为非阻塞式命令。
- 命令返回OK表示启动扫描成功。
- <ssid>如果为非ASCll编码的字符(例如:名称为“中国”的ssid),按照如下格式输入“中国”的编码:P"\\xe4\\xb8\\xad\\xe5\\x9b\\xbd"。
- <ssid>内容包含特殊符号“或者,需使用\转义,如ssid名称为"ab,c",命令参数应为"ab\,c"。
|
AT+SCANRESULT 查看STA扫描结果
格式
|
AT+SCANRESULT
|
响应
|
+SCANRESULT:<ssid>,<bssid>,<chn>,<rssi>,<auth_type>
|
参数说明
|
|
示例
|
AT+SCANRESULT
|
注意
|
- <chn>:不同区域取值范围有差异,中国为1~13。
- 执行扫描命令成功后才能查询到扫描结果。
- <ssid>如果为非ASCll编码的字符,则按照原编码显示。例如:名称为“中国”的ssid,显示格式为:P"\xe4\xb8\xad\xe5\x9b\xbd"。
|
AT+CONN 发起与AP的连接
格式
|
AT+CONN=<ssid>[,<bssid>,<passwd>][,<psk_type>]
|
响应
|
|
参数说明
|
- <ssid>:服务集标识符,即路由器名称,参数需使用双引号。
- <bssid>:基本服务集标识符,通常为路由器MAC地址。
- <passwd>:密码,需使用双引号。
- <psk_type>:密码类型,0表示ASCII格式,1表示HEX格式,默认值为0。
|
示例
|
- AT+CONN="XXX":连接名称为XXX,且加密方式为open的路由器。
- AT+CONN="XXX",,"123456789":连接名称为XXX,且加密方式非open的路由器。
- AT+CONN=,90:2B:D2:E4:CE:28,"123456789" :连接bssid为90:2B:D2:E4:CE:28的路由器。
- AT+CONN= P"\\xe4\\xb8\\xad\\xe5\\x9b\\xbd",,"123456789":连接名称为“中国”的路由器。
- AT+CONN="XXX",,"3132333435",1 :路由器设置认证方式为WEP,且密码为HEX格式,需要将psk_type置为1。
|
注意
|
|
AT+FCONN 发起与AP的快速连接
格式
|
AT+FCONN=<ssid>,<bssid>,<chn>,<auth_type>[,<passwd>]
|
响应
|
|
参数说明
|
- <ssid>:服务集标识符,即路由器名称,参数需使用双引号。
- <bssid>:基本服务集标识符,通常为路由器MAC地址。
- <chn>:信道号,取值范围1~14。
- <auth_type>:认证方式。
0:OPEN
1:WEP
2:WPA2_PSK
3:WPA_WPA2_PSK
7:WPA3-SAE
8:WPA2_PSK_WPA3-SAE
11:WAPI-PSK
- <passwd>:密码,需使用双引号,如果对端网络认证方式为WEP,并且密码为ASCII格式,此处密码输入需要双层双引号。
|
示例
|
- AT+FCONN="XXX",,6,3,"123456789":连接名称为XXX的路由器,指定6信道。
- AT+FCONN= P"\\xe4\\xb8\\xad\\xe5\\x9b\\xbd",,6,3,"123456789":连接名称为“中国”的路由器,指定6信道。
- AT+FCONN=,90:2B:D2:E4:CE:28,6,3,"123456789":连接bssid为90:2B:D2:E4:CE:28的路由器,指定6信道。
- AT+FCONN="XXX",,6,1,""1234567890123"" :连接名称为XXX的路由器,对端路由器设置的认证方式为WEP,密码为ASCII格式,此处使用双层双引号。
|
注意
|
|
AT+DISCONN 断开与AP的连接
格式
|
AT+DISCONN
|
响应
|
|
参数说明
|
-
|
示例
|
AT+DISCONN
|
注意
|
- 此命令为非阻塞式命令。
- 命令返回OK表示断开连接命令下发成功。
|
AT+STASTAT 查看STA连接状态
格式
|
AT+STASTAT
|
响应
|
+STASTAT: <status>,<ssid>, <bssid >,<chn>,<rssi>
|
参数说明
|
- <status>:当前连接状态。
0:未连接;
1:已连接。
- <ssid>:服务集标识符,即路由器名称。
- <bssid >:基本服务集标识符,通常为路由器MAC地址。
- <chn>:信道号,取值范围1~14。
- <rssi>:路由器信号强度,取值范围-100 ~ 0。
|
示例
|
AT+STASTAT
|
注意
|
- <chn>不同区域取值范围有差异,中国为1~13。
- <ssid>如果为非ASCll编码的字符,则按照原编码显示。例如:名称为“中国”的ssid,显示格式为:P"\xe4\xb8\xad\xe5\x9b\xbd"。
|
AT+PBC PBC连接
格式
|
AT+PBC
|
响应
|
|
参数说明
|
-
|
示例
|
AT+PBC
|
注意
|
|
AT+PIN PIN连接
格式
|
AT+PIN=<pin>
|
响应
|
|
参数说明
|
<pin>:PIN码
|
示例
|
AT+PIN=03882368
|
注意
|
|
AT+PINSHOW 生成PIN码
查询指令
|
AT+PINSHOW
|
响应
|
+PINSHOW:<pin>
|
参数说明
|
<pin>:PIN码
|
示例
|
AT+PINSHOW
|
注意
|
默认未使能。
|
SoftAP相关AT指令
SoftAP相关AT指令一览表
指令
|
描述
|
AT+STARTAP
|
普通模式启动SoftAP。
|
AT+SETAPADV
|
配置SoftAP启动参数。
|
AT+STOPAP
|
停止SoftAP。
|
AT+SHOWSTA
|
AP显示当前连接的STA信息。
|
AT+DEAUTHSTA
|
AP断开STA连接。
|
SoftAP相关AT指令描述
AT+STARTAP 普通模式启动SoftAP
格式
|
AT+STARTAP=<ssid>,<chn>,<auth_type>[,<passwd>]
|
响应
|
|
参数说明
|
- <ssid>:服务集标识符,即路由器名称,参数需使用双引号,最长为32个字符,超过不生效。
- <chn>:信道号,取值范围1~14或者取值0表示不指定信道,使用自动信道选择(ACS)算法,此时会触发一次自动信道扫描。
- <auth_type>:认证方式。
0:OPEN
1:WEP-SHARED
2:WPA2_PSK
3:WPA_WPA2_PSK
7:WPA3-SAE
8:WPA2_PSK_WPA3-SAE
14:WEP-OPEN
- <passwd>:密码,参数需使用双引号,认证方式为2/3/7/8要求密码长度为8位或以上,1/14密码为固定长度5/10/13/26。
|
示例
|
AT+STARTAP="XXX",6,2,"123456789"
AT+STARTAP="XXX",6,0
|
注意
|
- <chn>不同区域取值范围有差异,中国为1~13。
- <auth_type>设置为OPEN时,无<passwd>参数及参数前的逗号。
- <auth_type>设置为WEP-SHARED或WEP-OPEN时,<passwd>参数长度只能为5/10/13/26。
- <ssid>和<passwd>内容如果包含特殊符号“或者,需使用\转义,如ssid名称为"ab,c",命令参数应为"ab\\,c"。
- 如需进行高级参数配置,请先执行AT+SETAPADV,再启动AP;
|
AT+SETAPADV 配置SoftAP启动参数
格式
|
AT+SETAPADV=[<protocol_mode>],[<bcn_period>],[<dtim_period>],[<group_rekey>],[<ssid_hide>],[<sgi>]
|
响应
|
|
参数说明
|
|
示例
|
AT+SETAPADV=3,100,2,3600,1,1
AT+SETAPADV=,100,2,3600,
|
注意
|
- 此命令需在AT+STARTAP前下发。
- 如果不需要改变上述参数默认值,无需下发此命令。
- AT+STOPAP不会改变上述参数设置值。
- 参数可以省略,省略的参数使用系统默认值。
-
|
AT+STOPAP 停止SoftAP
格式
|
AT+STOPAP
|
响应
|
|
参数说明
|
-
|
示例
|
AT+STOPAP
|
注意
|
执行AT+STOPAP后,无需先执行"AT+DHCPS=AP0,0"关闭DHCP服务。
|
AT+SHOWSTA 显示当前连接的STA信息
格式
|
AT+SHOWSTA
|
响应
|
+SHOWSTA:<STA_MAC>, rssi: <RSSI>,rate<RATE>
|
参数说明
|
- <STA_MAC>:当前已连接的STA MAC地址。
- <RSSI>:信号接收强度。
- <RATE>:当前速率
|
示例
|
AT+SHOWSTA
|
注意
|
-
|
AT+DEAUTHSTA 断开STA连接
格式
|
AT+DEAUTHSTA=<MAC>
|
响应
|
|
参数说明
|
<MAC>:要断开的STA MAC地址。
|
示例
|
AT+DEAUTHSTA=90:2B:D2:E4:CE:28
|
注意
|
-
|
TCP/IP相关AT指令
TCP/IP相关AT指令一览表
指令
|
描述
|
AT+IPSTART
|
创建socket,TCP协议发起连接。
|
AT+IPSEND
|
发送TCP/UDP数据。
|
AT+IPLISTEN
|
启动TCP监听。
|
AT+IPCLOSE
|
删除socket ,TCP协议断开连接。
|
+IPD
|
接收TCP/UDP数据的主动上报。
|
TCP/IP相关AT指令描述
AT+IPSTART 创建socket,TCP协议发起连接
格式
|
TCP:
AT+IPSTART=<link_ID>,<IP_protocol>,<remote_IP>,<remote_port>
|
UDP:
AT+IPSTART=<link _ID>,<IP_protocol>,<local_port>
|
响应
|
|
参数说明
|
- <link_ID>:网络连接号,与本机socket绑定,取值范围需要根据业务场景确定,配置网络协议栈socket资源,AT场景仅做功能验证,支持6个TCP连接和4个UDP传输,但总数不超过8个,取值范围0~7。
- <IP_protocol>:IP协议类型。
- TCP:TCP连接。
- UDP:UDP监听。
- <remote_IP>:远端 IP地址。
- <remote_port>:远端端口号。
- <local_port>:本地端⼝号。
|
示例
|
AT+IPSTART=0,tcp,192.168.3.1,5001
AT+IPSTART=0,udp,5001
|
注意
|
-
|
AT+IPSEND 发送TCP/UDP数据
格式
|
- 发送TCP数据:
AT+IPSEND=<link_ID>,<len>,<string>
- 发送UDP数据:
AT+IPSEND=<link_ID>,<len>,<remote IP>,<remote port>,<string>
|
响应
|
|
参数说明
|
- <link ID>:网络连接号,与本机socket绑定,取值范围:0~7。
- <len>:发送数据的长度,最大长度为1024。
- <remote_IP>:远端IP地址。
- <remote_port>:远端端口号。
- <string>:要发送的数据。
|
示例
|
AT+IPSEND=0,9,data test
OK
AT+IPSEND=0,9,192.168.3.1,5001,data test
OK
|
注意
|
- \0作为发送结束符,如果要发送\0,需转义成\\0。
- TCP和UDP发送数据场景,需要组网内开启Server端接收数据。
|
AT+IPLISTEN 启动TCP监听
格式
|
AT+IPLISTEN=<control>[,<local_port>]
|
响应
|
|
参数说明
|
- <control>:
0:关闭TCP监听
1:启动TCP监听
|
示例
|
AT+IPLISTEN=1,5001
AT+IPLISTEN=0
|
注意
|
<control>取值为0时不需要<local_port>参数。
|
AT+IPCLOSE 关闭连接
格式
|
AT+IPCLOSE=<link_ID>
|
响应
|
|
参数说明
|
<link_ID>:网络连接号,与本机socket绑定,取值范围:0~7。
|
示例
|
AT+IPCLOSE=0
|
注意
|
-
|
+IPD 接收网络数据
格式
|
+IPD,<link_ID>,<len>,<remote_IP>,<remote_port>:<data>
|
响应
|
当系统处于TCP连接态或UDP监听态时,如果收到远端TCP/UDP数据,会主动上报:+IPD,<link_ID>,<len>,<remote_IP>,<remote_port>:<data>
|
参数说明
|
- <link_ID>:网络连接号,与本机socket绑定,取值范围:0~7。
- <len>:本次接收数据的长度。
- <remote_IP>:远端 IP 地址。
- <remote_port>:远端端口号。
- <data>:收到的数据。
|
示例
|
+IPD,0,4,192.168.3.1,5001:abcd
|
注意
|
单次接收数据长度最大为1024,长度超过1024的数据分多次上报。
|
测试调试相关AT指令
测试调试相关AT指令一览表
指令
|
描述
|
AT+ALTX
|
设置常发功能。
|
AT+ALRX
|
设置常收功能。
|
AT+RXINFO
|
查询常收。
|
AT+SETRPWR
|
设置功率。
|
AT+CALIONLINE
|
触发动态校准。
|
测试调试相关AT指令描述
AT+ALTX 设置常发功能
格式
|
AT+ALTX=<control>[,<protocol_mode>,<bw>,<chn>]
|
响应
|
|
参数说明
|
- <control>:使能开关
0:关闭
1:打开
- <protocol_mode>:协议类型
0:802.11n
1:802.11g
2:802.11b
3:802.11ax
5:11n 40plus
6:11n 40minus
- <bw>:带宽
20:20MHz带宽
40:40MHz带宽
- <chn>:信道号,取值范围1~14
|
示例
|
- 开启11n 40M常发时
AT+ALTX=1,5,40,1 其中:5表示40plus
AT+ALTX=1,6,40,11 其中:6表示40minus
|
注意
|
- <chn>不同区域取值范围有差异,中国为1~13。
- <control>设置为0时,其他参数不配置。
|
AT+ALRX 设置常收功能
格式
|
AT+ALRX=<control>[,<protocol_mode>,<bw>,<chn>,<mac_filter>]
|
响应
|
|
参数说明
|
- <control>:使能开关。
0:关闭
1:打开
- <protocol_mode>:协议类型。
0:802.11n
1:802.11g
2:802.11b
3:802.11ax
5:11n 40plus
6:11n 40minus
<bw>:带宽
20:20M带宽
40:40M带宽
- <chn>:信道号,取值范围1~14。
- <mac_filter>:MAC地址过滤使能开关(暂不支持)。
0:关闭
1:打开
|
示例
|
AT+ALRX=1,0,20,1,1
开启常收11n 40M时:
- AT+ALRX=1,5,40,1,0 40plus
- AT+ALRX=1,6,40,11,0 40minus
|
注意
|
- <chn>不同区域取值范围有差异,中国为1~13。
- <control>设置为0时,其他参数不配置。
|
AT+RXINFO 查询常收
格式
|
AT+RXINFO
|
响应
|
+RXINFO: rx succ num[mpdu,ampdu]:<pkt><pkt> fail num:<pkt> rssi:<d>
mac mpdu[<pkt>,<pkt>] ampdu[<pkt>,<pkt>]
phy dotb[<pkt>,<pkt>] ht[<pkt>,<pkt>] vht[<pkt>,<pkt>] lega[<pkt>,<pkt>]
|
参数说明
|
- <pkt>:接收报文数量。
- rssi:<d>:最后一个收包rssi强度。
|
示例
|
AT+RXINFO
|
注意
|
仪器发包完成后再执行,执行后会清除当前统计值。
|
AT+SETRPWR 设置功率
格式
|
AT+SETRPWR=<protocol_mode>,<rate>,<power_offset>
|
响应
|
|
参数说明
|
- <protocol_mode>:协议模式
0:802.11b
1:802.11g
2:802.11n 20M/802.11ax 20M
3:802.11n 40M
- <rate>:速率
802.11b:0~3表示1、2、5.5、11Mbps;4表示全速率修改;
802.11g:0~7表示6、9、12、18、24、36、48、54Mbps;8表示全速率修改;
11n/11ax 20M:0~9表示mcs0~mcs9;10表示全速率修改;
11n 40M:0~9表示mcs0~mcs9;10表示mcs32;11表示全速率修改。
- <power_offset>:功率偏移值。
范围:-100~+40,单位0.1dB,表示相对当前功率的偏移值。
|
示例
|
AT+SETRPWR=0,0,-10
|
注意
|
此命令需在AT+STARTAP/AT+STARTSTA执行后下发。
11n 20M和11n 40M最大支持到mcs7。
|
AT+CALIONLINE 触发动态校准
格式
|
AT+CALIONLINE=<online_type>
|
响应
|
- 成功:online cali complete:type[type_bit]
- 失败:ERROR或无日志
|
参数说明
|
- <online_type>:校准项参数。
0:退出动态校准状态;
2:动态TX IQ校准;
4:动态RX IQ校准。
|
示例
|
AT+CALIONLINE=2
|
注意
|
此命令需在启动SoftAP模式或已关联的STA模式下执行。
此命令执行时需确保非常发和常收状态。
触发校准后需执行 AT+CALIONLINE=0 退出校准状态。
|
使用场景示例
启动/停止SoftAP
启动SoftAP示例
|
AT+MAC=90:2B:D2:E4:CE:28
AT+STARTAP="XXX",6,2,"12345678"
AT+IFCFG=ap0,192.168.3.1,netmask,255.255.255.0,gateway,192.168.3.1
AT+DHCPS=ap0,1
|
注意:设置MAC地址命令可选,如果不设置则使用随机MAC;设置的MAC地址为STA的地址,SoftAP的地址为STA的地址+1。
|
启动/停止STA
启动STA示例
|
AT+MAC=90:2B:D2:E4:CE:28
AT+STARTSTA
AT+SCAN
AT+SCANRESULT
AT+CONN="XXX",,"123456789"
AT+STASTAT
AT+DHCP=wlan0,1
|
注意:设置MAC地址命令可选,如果不设置则使用随机MAC;设置的MAC地址为STA的地址,SoftAP的地址为STA的地址+1。
|
吞吐量测试
吞吐量测试示例
|
AT+STARTSTA
AT+SCAN
AT+SCANRESULT
AT+CONN="XXX",,0
AT+DHCP=wlan0,1
AT+IFCFG
AT+PING=192.168.3.1
AT+PING=-k
#UDP测试,192.168.3.1为对端iperf server IP地址
AT+IPERF=-c,192.168.3.1,-u,-b,100M,-t,30,-i,1
AT+IPERF=-s,-i,1,-u
#TCP测试
AT+IPERF=-c,192.168.3.1,-i,1,-t,30
AT+IPERF=-s,-i,1
AT+IPERF=-k
|
注意:AT+IPERF测试启动前,要保证对端IP可ping通。
|
RF 测试
RF常发测试
RF常发
|
AT+RST
AT+STARTSTA
AT+ALTX=1,0,20,1
|
RF常收测试
RF常收
|
AT+RST
AT+MAC=90:2B:D2:E4:CE:28
AT+STARTSTA
AT+ALRX=1,0,20,1,1
…
AT+RXINFO
|
注意:AT+RXINFO为查看常收结果命令。
|
BLE&SLE模块AT指令
BLE
BLE AT指令一览表
gap模块AT命令
指令
|
描述
|
AT+BLEENABLE
|
使能BLE协议栈。
|
AT+BLEDISABLE
|
关闭BLE协议栈。
|
AT+BLESETADDR=<参数>
|
设置本地设备地址。
|
AT+BLEGETADDR
|
获取本地设备地址。
|
AT+BLESETNAME=<参数>
|
设置本地设备名称。
|
AT+BLEGETNAME
|
获取本地设备名称。
|
AT+BLESETAPPEARANCE=<参数>
|
设置本地设备外观。
|
AT+BLESETADVDATA=<参数>
|
设置BLE广播数据。
|
AT+BLESETADVPAR=<参数>
|
设置BLE广播参数。
|
AT+BLESTARTADV=<参数>
|
开始发送BLE广播。
|
AT+BLESTOPADV=<参数>
|
停止发送BLE广播。
|
AT+BLEGETPAIREDNUM
|
获取BLE设备配对设备数量。
|
AT+BLEGETPAIREDDEV
|
获取BLE设备配对设备。
|
AT+BLEGETPAIREDSTA=<参数>
|
获取BLE设备配对状态。
|
AT+BLECONNPARUPD=<参数>
|
连接参数更新。
|
AT+BLEGAPREGCBK
|
注册gap回调函数。
|
gatts模块AT命令
指令
|
描述
|
AT+GATTSREGSRV=<参数>
|
创建一个GATT server。
|
AT+GATTSUNREG=<参数>
|
删除GATT server,释放资源。
|
AT+GATTSSYNCADDSERV=<参数>
|
添加一个GATT服务(同步)。
|
AT+GATTSSYNCADDCHAR=<参数>
|
为GATT服务添加一个特征(同步)。
|
AT+GATTSSYNCADDDESCR=<参数>
|
为最新的特征添加一个描述符(同步)。
|
AT+GATTSSTARTSERV=<参数>
|
启动指定的GATT服务。
|
AT+GATTSDELALLSERV=<参数>
|
删除指定server上的所有服务。
|
AT+GATTSSENDRSP=<参数>
|
发送响应。
|
AT+GATTSSNDNTFY=<参数>
|
发送通知或指示。
|
AT+GATTSSNDNTFYBYUUID=<参数>
|
根据uuid发送通知或指示。
|
AT+GATTSREGCBK
|
注册GATT服务端回调函数。
|
AT+GATTSSETMTU=<参数>
|
在连接之前设置server rx mtu。
|
BLE AT指令描述
gap模块AT命令
AT+BLEENABLE 使能ble协议栈
格式
|
AT+BLEENABLE
|
响应
|
打开BLE开关
成功:OK
|
参数说明
|
-
|
示例
|
AT+BLEENABLE
|
注意
|
-
|
AT+BLEDISABLE 关闭ble协议栈
格式
|
AT+BLEDISABLE
|
响应
|
关闭BLE开关
成功:OK
|
参数说明
|
-
|
示例
|
AT+BLEDISABLE
|
注意
|
-
|
AT+BLESETADDR 设置本地设备地址
格式
|
AT+BLESETADDR=<addr_type,addr>
|
响应
|
|
参数说明
|
- <addr_type>:蓝牙设备类型
- <addr>:蓝牙设备地址
|
示例
|
AT+BLESETADDR=0,0x112233445566
|
注意
|
设备类型取值范围为{0(公共设备地址),1(随机设备地址),2(公共本端地址),3(随机静态本端地址)},设备地址为长度为14的字符串
|
AT+BLEGETADDR 获取本地设备地址
格式
|
AT+BLEGETADDR
|
响应
|
|
参数说明
|
-
|
示例
|
AT+BLEGETADDR
|
注意
|
-
|
AT+BLESETNAME 设置本地设备名称
格式
|
AT+BLESETNAME=<len,name>
|
响应
|
|
参数说明
|
<len>:本地设备名称长度;
<name>:本地设备名称
|
示例
|
AT+BLESETNAME=9,atcmdtest
|
注意
|
名称长度取值范围为1~31,设备名称长度为len的字符串。
|
AT+BLEGETNAME 获取本地设备名称
格式
|
AT+BLEGETNAME
|
响应
|
|
参数说明
|
-
|
示例
|
AT+BLEGETNAME
|
注意
|
-
|
AT+BLESETAPPEARANCE 设置本地设备外观
格式
|
AT+BLESETAPPEARANCE=<appearance>
|
响应
|
|
参数说明
|
<appearance>:本地设备外观;
|
示例
|
AT+BLESETAPPEARANCE=961
|
注意
|
参数值应为规定值,示例中961为键盘的外观值,具体请参考 USB HID Usage Tables 中的设备外观值定义。
|
AT+BLESETADVDATA 设置BLE广播数据
格式
|
AT+BLESETADVDATA=<adv_length,adv_data,scan_rsp_length,scan_rsp_data,adv_id>
|
响应
|
|
参数说明
|
- <adv_length>:广播数据长度(最大190字节,≤31是传统广播,>31是拓展广播)
- <adv_data>:广播数据(广播数据的设定需符合蓝牙协议规定, 自行定义的数据可能导致对端设备无法识别)
- <scan_rsp_length>:扫描返回数据长度(长度限制与广播数据一致)
- <scan_rsp_data>:扫描返回数据(当对端设备扫描到本端广播后会发送req, 此时如果配置了rsp_data, 则本端可主动给对端回复rsp, 若设置为0则不回复)
- <adv_id>:广播id[1, 0xEF]
|
示例
|
AT+BLESETADVDATA=6,0x112233445566,0,0,1
|
注意
|
广播数据长度单位为字节,所以广播数据应为长度两倍的字符串,扫描返回数据同理,广播ID取值范围为[1,0xEF]
|
AT+BLESETADVPAR 设置广播数据参数
格式
|
AT+BLESETADVPAR=<min_interval,max_interval,adv_type,own_addr,peer_addr_type,peer_addr,channel_map,adv_filter_policy,tx_power,duration,adv_id>
|
响应
|
|
参数说明
|
- <min_interval>:最小扫描间隔;取值范围[0x20, 0x4000],Time=N×0.625ms
- <max_interval>:最大扫描间隔;取值范围[0x20, 0x4000],Time=N×0.625ms
- <adv_type>:广播类型
0:可连接可扫描非定向广播;
1:可连接不可扫描高频定向广播;
2:不可连接可扫描非定向广播;
3:不可连接不可扫描非定向广播;
4:可连接不可扫描低频定向广播;
- <own_addr>:本端地址;
- <peer_addr_type>:对端地址类型;
- <peer_addr>:对端地址;
- <channel_map>:信道;取值范围为[0x01, 0x07];
- <adv_filter_policy>:过滤策略;
- <tx_power>:扫描功率(传值范围[-127, 20] 或 0x7F, 传0x7F时表示使用BTC的默认值);
- <duration>:扫描周期;仅取值为0;
- <adv_id>:广播ID;取值范围[1, 0xEF];
|
示例
|
AT+BLESETADVPAR=48,48,0,0x112233445577,0,0x112233445566,7,0,1,0,1
|
注意
|
1. 广播参数里的本端地址主要用于起广播,set_addr主要用于设置mac地址和发起广播。当广播参数里的本端地址全0时,set_addr既用于设置mac地址,也用于起广播;当广播参数里的本端地址非全0时,set_addr就用来设置mac地址,广播参数里的非全0地址用来起广播。
2. 用广播参数设置地址后, 广播类型默认是1, 连接时需用指定广播类型为1去连接。
|
AT+BLESTARTADV 开始发送BLE广播
格式
|
AT+BLESTARTADV=<adv_id>
|
响应
|
|
参数说明
|
<adv_id>:广播id,对应set_adv_para里的adv_id, [1-0xEF]
|
示例
|
AT+BLESTARTADV=1
|
注意
|
-
|
AT+BLESTOPADV 停止发送BLE广播
格式
|
AT+BLESTOPADV=<adv_id>
|
响应
|
|
参数说明
|
<adv_id>:广播id
|
示例
|
AT+BLESTOPADV=1
|
注意
|
-
|
AT+BLEGETPAIREDNUM 获取BLE设备配对设备数量
格式
|
AT+BLEGETPAIREDNUM
|
响应
|
|
参数说明
|
-
|
示例
|
AT+BLEGETPAIREDNUM
|
注意
|
-
|
AT+BLEGETPAIREDDEV 获取BLE设备配对设备
格式
|
AT+BLEGETPAIREDDEV
|
响应
|
|
参数说明
|
-
|
示例
|
AT+BLEGETPAIREDDEV
|
注意
|
-
|
AT+BLEGETPAIREDSTA 获取BLE设备配对状态
格式
|
AT+BLEGETPAIREDSTA=<addr_type,addr>
|
响应
|
|
参数说明
|
<addr_type>:蓝牙设备类型
<addr>:蓝牙设备地址
|
示例
|
AT+BLEGETPAIREDSTA=0,0x112233445566
|
注意
|
设备类型取值范围:
- 0:公共设备地址
- 1:随机设备地址
- 2:公共本端地址
- 3:随机静态本端地址
设备地址为长度为14的字符串。
|
AT+BLECONNPARUPD 更新连接参数
格式
|
AT+BLECONNPARUPD=<conn_handle,interval_min,interval_max,slave_latency,timeout_multiplier>
|
响应
|
|
参数说明
|
- <conn_handle>:连接句柄
- <interval_min>:链路调度最小间隔,[0x06, 0x0C80],Time=N×1.25ms
- <interval_max>:链路调度最大间隔,[0x06, 0x0C80],Time=N×1.25ms
- <slave_latency>:延迟周期,单位slot(该值表示在设置值的周期内可以不回复, 为0时则表示每包都需回复)
- <timeout_multiplier>:超时断连间隔
|
示例
|
AT+BLECONNPARUPD=0,0x48,0x48,0,500
|
注意
|
interval_min需要小于等于interval_max
|
AT+BLEGAPREGCBK 注册BLE回调函数
格式
|
AT+BLEGAPREGCBK
|
响应
|
|
参数说明
|
-
|
示例
|
AT+BLEGAPREGCBK
|
注意
|
-
|
格式
|
AT+BLEREADPEERRSSI=<conn_handle>
|
响应
|
|
参数说明
|
|
示例
|
AT+BLEREADPEERRSSI=0
|
注意
|
-
|
AT+BLESETPHY 设置 BLE PHY
格式
|
AT+BLESETPHY=<conn_handle>,<all_phys>,<tx_phys>,<rx_phys>,<phy_options>
|
响应
|
|
参数说明
|
- <conn_handle>:连接句柄
- <all_phys>: host配置phy信息,按bit配置,bit0是tx phy mask,bit1是rx phy mask,配0生效,配1不生效
0:tx rx phy生效
1:tx phy不生效,rx phy生效
2:tx phy生效,rx phy不生效
3:tx rx phy都不生效
- <tx_phy>:tx phys配置,按bit配置
0:1M PHY
1:2M PHY
2:Code PHY
- <rx_phy>:rx phy值,按bit 配置
0:1M PHY
1:2M PHY
2:Code PHY
- <phy_options>: phy编码选项,coded phy生效
0: 主机没有首选编码
1: 使用S=2编码PHY(1M/2=512k)
2: 使用S=8编码PHY(1M/8=128k)
|
示例
|
AT+BLESETPHY=0,2,1,1,0
|
注意
|
上述各参数中没有列出的示例值为预留字段, AT侧不做拦截, 下发后BTC会回复异常参数, 请关注回调中的异常日志打印。
|
gatts模块AT命令
AT+GATTSREGSRV 创建一个GATT server
格式
|
AT+GATTSREGSRV=<uuid>
|
响应
|
|
参数说明
|
<uuid>:应用uuid
|
示例
|
AT+GATTSREGSRV=0x1122
|
注意
|
-
|
AT+GATTSUNREG 删除GATT server,释放资源
格式
|
AT+GATTSUNREG=<server_id>
|
响应
|
|
参数说明
|
<server_id>:注册server时生成的server id,默认为1
|
示例
|
AT+GATTSUNREG=1
|
注意
|
-
|
AT+GATTSSYNCADDSERV 添加一个GATT服务(同步)
格式
|
AT+GATTSSYNCADDSERV=<server_id,svc_uuid,is_primary_flag>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <svc_uuid>:服务uuid
- <is_primary_flag>:是否是首要服务
|
示例
|
AT+GATTSSYNCADDSERV=1,0x1812,1
|
注意
|
-
|
AT+GATTSSYNCADDCHAR 为GATT服务添加一个特征(同步)
格式
|
AT+GATTSSYNCADDCHAR=<server_id,service_handle,chara_uuid,permissions,properties,value_len,value>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <service_handle>:服务句柄
- <chara_uuid>:特征uuid
- <permissions>:权限
0x01:可读
0x02:可写
0x04:需要加密
0x08:需要认证
0x10:需要授权
0x20:需要MITM保护
注:多个权限类型使用'|'后的值, 如可读可写需要授权为, 0x01|0x02|0x08 值为0x0B
- <propertise>:特性
0x01:广播特征值
0x02:读特征值
0x04:写特征值并且不需要响应
0x08:写特征值
0x10:通知特征值
0x20:指示特征值
0x40:签名写特征值
注:多个特征类型使用'|'后的值, 如读写特征为, 0x02|0x08 值为0x0A
- <value_len>:值长度
- <value>:值
|
示例
|
AT+GATTSSYNCADDCHAR=1,14,0x1234,0x01,0x02,4,01010003
|
注意
|
值是长度为值长度两倍的字符串
|
AT+GATTSSYNCADDDESCR 为最新的特征添加一个描述符(同步)
格式
|
AT+GATTSSYNCADDDESCR=<server_id,service_handle,chara_uuid,permissions,value_len,value>
|
响应
|
|
参数说明
|
|
示例
|
AT+GATTSSYNCADDDESCR=1,14,0x2902,0x03,2,0100
|
注意
|
值是长度为值长度两倍的字符串
|
AT+GATTSSTARTSERV 启动指定的GATT服务
格式
|
AT+GATTSSTARTSERV=<server_id,service_handle>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <service_handle>:服务句柄
|
示例
|
AT+GATTSSTARTSERV=1,14
|
注意
|
-
|
AT+GATTSDELALLSERV 删除指定server上的所有服务
格式
|
AT+GATTSDELALLSERV=<server_id>
|
响应
|
|
参数说明
|
<server_id>:服务端id
|
示例
|
AT+GATTSDELALLSERV=1
|
注意
|
-
|
AT+GATTSSENDRSP 发送响应
格式
|
AT+GATTSSENDRSP=<server_id,conn_handle,request_id,status,offset,value_len,value>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <conn_handle>:连接句柄
- <request_id>:请求id
- <status>:请求结果
- <offset>:偏移
- <value_len>:值长度
- <value>:值
|
示例
|
AT+GATTSSENDRSP=1,0,1,0,0,2,0x4562
|
注意
|
值是长度为值长度两倍的字符串
|
AT+GATTSSNDNTFY 发送通知或指示
格式
|
AT+GATTSSNDNTFY=<server_id,conn_handle,attr_handle,value_len,value>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <conn_handle>:连接句柄
- <attr_handle>:偏移
- <value_len>:值长度
- <value>:值
|
示例
|
AT+GATTSSNDNTFY=1,0,9,7,0x00000000000014
|
注意
|
值是长度为值长度两倍的字符串
|
AT+GATTSSNDNTFYBYUUID 根据uuid发送通知或指示
格式
|
AT+GATTSSNDNTFYBYUUID=<server_id,conn_handle,chara_uuid,start_handle,end_handle,value_len,value>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <conn_handle>:连接句柄
- <chara_uuid>:特征uuid
- <start_handle>:起始句柄(0~255)
- <end_handle>:结束句柄(0~255)
- <value_len>:值长度
- <value>:值
|
示例
|
AT+GATTSSNDNTFYBYUUID=1,0,0x2a4d,1,9,7,0x00000000000014
|
注意
|
值是长度为值长度两倍的字符串
|
AT+GATTSREGCBK 注册GATT服务端回调函数
格式
|
AT+GATTSREGCBK
|
响应
|
|
参数说明
|
-
|
示例
|
AT+GATTSREGCBK
|
注意
|
-
|
AT+GATTSSETMTU 在连接之前设置server rx mtu
格式
|
AT+GATTSSETMTU=<server_id,mtu_size>
|
响应
|
|
参数说明
|
- <server_id>:服务端id
- <mtu_size>:mtu大小(最大值:517)
|
示例
|
AT+GATTSSETMTU=1,23
|
注意
|
MTU默认值为23。
|
BLE测试模式AT指令
BLE测试模式AT指令一览表
指令
|
描述
|
AT+BLEFACCALLBACK
|
注册BLE命令回调(没有相应退出操作)
|
AT+BLETX
|
BLE常发指令
|
AT+BLERX
|
BLE常收指令
|
AT+BLETRXEND
|
BLE常发、常收停止指令
|
AT+BLERST
|
BLE软件复位指令
|
AT+SLEENABLE
|
SLE使能指令(没有相应退出操作)
|
AT+BLEFACCALLBACK
|
注册SLE命令回调(没有相应退出操作)
|
AT+SLETX
|
SLE常发指令
|
AT+SLERX
|
SLE常收指令
|
AT+SLETRXEND
|
SLE常发、常收停止指令
|
AT+SLERST
|
SLE软件复位指令
|
AT+BTTXLO
|
射频单音指令
|
BLE测试模式AT指令描述
说明:
BLE测试模式命令,在AT+BLEENABLE指令下发后可用。
AT+BLEFACCALLBACK 注册ble状态回调
格式
|
AT+BLEFACCALLBACK
|
响应
|
|
示例
|
AT+BLEFACCALLBACK
|
注意
|
BLE测试前先注册回调,没有相应退出操作,测试BLE指令的前置条件,上电后发一次即可,重复发易出现问题。
|
AT+BLETX 开始ble常发
格式
|
AT+BLETX=<freq>,<payload_len>,<payload_type>,<phy>
|
响应
|
|
参数说明
|
- <freq>:发送频点
发送频率范围是(2N+2402)MHz,其中N即freq,范围0~39,频率有效范围为2402~2480 MHz
- <payload_len>:包长度
37~255 Byte。
- <payload_type>:发包模式
0:PRBS9
1:11110000
2:10101010
3:PRBS15
4:11111111
5:00000000
6:00001111
7:01010101
- <phy>:PHY类型
1:1M PHY
2:2M PHY
3:Coded PHY with S=8 data coding
4:Coded PHY with S=2 data coding
|
示例
|
AT+BLETX=0,255,0,1
|
注意
|
参数为十进制,中间“,”不可省略
|
AT+BLERX 开始ble常收
格式
|
AT+BLERX=<freq>,<phy>,<modulation_index>
|
响应
|
|
参数说明
|
|
示例
|
AT+BLERX=0,1,0
|
注意
|
参数为十进制,中间“,”不可省略
|
AT+BLETRXEND 结束ble常发或常收
格式
|
AT+BLETRXEND
|
响应
|
|
示例
|
AT+BLETRXEND
回复:
OK
status:0x0, num_packets:0x3e8
说明:在RX结束后发送收包指令得到回复num_packets:0x3e8说明收到1000包。
|
注意
|
停止RX时保证在仪表发完包后执行。num_packet在RX结束后关注, num_packet:收包数
为避免丢包,停止RX时要保证在仪表完成发包后执行。
|
AT+BLERST 软复位ble
格式
|
AT+BLERST
|
响应
|
|
示例
|
AT+BLERST
|
注意
|
BLE软件复位指令,在进行BLE RF测试前先发BLE复位指令恢复软件状态。
|
SLE
SLE AT指令一览表
指令
|
描述
|
AT+SLEENABLE
|
SLE使能。
|
AT+SLESETADVPAR
|
设置SLE广播参数。
|
AT+SLESETADVDATA
|
设置指令。
|
AT+SLESTARTADV
|
起SLE广播。
|
AT+SLESTOPADV
|
停SLE广播。
|
AT+SLESETNAME
|
设置本端名称。
|
AT+SLEGETNAME
|
获取本端名称。
|
AT+SLESETADDR
|
设置本端地址。
|
AT+SLEGETADDR
|
获取本端地址。
|
AT+SLESETPHY
|
设置SLE PHY。
|
AT+SLESETDEFAULTCONNP
|
设置SLE 默认连接参数。
|
AT+SLESETMCS
|
设置SLE连接mcs传输特性。
|
AT+SLEGETBONDDEV
|
获取绑定设备状态。
|
AT+SLECONNPARUPD
|
星闪逻辑链路更新参数。
|
AT+SLEREADPEERRSSI
|
读取对端rssi。
|
AT+SSAPSADDSRV
|
注册服务端。
|
AT+SSAPSDELALLSRV
|
删除服务端。
|
AT+SSAPSSYNCADDSERV
|
添加服务同步。
|
AT+SSAPSSYNCADDPROPERTY
|
添加属性同步。
|
AT+SSAPSSYNCADDDESCR
|
添加属性描述符同步。
|
AT+SSAPSSTARTSERV
|
start service。
|
AT+SSAPSSNDNTFY
|
服务端向客户端发送通知。
|
AT+SSAPSNTFYBYUUID
|
服务端向客户端通过uuid发送通知。
|
AT+SSAPSSNDRESP
|
服务端向客户端发送响应。
|
AT+SSAPSREGCBK
|
服务端注册回调函数。
|
SLE AT指令描述
SLE使能
设置指令
|
AT+SLEENABLE
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SLEENABLE
|
注意
|
|
SLE去使能
设置指令
|
AT+SLEDISABLE
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SLEDISABLE
|
注意
|
-
|
注册启停广播与扫描回调
表 1
设置指令
|
AT+SLEATCOMMONREGCBK
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SLEATCOMMONREGCBK
|
注意
|
此命令需在SLE使能AT+SLEENABLE后下发, 注册该回调后才会启停广播与扫描的回调结果。
|
设置SLE广播参数
设置指令
|
AT+SLESETADVPAR=<announce_handle>,<announce_mode>,<announce_interval_min>,<announce_interval_max>,<own_addr_type>,<own_addr_addr>,<peer_addr_type>,<peer_addr_addr>
|
响应
|
|
参数说明
|
- <announce_handle>:广播句柄,取值范围[1, 0x10]
- <announce_mode>:广播类型
0x00:不可连接不可扫描
0x01:可连接不可扫描
0x02:不可连接可扫描
0x03:可连接可扫描
0x07:可连接可扫描定向
- <announce_interval_min>:广播周期最小值,0x000020~0xffffff,单位125μs
- <announce_interval_max>:广播周期最大值,0x000020~0xffffff,单位125μs
- <own_addr_type>:SLE本端地址类型
0:公有地址
6:随机地址
- <own_addr_addr>:SLE本端设备地址
- <peer_addr_type>:SLE对端设备地址类型
0:公有地址
6:随机地址
- <peer_addr_addr>:SLE对端设备地址
|
示例
|
AT+SLESETADVPAR=1,3,200,200,0,000000000000,0,000000000000
|
注意
|
此命令需在SLE使能AT+SLEENABLE后下发, SLE会使用own_addr_addr作为地址起广播。
|
设置SLE广播数据
设置指令
|
AT+SLESETADVDATA=<adv_handle>,<announce_data_len>,<seek_rsp_data_len>,<announce_data>,<seek_rsp_data>
|
响应
|
|
参数说明
|
- <adv_handle>:广播句柄,取值范围:[1, 0x10]
- <announce_data_len>:广播数据长度,取值范围:一个字节, 0-231, 剩余字段预留
- <seek_rsp_data_len>:扫描响应数据长度,取值范围:一个字节, 0-231, 剩余字段预留
- <announce_data>:广播数据,hex类型字符串,announce_data_len个字节, 最大长度462个字符
- <seek_rsp_data>:扫描响应数据,hex类型字符串,seek_rsp_data_len个字节, 最大长度462个字符
|
示例
|
AT+SLESETADVDATA=1,10,4,aabbccddeeff11223344,11224455
|
注意
|
此命令需在SLE使能AT+SLEENABLE后下发。
|
起SLE广播
设置指令
|
AT+SLESTARTADV=<adv_handle>
|
响应
|
|
参数说明
|
<adv_handle>:广播句柄,取值范围:1, 0x10
|
示例
|
AT+SLESTARTADV=1
|
注意
|
此命令需在SLE使能AT+SLEENABLE后下发。
|
停SLE广播
设置指令
|
AT+SLESTOPADV=<adv_handle>
|
响应
|
|
参数说明
|
<adv_handle>:广播句柄,取值范围:[1, 0x10]
|
示例
|
AT+SLESTOPADV=1
|
注意
|
此命令需在SLE起广播AT+SLESTARTADV=1后下发。
|
设置本端名称
设置指令
|
AT+SLESETNAME
|
响应
|
|
参数说明
|
<len>:name长度
<name>:名字
|
示例
|
AT+SLESETNAME=7,SDKTEST
|
注意
|
-
|
获取本端名称
设置指令
|
AT+SLEGETNAME
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SLEGETNAME
|
注意
|
-
|
设置本端地址
设置指令
|
AT+SLESETADDR
|
响应
|
|
参数说明
|
- <addr_type>:地址类型, 当前仅支持联盟分配地址标识-0
- <addr>:地址
|
示例
|
AT+SLESETADDR=0,0x000000000001
|
注意
|
-
|
获取本端地址
设置指令
|
AT+SLEGETADDR
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SLEGETADDR
|
注意
|
-
|
星闪逻辑链路更新参数
设置指令
|
AT+SLECONNPARUPD=<conn_id>,<interval_min>,<interval_max>,<max_latency>,<supervision_timeout>
|
响应
|
|
参数说明
|
- <conn_id>:连接ID
- <interval_min>:链路调度最小间隔,取值范围:[0x0002, 0x7D00],单位125μs
- <interval_max>:链路调度最大间隔,取值范围:[0x0002, 0x7D00],单位125μs
- <max_latency>:延迟周期,单位slot,该值表示在设置值的周期内可以不回复,为0时则表示每包都需回复, 取值范围[0, 0x1F3]
- <supervision_timeout>:超时时间,单位10ms, 取值范围[0xA, 0xC80]
|
示例
|
AT+SLECONNPARUPD=0,20,20,0,500
|
注意
|
1. 参数配置需满足公式:supervision_timeout * 10 > ((1 + max_latency) * (interval_max >> 2)
2. interval_min需要小于等于interval_max
|
该命令的作用:读取当前SLE ACB 链路的RSSI信号强度,RSSI(Received Signal Strength Indicator)是接收信号的强度指示。具体含义
设置指令
|
AT+SLEREADPEERRSSI=<conn_id>
|
响应
|
|
参数说明
|
<conn_id>:连接ID
|
示例
|
AT+SLEREADPEERRSSI=0
|
注意
|
-
|
设置SLE PHY
默认1M 4M暂时不支持
该命令作用:某些场景下需要高的传输速率,此时就通过设置tx_phy、rx_phy参数为2M。如果两端都支持2M,才能设置成功。
设置指令
|
AT+SLESETPHY=<conn_id>,<tx_phy>,<rx_phy>,<tx_format>,<rx_format>,<tx_pilot_density>,<rx_pilot_density>,<g_feedback>,<t_feedback>
|
响应
|
|
参数说明
|
- <conn_id>:连接id
- <tx_phy>:tx phy值
0:1M PHY
1:2M PHY
2:4M PHY
- <rx_phy>:tx phy值
0:1M PHY
1:2M PHY
2:4M PHY
- <tx_format>:取值范围为0~13
- <rx_format>:取值范围为0~13
- <tx_pilot_density>:取值范围为0~3
- <rx_pilot_density>:取值范围为0~3
- <g_feedback>:取值范围为0~63
- <t_feedback>:取值范围为0~7
|
示例
|
AT+SLESETPHY=0,1,1,1,1,2,2,0,0
|
注意
|
tx_ph与rx_phy的取值范围: 0-0xFF, 其余字段为保留字段, 下发后不生效
|
设置SLE连接mcs传输特性
设置指令
|
AT+SLESETMCS =<conn_id>,<mcs>
|
响应
|
|
参数说明
|
<conn_id>:SLE连接id(AT+SLECONN指令执行成功以后,返回的回调里面打印)
<mcs>:conn_id对应的连接的传输方式
|
示例
|
AT+SLESETMCS=0,6
|
注意
|
-
|
获取绑定设备
设置指令
|
AT+SLEGETBONDDEV
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SLEGETBONDDEV
|
注意
|
-
|
注册服务端
设置指令
|
AT+SSAPSADDSRV=<uuid>
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SSAPSADDSRV=0x1234
|
注意
|
-
|
去注册服务端
设置指令
|
AT+SSAPSDELALLSRV
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SSAPSDELALLSRV
|
注意
|
-
|
添加服务同步
设置指令
|
AT+SSAPSSYNCADDSERV=<uuid>,<is_primary>
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SSAPSSYNCADDSERV=0x2222,1
|
注意
|
-
|
属性参数说明:
typedef enum {
SSAP_PERMISSION_READ = 0x01, /*可读*/
SSAP_PERMISSION_WRITE = 0x02, /*可写*/
SSAP_PERMISSION_ENCRYPTION_NEED = 0x04, /*需要加密*/
SSAP_PERMISSION_AUTHENTICATION_NEED = 0x08, /*需要认证*/
SSAP_PERMISSION_AUTHORIZATION_NEED = 0x10, /*需要授权*/
} ssap_permission_t;
typedef enum {
SSAP_OPERATE_INDICATION_BIT_READ = 0x01, /*数据值可被读取*/
SSAP_OPERATE_INDICATION_BIT_WRITE_NO_RSP = 0x02, /*数据值可被写入,写入后无反馈*/
SSAP_OPERATE_INDICATION_BIT_WRITE = 0x04, /*数据值可被写入,写入后产生反馈给客户端*/
SSAP_OPERATE_INDICATION_BIT_NOTIFY = 0x08, /*数据值通过通知方式传递给客户端*/
SSAP_OPERATE_INDICATION_BIT_INDICATE = 0x10, /*数据值通过指示方式传递给客户端*/
SSAP_OPERATE_INDICATION_BIT_BROADCAST = 0x20, /*数据值可携带在广播中*/
SSAP_OPERATE_INDICATION_BIT_DESCRITOR_WRITE = 0x100, /*数据值说明描述符可被写入*/
SSAP_OPERATE_INDICATION_MAX, /*操作指示最大值 */
} ssap_operate_indication_t;
添加属性同步
设置指令
|
AT+SSAPSSYNCADDPROPERTY=<service_handle>,<uuid>,<permissions>,<operate_indication>,<value_len>,<value>
|
响应
|
|
参数说明
|
- <service_handle>:服务的hadle
- <uuid>:SSAP 特征 UUID
- <permissions>:特征权限
0x01:可读
0x02:可写
0x04:需要加密
0x08:需要认证
0x10:需要授权
注:多个权限类型使用'|'后的值, 如可读可写需要授权为, 0x01|0x02|0x08 值为0x0B
- <operate_indication>:操作指示
0x01:数据值可被读取
0x02:数据值可被写入,写入后无反馈
0x04:数据值可被写入,写入后产生反馈给客户端
0x08:数据值通过通知方式传递给客户端
0x10:数据值通过指示方式传递给客户端
0x20:数据值可携带在广播中
0x100:数据值说明描述符可被写入
0x200:客户端描述符可被写入
0x400:服务端描述符可被写入
注:多个权限类型使用'|'后的值, 如可读可写需要授权为, 0x01|0x02 值为0x03
- <value_len>:响应的数据长度
- <value>:响应的数据
|
示例
|
AT+SSAPSSYNCADDPROPERTY=1,0x2323,5,5,2,0x1234
|
注意
|
数据读写时,会依据<permissions>和<operate_indication>中的具体bit位来判断操作是否允许。比如<operate_indication>为0(不允许读写数据),则对端读写数据会被拒绝
|
添加属性描述符同步
设置指令
|
AT+SSAPSSYNCADDDESCR=<service_handle>,<property_handle>,<uuid>,<permissions>,<operate_indication>,<type>,<value_len>,<value>
|
响应
|
|
参数说明
|
- <service_handle>:服务handle
- <property_handle>:属性handle
- <uuid>:SSAP 描述符 UUID
- <permissions>:特征权限
0x01:可读
0x02:可写
0x04:需要加密
0x08:需要认证
0x10:需要授权
注:多个权限类型使用'|'后的值, 如可读可写需要授权为, 0x01|0x02|0x08 值为0x0B
- <operate_indication>:操作指示
0x01:数据值可被读取
0x02:数据值可被写入,写入后无反馈
0x04:数据值可被写入,写入后产生反馈给客户端
0x08:数据值通过通知方式传递给客户端
0x10:数据值通过指示方式传递给客户端
0x20: 数据值可携带在广播中
0x100:数据值说明描述符可被写入
注:多个权限类型使用'|'后的值, 如可读可写需要授权为, 0x01|0x02 值为0x03
- <type>:描述符类型
- <value_len>:数据长度
- <value>:数据
|
示例
|
AT+SSAPSSYNCADDDESCR=1,2,0x3333,5,5,2,2,0x0200
|
注意
|
-
|
服务端向客户端发送通知
设置指令
|
AT+SSAPSSNDNTFY=<conn_id>,<handle>,<type>,<value_len>,<value>
|
响应
|
|
参数说明
|
- <conn_id>:服务handle
- <handle>:属性handle
- <type>:SSAP 特征类型
0:特征值
1:属性说明描述符
2:客户端配置描述符
3:服务端配置描述符
4:格式描述符
5:服务管理保留描述符,0x05–0x1F
0xFF:厂商自定义描述符
- <value_len>:数据长度
- <value>:数据
|
示例
|
AT+SSAPSSNDNTFY=0,2,0,2,0x0200
|
注意
|
-
|
服务端向客户端通过uuid发送通知
设置指令
|
AT+SSAPSNTFYBYUUID=<conn_id>,<uuid>,<start_hdl>,<end_hdl>,<type>,<value_len>,<value>
|
响应
|
|
参数说明
|
- <conn_id>:服务handle
- <uuid>:属性uuid
- <start_hdl>:开始句柄
- <end_hdl>:结束句柄
- <type>:SSAP 特征类型
0:特征值
1:属性说明描述符
2:客户端配置描述符
3:服务端配置描述符
4:格式描述符
5:服务管理保留描述符,0x05–0x1F
0xFF:厂商自定义描述符
- <value_len>:数据长度
- <value>:数据
|
示例
|
AT+SSAPSNTFYBYUUID=0,0x1234,0,0xFFFF,0,2,0x0200
|
注意
|
-
|
服务端发送响应
发送响应原因说明:
typedef enum {
ERRCODE_SSAP_INVALID_PDU = ERRCODE_SLE_SSAP_BASE + 0x01, /*服务端接收的 PDU 无效*/
ERRCODE_SSAP_PDU_NOT_SUPPORT = ERRCODE_SLE_SSAP_BASE + 0x02, /*服务端不支持处理接收的PDU*/
ERRCODE_SSAP_UNKNOW = ERRCODE_SLE_SSAP_BASE + 0x03, /*服务端执行请求时发生未知错误*/
ERRCODE_SSAP_INVALID_HANDLE = ERRCODE_SLE_SSAP_BASE + 0x04, /*请求中的句柄无效*/
ERRCODE_SSAP_INSUFFICIENT_RESOURCES = ERRCODE_SLE_SSAP_BASE + 0x05, /*服务端没有足够资源完成请求*/
ERRCODE_SSAP_PROHIBIT_READING = ERRCODE_SLE_SSAP_BASE + 0x06, /*服务端禁止客户端读取值*/
ERRCODE_SSAP_PROHIBIT_WRITE = ERRCODE_SLE_SSAP_BASE + 0x07, /*服务端禁止客户端写入值*/
ERRCODE_SSAP_CLIENT_NOT_AUTHENTICATED = ERRCODE_SLE_SSAP_BASE + 0x08, /*客户端未经过认证*/
ERRCODE_SSAP_CLIENT_NOT_AUTHORIZATION = ERRCODE_SLE_SSAP_BASE + 0x09, /*客户端未被授权*/
ERRCODE_SSAP_BEARER_NOT_ENCRYPTED = ERRCODE_SLE_SSAP_BASE + 0x0A, /*传输 PDU 的承载未加密*/
ERRCODE_SSAP_ENTRIES_NOT_FOUND = ERRCODE_SLE_SSAP_BASE + 0x0B, /*服务端未找到对应条目*/
ERRCODE_SSAP_DATA_NOT_FOUND = ERRCODE_SLE_SSAP_BASE + 0x0C, /*服务端未找到对应类型数据*/
ERRCODE_SSAP_INCORRECT_DATA_TYPE = ERRCODE_SLE_SSAP_BASE + 0x0D, /*客户端发送写入数据类型不符的错误*/
ERRCODE_SSAP_INCORRECT_DATA_VALUE = ERRCODE_SLE_SSAP_BASE + 0x0E, /*客户端发送写入值不符的错误*/
ERRCODE_SSAP_VALUE_OUT_OF_RANGE = ERRCODE_SLE_SSAP_BASE + 0x0F, /*客户端写入的值超出范围*/
ERRCODE_SSAP_UPPERLAYER_APPLICATION_ERROR_MIN = ERRCODE_SLE_SSAP_BASE + 0xAF, /*预留给上层协议定义应用错误*/
ERRCODE_SSAP_UPPERLAYER_APPLICATION_ERROR_MAX = ERRCODE_SLE_SSAP_BASE + 0xFF, /*预留给上层协议定义应用错误*/
} errcode_sle_ssap_t;
设置指令
|
AT+SSAPSSNDRESP=<conn_id>,<request_id>,<status>,<value_len>,<value>
|
响应
|
|
参数说明
|
- <conn_id>:服务handle
- <request_id>:请求id
- <status>:发送响应原因
- <value_len>:数据长度
- <value>:数据
|
示例
|
AT+SSAPSSNDRESP=0,0,1,2,0x0200
|
注意
|
-
|
服务端注册回调
设置指令
|
AT+SSAPSREGCBK
|
响应
|
|
参数说明
|
-
|
示例
|
AT+SSAPSREGCBK
|
注意
|
-
|
start service
设置指令
|
AT+SSAPSSTARTSERV=<service_handle>
|
响应
|
|
参数说明
|
<service_handle>:服务handle
|
示例
|
AT+SSAPSSTARTSERV=1
|
注意
|
-
|
服务端发起信息交换
设置指令
|
AT+SSAPSSETINFO=<mtu_size>,<version>
|
响应
|
|
参数说明
|
- <mtu_size>:ssap 通道mtu
最小值:251
最大值:1500
- <version>:版本号(预留字段)。
|
示例
|
AT+SSAPSSETINFO=251,1
|
注意
|
-
|
SLE测试模式AT指令
SLE测试模式AT指令一览表
指令
|
描述
|
AT+SLEFACCALLBACK
|
注册SLE命令回调(没有相应退出操作)
|
AT+SLETX
|
SLE常发指令
|
AT+SLERX
|
SLE常收指令
|
AT+SLETRXEND
|
SLE常发、常收停止指令
|
AT+SLERST
|
SLE软件复位指令
|
SLE测试模式AT指令描述
说明:
SLE测试模式命令,在AT+SLEENABLE指令下发后可用。
AT+SLEFACCALLBACK 注册SLE状态回调
格式
|
AT+SLEFACCALLBACK
|
响应
|
[AT] sle factory register cbks.
|
示例
|
AT+SLEFACCALLBACK
|
注意
|
SLE测试前先注册回调,没有相应退出操作,测试SLE指令的前置条件之一。
上电后发一次即可,重复发易出现问题。
|
AT+SLETX 开始sle常发
格式
|
AT+SLETX=<freq>,<pwr>,<payload_len>,<payload_type>,<phy>,<format>,<TX_rate>,<pilot>,<polar>,<interval>
|
响应
|
|
参数说明
|
- <freq>:发送频点
0~78:射频信道号依次对应对应2402~2480 MHz。
- <pwr>:发送功率
- GFSK:
0:4dBm
1:6dBm
2:8dBm
3:10dBm
4:12dBm
5:14dBm
- QPSK/8PSK:
0:2dBm
1:4dBm
2:6dBm
3:8dBm
4:10dBm
5:12dBm
- <payload_len>:包长度
根据星闪协议,包长范围是0~255 Byte
- <payload_type>:发包模式
0:PRBS9
1:11110000
2:10101010
3:PRBS15
4:11111111
5:00000000
6:00001111
7:01010101
- <phy>:PHY类型
0:1M
1:2M
4:4M
- <format>:帧类型
0:无线帧类型1
2:无线帧类型2
- <TX_rate>:速率
0:GFSK
2:QPSK
3:8PSK
- <pilot>:导频
0:无导频
1:1:1
2:4:1
3:16:1
- <polar>:编码
0:无编码
2:3/4
- <interval>:间隔
经验证间隔需要[6,255] (单位125μs), payload length为255Byte时,建议interval设置为50
|
示例
|
AT+SLETX=0,5,255,0,1,2,2,0,0,50
|
注意
|
参数为十进制,中间“,”不可省略
|
AT+SLERX 开始sle常收
格式
|
AT+SLERX=<freq>,<phy>,<format><pilot><interval>
|
响应
|
|
参数说明
|
- <freq>:发送频点
0~78:射频信道号依次对应对应2402~2480 MHz。
- <phy>:PHY类型
0:1M
1:2M
4:4M
- <format>:帧类型
0:无线帧类型1
2:无线帧类型2
- <pilot>:导频
0:无导频
1:1:1
2:4:1
3:16:1
- <interval>:间隔
经验证间隔需要[6,255] (单位125μs), payload length为255Byte时,建议interval设置为50
|
示例
|
AT+SLERX=0,0,0,0,50
|
注意
|
参数为十进制,中间“,”不可省略
|
AT+SLETRXEND 结束sle常发或常收
格式
|
AT+SLETRXEND
|
响应
|
|
示例
|
AT+SLETRXEND
回复:
OK
status:0x0,num_packet:0x3e8,rssi:0x81
说明:如仪表发1000包后发结束指令,测试RX的收报数为1000包(0x3e8),测试RX的接收能量rssi为-127dbm(0x81)
如果发TX后执行结束指令,则收报数为0, rssi为0。
|
注意
|
此指令在执行SLE RF TX、RX后需要停止时执行。rssi和num_packet在RX结束后关注,rssi:接收能量值, num_packet:收包数
为避免丢包,停止RX时要保证在仪表完成发包后执行
|
AT+SLERST 软复位sle
格式
|
AT+SLERST
|
响应
|
|
示例
|
AT+SLERST
|
注意
|
软件复位指令
|
PLAT模块AT指令
读取NV项
设置指令
|
AT+NVREAD=<key_id>
|
响应
|
|
参数说明
|
|
示例
|
AT+NVREAD=0x3 //读取ID为0x3的NV项
NV[0x3] is permanent //该NV项持有永久属性,无法通过命令或者接口修改NV值
NV[0x3] is non_upgrade //该NV项持有不可升级属性,无法通过OTA修改NV值
nv_value[0] = [0x1] //该NV项长度为一个字节,第一个字节值为1
OK
|
注意
|
-
|
修改NV项
设置指令
|
AT+NVWRITE=<key_id>,<attr>,<length>,<value>
|
响应
|
|
参数说明
|
<key_id>:需要修改的NV项的ID
<attr>:需要修改的属性值,
- 0:普通NV
- 1:永久NV,不可修改/升级
- 2. 加密NV,可修改,不可OTA升级
- 4:不可升级NV,可修改,不可OTA升级
<length>:需要修改的值的长度,对于非加密NV项,支持最大值为4060;加密NV项为4032
<value>:需要修改的值,每两个字符识别为一个字节
|
示例
|
AT+NVWRITE=0x5,0,6,010203040506 将ID为0x5的NV项的值修改为1~6。
nv_value[0] = [0x1]
nv_value[1] = [0x2]
nv_value[2] = [0x3]
nv_value[3] = [0x4]
nv_value[4] = [0x5]
nv_value[5] = [0x6]
OK
|
注意
|
- value输入时不要加'0x'头,不然会影响对length的判断
|
打印版本号
设置指令
|
AT+CSV
|
响应
|
|
参数说明
|
-
|
示例
|
AT+CSV
|
注意
|
-
|
打印死机信息
设置指令
|
AT+DUMP
|
响应
|
- 成功:OK,打印上一次死机时保存的信息
- 失败:ERROR
|
参数说明
|
-
|
示例
|
AT+DUMP
|
注意
|
-
|
写入efuse mac
设置指令
|
AT+EFUSEMAC=<mac_addr>,<type>
|
响应
|
|
参数说明
|
<mac_addr>:需要设置的mac_addr,全0,全1,组播地址会自动返错,设置失败
<type>:设置mac地址的类型,
- 0:写入wifi mac地址到eFuse
- 1:写入wifi mac地址到nv
- 2:写入sle mac地址到eFuse(不支持)
- 3:写入sle mac地址到nv
|
示例
|
AT+EFUSEMAC=00:22:33:44:55:cc,0 写入wifi mac地址,最多可写三次,软件使用最后一次写入值
OK
AT+EFUSEMAC=00:22:33:44:55:44,3 写入sle mac地址到nv
OK
|
注意
|
-
|
读取efuse mac
设置指令
|
AT+EFUSEMAC?
|
响应
|
|
参数说明
|
-
|
示例
|
AT+EFUSEMAC?
+EFUSEMAC: NV MAC 00:00:00:00:**:** // 打印NV存储的mac地址
+EFUSEMAC: EFUSE MAC 00:22:33:44:**:** // 打印写入efuse中的wifi mac地址(打印最后一次写入的地址)
+EFUSEMAC: Efuse mac chance(s) left: 0 times. // 提示efuse中wifi的mac地址还能写几次(最多写三次)
+EFUSEMAC: EFUSE SLE MAC 00:22:33:44:**:** // 打印efuse中保存的sle mac地址
+EFUSEMAC: NV SLE MAC 00:00:00:00:**:** // 打印NV存储的sle mac地址
OK
|
注意
|
-
|
获取系统时间
设置指令
|
AT+DATE
|
响应
|
|
参数说明
|
-
|
示例
|
AT+DATE
Thu Jan 1 09:46:06 1970
OK
|
注意
|
-
|
设置系统时间
设置指令
|
AT+DATE=<time_format>
|
响应
|
|
参数说明
|
-
|
示例
|
AT+DATE=05/14
Thu May 14 09:46:15 1970
AT+DATE=05:14
Thu May 14 05:14:55 1970
AT+DATE=2024/05
Thu May 14 05:16:55 2024
AT+DATE=05:14:15
Thu May 14 05:14:15 2024
AT+DATE=20230413
Thu Apr 13 05:15:14 2023
AT+DATE=2022/03/12
Thu Mar 12 05:16:14 2022
|
注意
|
-
|
设置IO工作模式
设置指令
|
AT+SETIOMODE=<ID>,<MODE>,<PULL>,<DS>
|
响应
|
|
参数说明
|
- <ID>:0~47
- <MODE>:0~7,IO管脚复用模式,各管脚支持的复用模式不同,具体支持情况请联系技术支持人员确认。
- <PULL>:引脚上下拉状态,范围0~2。
0:去使能;
1:上拉;
2:下拉;
- <DS>:0~7,引脚驱动能力,从7到0,驱动能力依次减弱
|
示例
|
AT+SETIOMODE=2,2,2,2
+SETIOMODE:<ID>,<MODE>,<PULL>,<DS>
OK
|
注意
|
-
|
查询IO工作模式
设置指令
|
AT+GETIOMODE=<ID>
|
响应
|
|
参数说明
|
|
示例
|
AT+GETIOMODE=1
+GETIOMODE:<ID>,<MODE>,<PULL>,<DS>
OK
|
注意
|
-
|
设置GPIO工作为输入或输出
设置指令
|
AT+GPIODIR=<ID>,<DIR>
|
响应
|
|
参数说明
|
- <ID>:0~47
- <DIR>:
0:输入;
1:输出。
|
示例
|
AT+GPIODIR=2,1
+GPIODIR:<ID>,<DIR>
OK
|
注意
|
当查询的ID对应管脚不为GPIO复用状态时会返错
|
设置GPIO的电平状态
设置指令
|
AT+WTGPIO=<ID>,<LEVEL>
|
响应
|
|
参数说明
|
- <ID>:0~47
- <LEVEL>:0为低电平,1为高电平
|
示例
|
AT+WTGPIO=2,1
+WRGPIO:<ID>,<DIR>,<LEVEL>
OK
|
注意
|
当查询的ID对应管脚不为输出模式时会返错
|
读取GPIO的电平状态
设置指令
|
AT+RDGPIO=<ID>
|
响应
|
|
参数说明
|
|
示例
|
AT+RDGPIO=2
+RDGPIO:<ID>,<DIR>,<LEVEL>
OK
- <DIR>:
0:输入;
1:输出。
- <LEVEL>:
0:低电平;
1:高电平。
|
注意
|
-
|
写入厂商码
设置指令
|
AT+WRITEACCC=<vendor_code>
|
响应
|
|
参数说明
|
|
示例
|
AT+WRITEACCC=0x1234
OK
|
注意
|
-
|
系统低功耗设置
设置指令
|
AT+SLP=<sleep_mode>
|
响应
|
|
参数说明
|
- <sleep_mode>:0~2
0:关闭系统低功耗
1:系统低功耗配置浅睡模式
2:系统低功耗配置深睡模式
|
示例
|
AT+SLP=2
OK
|
注意
|
-
|
超深睡设置
设置指令
|
AT+USLP=<AGPIO>
|
响应
|
|
参数说明
|
<AGPIO>:S_AGPIO软件标号。
WS53(S_AGPIO0~S_AGPIO9编号对应32~41)
|
示例
|
使用AGPIO3作为超深睡唤醒引脚。
AT+USLP=35
OK
|
注意
|
-
|
写入用户预留位
设置指令
|
AT+CUSTOMEFUSE=<efuse_data>[,<force>]
|
响应
|
|
参数说明
|
- <efuse_data>:0x0123456789abcdef2546565487341248,0x开头的128bit 16进制数,高位与efuse高位对应
- <force>:该参数为可选参数;表示是否强制写入,当设置为强制写入时,忽略要写入bit位的状态,efuse_data中为1的bit会确保为1,为0的bit不会被写入efuse;不输入该参数时,与该参数输入为0时效果相同
0:不强制写
1:强制写入
|
示例
|
按以下流程依次将最低位和次低位写1:
- AT+CUSTOMEFUSE=0x00000000000000000000000000000001
OK
该命令可以把最低bit位写为1,需要将最低位配置为1,其他不需要写入的bit位配置为0
- AT+CUSTOMEFUSE=0x00000000000000000000000000000002
ERROR
由于整个客户预留位已有最低位被写入,因此不能继续写入
- AT+CUSTOMEFUSE=0x00000000000000000000000000000002,1
OK
配置第二个参数为1后,可再次写入客户预留位。该命令执行完后,结合第一条命令,此时最低位和次低位都写为1,需要注意,因此查询整个客户预留位结果为0x00000000000000000000000000000003
|
注意
|
该命令只在产测版本可使用。
efuse_data数据位宽必须为128bit,为0的数据位不可省略。
写入eduse_data时需注意,要写入的bit位写1,不需要写入的bit位写0。
写入的bit位不能与之前已写入的bit位有重叠。
由于efuse只能将bit位从0写为1,不能从1写为0,本命令也有同样的约束。
|
查询用户预留位
设置指令
|
AT+CUSTOMEFUSE?
|
响应
|
|
参数说明
|
-
|
示例
|
AT+CUSTOMEFUSE?
RESERVED EFUSE:0x1032547698badcfeefcdab8967452301
OK
|
注意
|
该命令只在产测版本可使用
|
AT+SETUART 配置串口功能
设置指令
|
AT+SETUART=<debug_uart>,<at_uart>,<hso_uart>
|
响应
|
|
参数说明
|
- <debug_uart>:debug打印串口,取值范围:0~2,默认值为2
- <at_uart>:AT命令串口,取值范围:0、2,默认值为2
- <hso_uart>:HSO通信串口,取值范围:0~2,默认值为1
三个UART取值0、1、2对应的串口如下:
- 0:UART H1
- 1:UART H0
- 2:UART L0
|
示例
|
AT+SETUART=0,0,1
OK
AT+SETUART=0,1,2
OK
|
注意
|
- HSO必须独占一个串口。
- 该命令配置在单板重启后才能生效。
- 该命令在产测版本不支持,产测版本仅有打印
|
写入第二个用户预留位
须知:
该写入为不可逆操作,写入的EFUSE位为复用安全启动中根公钥HASH的EFUSE区域,写入该区域后,将无法使用安全启动功能。
设置指令
|
AT+CUSTOMEFUSEREUSEFAPC=<efuse_data>
|
响应
|
|
参数说明
|
- <efuse_data>:0x0123456789abcdef2546565487341248,0x开头的128bit 16进制数,高位与EFUSE高位对应
|
示例
|
AT+CUSTOMEFUSEREUSEFAPC=0x0123456789abcdef2546565487341248
OK
|
注意
|
- efuse_data数据位宽必须为128bit,高位为0时不可省略,该命令只在产测版本可使用。
- 该命令最多可执行成功两次,第二次写入时为在第一次写入内容的尾部追加写入,非覆盖。
|
查询第二个用户预留位
设置指令
|
AT+CUSTOMEFUSEREUSEFAPC?
|
响应
|
|
参数说明
|
-
|
示例
|
AT+CUSTOMEFUSEREUSEFAPC?
RESERVED2 EFUSE:0x1032547698badcfeefcdab8967452301
OK
|
注意
|
- 该命令只在产测版本可使用。
- 该命令优先读取第二组128bit数据,读取为空后(全0)会读取第一组数据,第一组数据也为空时,返回全0数据。
|
设置打印等级
设置指令
|
AT+LOGL=<level>
|
响应
|
|
参数说明
|
<level>:
- 0:debug级别
- 1:warn级别
- 2:error级别
|
示例
|
AT+LOGL=1 //设置打印等级
+LOGL:1
OK
AT+LOGL //查询打印等级
+LOGL:1
OK
|
注意
|
|