AT例程¶
1 功能概述¶
本代码示例主要演示AT指令集控制PAN3029的通信功能,通过串口助手发送AT指令。适用于对PAN3029模组的参数配置、性能测试、数据收发等。
2 环境要求¶
Board: PAN3029 开发板
Mini USB线2根,用于给开发板供电和查看串口打印Log和AT指令设置
J-Link下载器一个,用于程序下载
将 J1,J4用跳帽连接
4 使用说明¶
根据环境要求一节的介绍,正确连接2套 EVB 开发板的跳线,编译、下载程序:
在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验
观察串口打印的内容,理论上初始化成功后,串口会打印相关信息
一个设备AT指令配置发送,一个设备AT指令配置接收,进行通信测试
初始化后串口输出信息如下:
AT server initialize success.rf init ok.
AT指令配置进入接收:“AT+RF_RXMODE=100000\r\n”:
AT server initialize success.rf init ok.pan3029 enter rx mode
recv 'C' or 'c' exit rx mode
rf init ok
count:1,len:10,SNR:11.409351,RSSI:-38
count:2,len:10,SNR:10.518916,RSSI:-38
count:3,len:10,SNR:10.847712,RSSI:-38
count:4,len:10,SNR:10.352632,RSSI:-40
count:5,len:10,SNR:9.524857,RSSI:-40
count:6,len:10,SNR:11.206456,RSSI:-40
count:7,len:10,SNR:11.560946,RSSI:-40
count:8,len:10,SNR:9.493749,RSSI:-40
count:9,len:10,SNR:10.721609,RSSI:-40
count:10,len:10,SNR:10.684496,RSSI:-40
recv data timeout:100s
pan3029 exit rx mode
OK
AT指令配置进入发射:“AT+RF_TXMODE=10,10,1000\r\n”:
AT server initialize success.rf init ok.pan3029 enter tx mode
rf init ok
3029 tx datas done[1]
3029 tx datas done[2]
3029 tx datas done[3]
3029 tx datas done[4]
3029 tx datas done[5]
3029 tx datas done[6]
3029 tx datas done[7]
3029 tx datas done[8]
3029 tx datas done[9]
3029 tx datas done[10]
tx 10 pkgs success
pan3029 exit tx mode
OK
其它AT指令说明参考PAN3029_AT指令参考文档。
5AT指令语法¶
AT指令采用基于ASCII码的命令行,命令格式如下:
AT+
*表格1 AT指令格式*
域 |
说明 |
---|---|
AT+ |
命令消息前缀 |
CMD |
命令字符 |
OP |
指令操作符。可以是以下内容:“=”:表示参数设置“?”:表示查询参数的当前值“”:表示执行命令 |
para-1,para-2,….para-n |
表示设置的参数值 |
\r\n |
回车换行结束符,ASCII码为0x0D 0x0A |
注:
<>:表示必须包含的内容。
[]:表示可选的内容。
\r:回车结束符,ASCII码为0x0D。
\n:换行符,ASCII码为0x0A。
指令设置完成后,可以通过查询指令查看当前参数值,串口默认配置8N1,波特率115200。
6AT指令集¶
6.1 AT指令集总览¶
表格2 模组通用指令集
命令 |
描述 |
命令格式 |
---|---|---|
AT&L |
读取AT指令集列表 |
AT&L\r\n |
AT+DEEPSLEEPMODE |
设置模块进入deepsleep状态 |
AT+DEEPSLEEPMODE\r\n |
AT+SLEEPMODE |
设置模块进入sleep状态 |
AT+SLEEPMODE\r\n |
AT+STB1MODE |
设置模块进入stb1状态 |
AT+STB1MODE\r\n |
AT+STB2MODE |
设置模块进入stb2状态 |
AT+STB2MODE\r\n |
AT+STB3MODE |
设置模块进入stb3状态 |
AT+STB3MODE\r\n |
AT+RF_PARA |
设置/读取模块射频参数 |
详见之后章节 |
AT+FREQ |
设置/读取模块频率值 |
|
AT+CR |
设置/读取模块编码率CodeRate值 |
|
AT+BW |
设置/读取模块信道带宽BW值 |
|
AT+SF |
设置/读取模块扩频因子SF值 |
|
AT+PWR |
设置/读取模块功率挡位 |
|
AT+CRC |
设置/读取模块CRC校验功能开关 |
|
AT+LDR |
设置/读取模块低速率LDR功能开关 |
|
AT+MODEMMODE |
设置/读取模块波形功能选择 |
|
AT+PREAMLEN |
设置/读取模块前导码长度 |
|
AT+DCDC |
设置/读取模块DCDC功能开关 |
|
AT+RF_CARRYWAVE |
设置模块单载波功能开关 |
|
AT+RF_RXMODE |
设置模块进入接收状态 |
|
AT+RF_TXMODE |
设置模块发射数据 |
6.2 设置射频参数¶
*表格3 设置读取射频参数*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+RF_PARA?\r\n |
+RF_PARA=493000000,1,9,5,22,1,0,1,8,0OK |
参数说明 |
AT+RF_PARA= |
|
执行指令 |
AT+RF_PARA=490000000,4,9,11,22,1,0,1,8,0\r\n表示设置模组的频率490MHz,CR=4,BW=500K,SF=11,POWER=22,CRC打开,LDR关闭,modemMode=1,preamble=8,dcdc关闭 |
6.3 设置模块频率值¶
*表格4 设置读取模块频率值*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+FREQ?\r\n |
+FREQ=490000000OK |
参数说明 |
AT+FREQ=<freq[(Hz)]> |
|
执行指令 |
AT+FREQ=470000000\r\n表示设置模组的频率470MHz |
6.4 设置模块编码率CodeRate值¶
*表格5 设置读取模块编码率*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+CR?\r\n |
+CR=4OK |
参数说明 |
AT+CR=<CR[1-4]> |
|
执行指令 |
AT+CR=4\r\n表示设置模组的编码率CR=4 |
6.5 设置模块信道带宽BW值¶
*表格6 设置读取模块信道带宽BW值*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+BW?\r\n |
+BW=2OK |
参数说明 |
AT+BW=<BW[6(62.5K)-9(500K)]> |
|
执行指令 |
AT+BW=7\r\n表示设置模组的BW=125K |
6.6 模块扩频因子SF值¶
*表格7 设置读取模块扩频因子SF值*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+SF?\r\n |
+SF=11OK |
参数说明 |
AT+SF=<SF[5-12]> |
|
执行指令 |
AT+SF=7\r\n表示设置模组的SF=7 |
6.7 模块功率挡位¶
*表格8 设置读取模块功率挡位*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+PWR?\r\n |
+PWR=22OK |
参数说明 |
AT+PWR=<txpower[1-23]> |
|
执行指令 |
AT+PWR=22\r\n表示设置模组的功率挡位为22 |
6.8 模块CRC校验功能开关¶
*表格9 设置读取模块CRC校验功能*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+CRC?\r\n |
+CRC=1OK |
参数说明 |
AT+CRC=<crc[0/1]> |
|
执行指令 |
AT+CRC=1\r\n表示设置模组的CRC校验功能打开 |
6.9 模块低速率LDR功能开关¶
*表格10 设置读取模块低速率LDR功能*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+LDR?\r\n |
+LDR=0OK |
参数说明 |
AT+LDR=<low data rate[0/1]> |
|
执行指令 |
AT+LDR=1\r\n表示设置模组的LDR功能打开 |
6.10 模块波形功能选择¶
*表格11 设置读取模块波形*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+MODEMMODE?\r\n |
+MODEMMODE=1OK |
参数说明 |
AT+MODEMMODE=<MODEMMODE[1/2]> |
|
执行指令 |
AT+MODEMMODE=1\r\n表示设置模组的modemMode=1 |
6.11 模块前导码长度¶
*表格12 设置读取模块前导码长度*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+PREAMLEN?\r\n |
+PREAMLEN=8OK |
参数说明 |
AT+PREAMLEN=<preamble len[8-65535]> |
|
执行指令 |
AT+PREAMLEN=8\r\n表示设置模组的前导码长度为8 |
6.12 模块DCDC功能开关¶
*表格13 设置读取模块DCDC功能*
命令类型 |
命令格式 |
响应 |
---|---|---|
查询命令 |
AT+DCDC?\r\n |
+DCDC=0OK |
参数说明 |
AT+DCDC=<dcdc[0/1]> |
|
执行指令 |
AT+DCDC=1\r\n表示设置模组的DCDC功能打开 |
6.13 模块单载波功能¶
*表格14 设置模块单载波功能*
命令类型 |
命令格式 |
响应 |
---|---|---|
参数说明 |
AT+RF_CARRYWAVE=<mode[0/1]> |
|
执行指令 |
AT+RF_CARRYWAVE=1\r\n表示设置模组打开单载波功能,开始发射单载波。在打开单载波功能之前,可以根据需要使用其它AT指令设置需要发射的频率值和功率值。使用后,需要关闭单载波功能。 |
6.14 设置模块接收功能¶
*表格15 设置模块接收功能*
命令类型 |
命令格式 |
响应 |
---|---|---|
参数说明 |
AT+RF_RXMODE=<timeout[1000(ms)-1000000(ms)]> |
|
执行指令 |
AT+RF_RXMODE=10000\r\n表示设置模组10秒超时接收,接收到数据后会重置时间计数,继续超时接收10秒,直至10秒超时退出接收。如果需要中途退出,可以执行C\r\n指令。 |
6.15 设置模块发射功能¶
命令类型 |
命令格式 |
响应 |
---|---|---|
参数说明 |
AT+RF_TXMODE= |
|
执行指令 |
AT+RF_TXMODE=10,10,1000\r\n表示设置模组发送10次,包长为10的数据,数据发送间隔1000ms |