我正在使用当前的 AT 固件(基于 ESP8266_NONOS_SDK_V1.5.3 的 AT_V1.0)。实际上,它是这篇文章的修改版本(
http://bbs.espressif.com/viewtopic.php?f=66&t=2078#p6615).
我正在使用 AT SAVETRANSLINK 在我的 Android 和我的微控制器(Microchip PIC,连接在 ESP UART 上)之间创建透明链接。要配置 ESP 模块,从默认的 AT FW 开始,我将 ESP 模块设置为 Soft-AP 模式,只允许一个 WiFi 客户端和 DHCP 服务器租用一个 IP(请参阅下面的 AT 命令)。
将 ESP 配置为透明链接后,一切正常。当 Android 连接到 ESP Soft-AP 时,我能够在 IP 192.168.4.1 端口 2346 上每秒从 Android 发送一个小 UDP 数据包(5 字节)。这个小数据包被我的微控制器在UART上接收到。微控制器将更大的数据包(可变长度,约 100 字节)发送回 UART。ESP在UART上接收来自微控制器的数据包,并在UDP,IP 192.168.4.2,端口2345上发送,Android成功接收到该数据包。
这在一段时间内工作正常。Android 发送的所有数据包都由 ESP 和我的微控制器接收。我的微控制器发回的所有数据包都会被 Android 接收。到目前为止没有丢包。
但是,一段时间后(半小时或更短的时间),Android 没有收到我的微控制器发送的一些数据包。接收数据包丢失上升到 30-40-50% - 这太多了。
我能够监视 ESP 和我的微控制器之间的 UART 连接,Android 发送的 UDP 数据包总是被我的微控制器接收。为了响应收到的 UDP 数据包,我的微控制器总是向 ESP(在 UART 上)发送响应。但是此响应不会发送到 Android。
我也在 PC 而不是 Android 上尝试过它,问题仍然是一样的 - 首先它运行良好,但一段时间后,PC 没有收到来自 ESP 的 UDP 数据包 - 数据包丢失正在上升。
在 RST
OK
ets Jan 8 2013,rst cause:1, boot mode:(3,7)
负载 0x40100000,LEN 1856,16 室
尾 0
Chksum 0x63
负载 0x3ffe8000,LEN 776,房间 8
尾 0
CHKSUM 0x02
负载 0x3ffe8310,len 552,房间 8
尾 0
Chksum 0x79
CSUM 0x79
第 2 个启动版本:1.5
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
跳转到运行 user1 @ 1000
rlž'rlœžâœ¢þ
准备
在GMR
AT版本:1.0.0.0(Apr 25, 2016 14:18:03)
SDK版本:1.5.3(aec24ac9)
编译时间:Apr 26, 2016 14:22:35
OK
在CWMODE?
CW模式:2
OK
在CWSAP?
+CWSAP:"ESP_123456","mypassword",1,4,1,0
OK
AT+CWDHCPS_DEF=1,3,"192.168.4.2","192.168.4.2"
OK
在cwdhcps_def?
cwdhcps_def:3,192.168.4.2,192.168.4.2
OK
AT+SAVETRANSLINK=1,"192.168.4.2",2345,"UDP",2346
OK
在 RST
OK
ets Jan 8 2013,rst cause:1, boot mode:(3,7)
负载 0x40100000,LEN 1856,16 室
尾 0
Chksum 0x63
负载 0x3ffe8000,LEN 776,房间 8
尾 0
CHKSUM 0x02
负载 0x3ffe8310,len 552,房间 8
尾 0
Chksum 0x79
CSUM 0x79
第 2 个启动版本:1.5
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
跳转到运行 user1 @ 1000
rlž'rlœžâœ¢þ
>
准备