严格按照GB42590的协议开发的发射端,通过串口和模块通讯,默认波特率 921600。
http://www.doit.am/首页-深圳四博智联科技有限公司-淘宝网https://shop144145132.taobao.com/?spm=a230r.7195193.1997079397.2.71f6771dJHT2r0
二、接口文档
单片机和模组之间通信数据格式和之前一样,如下表。
|------|------|------|-----|------|-----|------|
| 包头 || 参数长度 | 包类型 | 参数 | 校验 | 包尾 |
| 0X56 | 0X53 | 1字节 | 1字节 | 若干字节 | 1字节 | 0x23 |
- 数据包头:固定2字节ASCII码VS,对应16进制为 0x56 0x53;
- 参数长度:固定一字节,16进制数值,注意仅为参数长度,不是整个包的长度。
- 参数:可变长度,填充具体的参数内容。
- 校验1字节:校验方法为除了包头包尾所有数据取异或,即
校验=长度⊕包类型⊕参数
- 包尾:固定为#
校验函数为
unsigned char CRC8 (unsigned char *buffer, unsigned int len)
{
unsigned char crc = 0;
unsigned int j;
for (j =0; j < len; j++)
{
crc ^= buffer[j];
}
return crc;
}
三、接口说明
数据包类型和说明如下(从模组到单片机返回值为方便解析,默认追加\r\n)
|-----|---------|--------|---------------------------------------|
| 包类型 | 通信方向 | 参数长度 | 说明 |
| 1 | 单片机发给模组 | 不定 | 设置SSID名称指令,参数内容为SSID名称 |
| 2 | 单片机发给模组 | 1 | 获取目前模组的固件及SSID信息 |
| 3 | 单片机发给模组 | 1 | 恢复出厂 |
| 4 | 单片机发给模组 | 1 | 设置WIFI模式,1代表所有,2代表2.4G,5代表5.8G,默认5.8G |
| 5 | 单片机发给模组 | 25的整数倍 | 发送每个UAV内容报文 |
-
- 设置SSID指令
模块SSID为XXXXXX_A12F,其中XXXXXX为设置指令里的SSID名称, 默认为"UAV_GB42590",最后4位固定为模块MAC地址后4位,加上"_",共有5个字节是模组根据MAC追加的,所以能通过设置的SSID长度不能超过27,比如设置模块的SSID名称为EXD15,那么发送的指令为 56 53 05 01 45 58 44 31 35 59 23,其中绿色为参数内容,设置成功后ESP串口返回OK(默认后面有\r\n)。
-
- 获取固件的版本号、SSID、工作在哪个模式、及设备MAC地址信息
发送的指令为56 53 00 02 02 23,其中绿色为参数内容,16进制数值,设置成功后ESP串口返回"固件版本|SSID名称",比如 "2.0.5|UAV_GB42590|5.8|9C:63:B0:7D:70:BC"。
-
- 恢复出厂
发送 56 53 00 03 03 23,此时模组会把已经设置的SSID信息恢复成出厂的"UAV_GB42590"返回OK。
-
- UAV数据发送
按照GB42590
每个报文长度25个字节,共6种类型报文,其中第一个字节为报文类型及协议版本,后面24个字节依据每个报文不同组织内容,单片机仅需要发送每种报文的即可,最多一次可以发送6种,一个长度必须是25个字节。如果发送一个报文长度25,两个同时发送长度为50.
比如发送基本ID 报文,类型为0x00
UAV包:00 12 31 31 32 36 32 34 31 35 30 41 39 30 45 33 41 45 31 45 43 30 00 00 00
加上包头和包尾的包:
56 53 19 05 00 12 31 31 32 36 32 34 31 35 30 41 39 30 45 33 41 45 31 45 43 30 00 00 00 05 23
两个
56 53 32 05 00 12 31 31 32 36 32 34 31 35 30 41 39 30 45 33 41 45 31 45 43 30 00 00 00 00 12 31 31 32 36 32 34 31 35 30 41 39 30 45 33 41 45 31 45 43 30 00 00 00 37 23
3.5设置工作在2.4G或是5.8G,或是同时在2.4G及5.8G,默认仅在5.8G(仅对5.8G双频起作用)
参数类型为 0x04,值为 1代表2.4及5.8G,2代表2.4G,5代表5.8G
- 工作在2.4G及5.8G发送56 53 01 04 01 04 23,返回OK,模组仅工作在2.4G及5.8G,会同时发包,因为模式间切换需要时间,建议仅工作在5.8G。
- 工作在2.4G 发送56 53 01 04 02 07 23
- 工作在5.8G 发送 56 53 01 04 05 00 23
发送56 53 01 06 00 07 23,返回OK,模组会停止发送UAV的基本报文包。
3.6测试模式
发送56 53 01 06 01 06 23,返回OK,模组会自动发送UAV的基本报文包。
发送56 53 01 06 00 07 23,返回OK,模组会停止发送UAV的基本报文包。
接收端
二 接口文档
模组输出完整的
UAV包,串口通讯,接上即可工作。
默认在 2.4G的第6信道,和5.8G的149信道工作。
因为信道切换需要大概100ms时间,建议使用两个模组,分别工作在2.4的第6信道和5.8G的149信道。
支持如下AT指定
- 查看固件版本,返回版本号及目前工作在2.4G或是5.8G
AT+VERSION_MODE=?\r\n
- 控制串口输出波特率,默认是 921600,可以通过AT指令进行更改
AT+BAUD=115200\r\n
- 控制采集模块,默认是在5.8G采集,可以通过AT指令进行更改
AT+MODE=2.4\r\n 仅采集2.4G的第6信道
AT+MODE=5.8\r\n 仅采集5.8G的第149信道
AT+MODE=1\r\n 采集2.4G的第6信道和和5.8G的第149信道
返回OK\r\n