提示:主要用于自己后面学习lvgl和freertos操作系统的实战项目,
例如:项目场景:esp8266AT固件使用tcp服务端传输过程中的问题及解决办法
提示:TCP客户端发送数据失败和发送数据长度的问题
例如:开始一直困扰自己使用AT+CIPSEND指令发送数据时出现ERROR的发送指令打开失败,和使用AT+CIPSEND=0,10发送的数据要发送两次才能成功。
AT+CIPSTO=10
OK
0,CLOSED
+STA_DISCONNECTED:"78:21:84:7e:2d:bc"
+STA_CONNECTED:"78:21:84:7e:2d:bc"
+DIST_STA_IP:"78:21:84:7e:2d:bc","192.168.4.2"
0,CONNECT
+IPD,0,12:Hellow Word!
0,CLOSED
AT+CIPSEND
ERROR //这种情况是tcp连接超时,所以不能发送
AT+CIPSTO=0 //我们更改AT+CIPSTO=0,就是不设置超时时间
OK
+STA_DISCONNECTED:"78:21:84:7e:2d:bc"
+STA_CONNECTED:"78:21:84:7e:2d:bc"
+DIST_STA_IP:"78:21:84:7e:2d:bc","192.168.4.2"
0,CONNECT
+IPD,0,12:Hellow Word!
AT+CIPSEND=0,10 //此时我设置的是多连接及(AT+CIPMUX=1),所以我们要使用AT+CIPSEND=,
OK
>
busy p...
Recv 10 bytes
SEND OK
提示:具体参考最下面的AT指令文档TCP类,问题一:上面的
AT+CIPSEND=0,10失败的原因是这种情况tcp连接超时了,及出现
,CLOSED,问题二:AT+CIPSEND=0,10因为我们设置的数据发送的buff长度是10,而我们发送的数据是22222,这里的数据是长度是5个我们要发送两次达到10个数据才能发送, https://docs.espressif.com/projects/esp-at/zh_CN/latest/esp32/AT_Command_Set/TCP-IP_AT_Commands.html
提示:问题一:
我们更改AT+CIPSTO=0,就是不设置超时时间。
问题二:我们发送的buffer包长度要和AT+CIPSEND=
, 的 一样即可,
例如:我们设置AT+CIPSEND=0,10则我们要发送的长度必须为buffer[10];
最后附上我借鉴别人使用AT固件建立TCP服务端的指令:
AT+RESTORE //恢复出厂设置
AT+CWMODE=2 //初始化为 Wi-Fi AP 模式
AT+CWSAP="ESP32","12345678",1,3 //设置 AP 模式的账号、密码
AT+CIPAP="192.168.4.1" //设置 AP 的 IP 地址
AT+CIPMUX=1 //开启多连接模式才能创建 TCP 服务器
AT+CIPSERVER=1,1001 //创建 TCP 服务器,端口号为 1001
AT+CIPSTO=0 //设置本地 TCP 服务器超时时间【0,7200】; 设为 0 ,则连接永远不会超时
这是我第一次写博客,有些地方写的不好望体谅,错别字就别提醒博主了本人也懒也可能不会改。(滑稽护体)