完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我正在使用当前的 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œžâœ¢þ > 准备 |
|
相关推荐
1个回答
|
|
在使用ESP8266进行UDP通信时,可能会遇到数据包丢失的问题。以下是一些建议和解决方案,以帮助您解决这个问题:
1. **检查网络配置**: 确保您的ESP8266模块和Android设备都正确配置了IP地址和端口号。检查您的网络配置,确保它们在同一子网中,并且没有防火墙或其他安全设置阻止UDP数据包的传输。 2. **增加超时时间**: 在您的代码中,尝试增加超时时间,以便ESP8266模块有足够的时间接收和发送数据。这可以通过调整AT命令中的参数来实现。 3. **优化数据包大小**: 尝试减小发送的数据包大小,以减少数据包丢失的可能性。较大的数据包可能更容易在传输过程中丢失。 4. **使用TCP协议**: 如果可能的话,考虑使用TCP协议代替UDP。TCP协议具有内置的错误检测和重传机制,可以提高数据传输的可靠性。 5. **检查硬件连接**: 确保您的ESP8266模块和Microchip PIC之间的硬件连接正确且稳定。检查UART引脚连接,确保它们没有松动或损坏。 6. **更新固件**: 您提到使用的是基于ESP8266_NONOS_SDK_V1.5.3的AT_V1.0固件。尝试更新到较新的固件版本,以获取可能的改进和修复。 7. **使用第三方库**: 考虑使用第三方库,如ESPAsyncUDP,来处理UDP通信。这些库通常经过优化,可以提高数据传输的稳定性和可靠性。 8. **调试和日志记录**: 在您的代码中添加调试信息和日志记录,以便更好地了解数据包丢失的原因。这可以帮助您确定问题是否出在发送端、接收端还是网络传输过程中。 9. **减少干扰**: 确保您的设备远离可能产生电磁干扰的设备,如无线路由器、微波炉等。干扰可能会影响无线信号的传输,导致数据包丢失。 10. **测试不同的网络环境**: 在不同的网络环境中测试您的设备,以确定问题是否与特定的网络环境有关。这可以帮助您找到可能影响数据传输的特定因素。 通过尝试这些建议和解决方案,您应该能够找到导致UDP数据包丢失的原因,并采取相应的措施来解决这个问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
251个成员聚集在这个小组
加入小组632 浏览 1 评论
3086 浏览 2 评论
为blufi_device设置自定义名称,但是无法修改,为什么?
570浏览 4评论
请问ESP32-S2-WROOM怎么获得ESP32-S2外接FLASH的唯一序列号?
315浏览 3评论
1268浏览 3评论
ESP-IDF的VScode插件的build按钮点击会报错的原因?
1540浏览 3评论
ESP-Jumpstart例程中第5个工程:5_cloud连接报错是哪里的问题?
330浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-6-28 16:35 , Processed in 0.941720 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191