完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
当我使用多个套接字时,我遇到了问题。 这是我的 AT-Parser 的调试(这不是 uart 上的 RAW 通信,但如果你不信任它,我稍后会记录下来: 我宣布向套接字 0 发送 1336 字节 10:44:58 [ESP8266 ] AT CMD[AT+CIPSEND=0,1336] STATEOK[0x81] STATEERR[0x83] tiMEOUT[15000ms] 10:44:58 [ESP8266 ] [TX] LEN[19] ESP 接受我的请求 10:44:58 [ESP8266 ] [RX] Response received LEN[2] 10:44:58 [ESP8266 ] OK ESP要求提供数据 10:44:58 [ESP8266 ] Data-Request received 10:44:58 [ESP8266 ] New State OLD[0x50] NEW[0x81] 我传输 1336 字节 10:44:58 [ESP8266 ] [TX] LEN[1336] Esp 确认,它收到了 1136 个字节 10:44:58 [ESP8266 ] [RX] Response received LEN[15] 10:44:58 [ESP8266 ] Recv 1336 bytes Esp 给我发送 3872 字节,它来自 10:44:58 [ESP8266 ] Data received SOCKET[4], LENGTH[1452] 10:44:58 [ESP8266 ] Data received SOCKET[4], LENGTH[1452] 10:44:59 [ESP8266 ] Data received SOCKET[4], LENGTH[968] 10:44:59 [ESP8266 ] [RX] Response received LEN[8] 客户端 Socket 4 关闭了连接 10:44:59 [ESP8266 ] 4,CLOSED 10:44:59 [ESP8266 ] Client disconnected! SOCKET[4] 10:44:59 [ESP8266 ] New socket state SOCKET[4] OLD[1] NEW[0] Esp 告诉我,它无法将我的最后 1336 个字节发送到套接字 0 ?! 10:44:59 [ESP8266 ] [RX] Response received LEN[9] 10:44:59 [ESP8266 ] SEND FAIL 10:44:59 [ESP8266 ] Failed! RESPONSE[SEND FAIL] STATE[0x81] OK[0x82] ERR[0x83] 10:44:59 [ESP8266 ] New State OLD[0x81] NEW[0x83] 10:44:59 [ESP8266 ] New State OLD[0x83] NEW[0x84] // For recovering purpose, i send an "AT" command, to ensure, that i'm in sync with the AT-Interpreter of the Esp 10:44:59 [ESP8266 ] AT CMD[AT] STATEOK[0x50] STATEERR[0x84] TIMEOUT[50ms] 10:44:59 [ESP8266 ] [TX] LEN[4] // Now, i receive an answer, that the data were sent successfully! - But i already give it up, due to the privously "SEND FAIL", in fact: the data reached the receiver. 10:44:59 [ESP8266 ] [RX] Response received LEN[7] 10:44:59 [ESP8266 ] SEND OK 10:44:59 [ESP8266 ] Ignored[SEND OK]! Esp 对我的最后一个 AT 请求回答了“确定”。 10:44:59 [ESP8266 ] [RX] Response received LEN[2] 10:44:59 [ESP8266 ] OK 这是 AT 固件中的错误吗?- 我能做些什么来解决这个问题? 在我当前的实现中,我第二次传输失败的包。结果,该包裹两次到达收货人处。 |
|
相关推荐
1个回答
|
|
从您提供的信息来看,ESP8266在尝试发送数据时遇到了一些问题。以下是可能的原因和解决方案:
1. 数据量过大:您尝试发送的数据量为1336字节,这可能超过了ESP8266的缓冲区大小。解决方法是尝试分批发送较小的数据包。 2. 套接字连接问题:您提到使用了多个套接字,可能存在连接问题。请确保所有套接字都已正确连接并准备好发送数据。 3. AT命令格式错误:请检查您使用的AT命令格式是否正确。例如,您使用的命令是`AT+CIPSEND=0,1336`,确保套接字编号和数据长度是正确的。 4. 通信超时:从您提供的调试信息来看,超时时间为15000毫秒。如果通信时间过长,可能会导致发送失败。您可以尝试增加超时时间,或者检查网络连接是否稳定。 5. 硬件问题:如果以上方法都无法解决问题,可能是ESP8266硬件存在问题。您可以尝试更换其他ESP8266模块进行测试。 建议您按照上述方法逐一排查问题,找到导致“SEND FAIL”的原因,并采取相应的解决方案。同时,确保您的AT-Parser正确解析了ESP8266的响应,以便更好地诊断问题。 |
|
|
|
只有小组成员才能发言,加入小组>>
409浏览 6评论
341浏览 5评论
有没有办法在不使用混杂模式的情况下实现Wifi驱动程序接收缓冲区访问中断呢?
324浏览 5评论
326浏览 4评论
311浏览 4评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-18 21:16 , Processed in 0.627240 second(s), Total 77, Slave 61 queries .
Powered by 电子发烧友网
© 2015 www.ws-dc.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号