ESP8266固件包建立TCP服务端(客户端用Arduino框架)

项目场景:

提示:主要用于自己后面学习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=<id>,<length>

OK

>
busy p...

Recv 10 bytes   

SEND OK

原因分析:

提示:具体参考最下面的AT指令文档TCP类,问题一:上面的AT+CIPSEND=0,10失败的原因是这种情况tcp连接超时了,及出现<id>,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=<id>,<length>的<length>一样即可,

例如:我们设置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 ,则连接永远不会超时

这是我第一次写博客,有些地方写的不好望体谅,错别字就别提醒博主了本人也懒也可能不会改。(滑稽护体)

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

单片有机机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值