当前文档版本为 v0.7.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

AT例程

1 功能概述

本代码示例主要演示AT指令集控制PAN3029的通信功能,通过串口助手发送AT指令。适用于对PAN3029模组的参数配置、性能测试、数据收发等。

2 环境要求

  • Board: PAN3029 开发板

  • Mini USB线2根,用于给开发板供电和查看串口打印Log和AT指令设置

  • J-Link下载器一个,用于程序下载

  • 将 J1,J4用跳帽连接

3 编译和烧录

例程位置:01_HCSDK\Demo\AT_DEMO\MDK

打开目录下的pan3029.uvprojx工程,编译整个代码工程。

4 使用说明

根据环境要求一节的介绍,正确连接2套 EVB 开发板的跳线,编译、下载程序:

  1. 在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验

  2. 观察串口打印的内容,理论上初始化成功后,串口会打印相关信息

  3. 一个设备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+[OP][para-1,para-2,….para-n]<\r\n>

*表格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=,,,,,,,,,:频率值,单位赫兹(Hz):编码率CodeRate值,取值范围1-4(1=4/5,2=4/6,3=4/7,4=4/8):信道带宽BW值,取值范围6-9(6=62.5KHz,7=125KHz,8=250KHz,9=500KHz):扩频因子SF值,取值范围5-12:功率挡位,取值范围1-23(功率挡位,挡位值越大功率越大):CRC校验功能开关,取值范围0-1(0=关闭,1=开启):低速率LDR功能开关,取值范围0-1(0=关闭,1=开启):波形功能选择,取值范围1-2:前导码长度,取值范围8-65535:DCDC功能开关,取值范围0-1(0=关闭,1=开启)

执行指令

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)]>:频率值,单位赫兹(Hz)

执行指令

AT+FREQ=470000000\r\n表示设置模组的频率470MHz

6.4 设置模块编码率CodeRate值

*表格5 设置读取模块编码率*

命令类型

命令格式

响应

查询命令

AT+CR?\r\n

+CR=4OK

参数说明

AT+CR=<CR[1-4]>:编码率CodeRate值,取值范围1-4(1=4/5,2=4/6,3=4/7,4=4/8)

执行指令

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)]>:信道带宽BW值,取值范围6-9(6=62.5KHz,7=125KHz,8=250KHz,9=500KHz)

执行指令

AT+BW=7\r\n表示设置模组的BW=125K

6.6 模块扩频因子SF值

*表格7 设置读取模块扩频因子SF值*

命令类型

命令格式

响应

查询命令

AT+SF?\r\n

+SF=11OK

参数说明

AT+SF=<SF[5-12]>:扩频因子SF值,取值范围5-12

执行指令

AT+SF=7\r\n表示设置模组的SF=7

6.7 模块功率挡位

*表格8 设置读取模块功率挡位*

命令类型

命令格式

响应

查询命令

AT+PWR?\r\n

+PWR=22OK

参数说明

AT+PWR=<txpower[1-23]>:功率挡位,取值范围1-23(功率挡位,挡位值越大功率越大)

执行指令

AT+PWR=22\r\n表示设置模组的功率挡位为22

6.8 模块CRC校验功能开关

*表格9 设置读取模块CRC校验功能*

命令类型

命令格式

响应

查询命令

AT+CRC?\r\n

+CRC=1OK

参数说明

AT+CRC=<crc[0/1]>:CRC校验功能开关,取值范围0-1(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]>:低速率LDR功能开关,取值范围0-1(0=关闭,1=开启)

执行指令

AT+LDR=1\r\n表示设置模组的LDR功能打开

6.10 模块波形功能选择

*表格11 设置读取模块波形*

命令类型

命令格式

响应

查询命令

AT+MODEMMODE?\r\n

+MODEMMODE=1OK

参数说明

AT+MODEMMODE=<MODEMMODE[1/2]>:波形功能选择,取值范围1-2

执行指令

AT+MODEMMODE=1\r\n表示设置模组的modemMode=1

6.11 模块前导码长度

*表格12 设置读取模块前导码长度*

命令类型

命令格式

响应

查询命令

AT+PREAMLEN?\r\n

+PREAMLEN=8OK

参数说明

AT+PREAMLEN=<preamble len[8-65535]>:前导码长度,取值范围8-65535

执行指令

AT+PREAMLEN=8\r\n表示设置模组的前导码长度为8

6.12 模块DCDC功能开关

*表格13 设置读取模块DCDC功能*

命令类型

命令格式

响应

查询命令

AT+DCDC?\r\n

+DCDC=0OK

参数说明

AT+DCDC=<dcdc[0/1]>:DCDC功能开关,取值范围0-1(0=关闭,1=开启)

执行指令

AT+DCDC=1\r\n表示设置模组的DCDC功能打开

6.13 模块单载波功能

*表格14 设置模块单载波功能*

命令类型

命令格式

响应

参数说明

AT+RF_CARRYWAVE=<mode[0/1]>:单载波功能开关,取值范围0-1(0=关闭,1=开启)

执行指令

AT+RF_CARRYWAVE=1\r\n表示设置模组打开单载波功能,开始发射单载波。在打开单载波功能之前,可以根据需要使用其它AT指令设置需要发射的频率值和功率值。使用后,需要关闭单载波功能。

6.14 设置模块接收功能

*表格15 设置模块接收功能*

命令类型

命令格式

响应

参数说明

AT+RF_RXMODE=<timeout[1000(ms)-1000000(ms)]>:接收功能开关,默认取值大于1000ms,取值表示接收超时时间。

执行指令

AT+RF_RXMODE=10000\r\n表示设置模组10秒超时接收,接收到数据后会重置时间计数,继续超时接收10秒,直至10秒超时退出接收。如果需要中途退出,可以执行C\r\n指令。

6.15 设置模块发射功能

表格16 **设置模块发射功能**

命令类型

命令格式

响应

参数说明

AT+RF_TXMODE=,,:发送数据包长度,数据内容为0x00,0x01,0x02…:发送次数:发送次数之间的时间间隔,单位ms

执行指令

AT+RF_TXMODE=10,10,1000\r\n表示设置模组发送10次,包长为10的数据,数据发送间隔1000ms