解决ESP8266 STM32透传模式AT+CIPSEND返回ERROR问题

在使用 ESP8266+STM32 开发时,按照以下顺序执行 AT 指令,使得 ESP8266 通过 TCP 连接到服务器端口,使用透传模式发送消息。

AT+CWJAP=<"ssid">,<"password">
AT+CIPSTART=<"TCP">,<"IP">,<port>
AT+CIPMODE=1                      // 使用透传模式
AT+CIPSEND

在直接将 ESP8266 使用 串口 转 USB 连接到电脑上,所有通信都可以正常进行,并且可以正常传输数据。

但是将 ESP8266 通过串口与 STM32 相连接时,出现无法传输数据的情况,调试发现按顺序执行前三条语句时都能够获得正确响应,但在执行 AT+CIPSEND 时返回了 ERROR。

怀疑可能是TCP连接未建立,但是发现在服务端可以看到TCP已经建立。

目前尚未发现导致该问题的原因。

解决方法:不使用透传模式,改为普通传输模式,即将 AT+CIPMODE=1 改为 AT+CIPMODE=0,并且使用 AT+CIPSEND=<length> 来传输数据。在这种方式下可以正常工作。

物联沃分享整理
物联沃-IOTWORD物联网 » 解决ESP8266 STM32透传模式AT+CIPSEND返回ERROR问题

发表评论