WIFI透传TCP连接正常,但数据传输中断问题
Posted: Mon Nov 17, 2025 6:51 am
我最近使用ESP32C5-MINI1U这个模块做了一个项目,ESP-AT工程按照官方的硬件连接建议,(不同之处是我未使用硬件流控),软件使用了github上的master分支本地编译,之后使用at.py修改了波特率为4000000,关闭流控引脚,使用flashdowntool下载成功。
软件部分参考了示例“ESP32-C5 设备作为 TCP 服务器,实现 UART Wi-Fi 透传”的步骤:
AT+CWMODE=1,设置 Wi-Fi 模式为 station。
AT+CWJAP=XXX,XXX,连接到路由器。
AT+CIPMUX=1,TCP 服务器必须在多连接模式下才能开启,
AT+CIPSERVERMAXCONN=1,设置 TCP 服务器最大连接数为 1。
AT+CIPSERVER=1,8080,开启 TCP 服务器。
PC客户端连接之后,进入 UART Wi-Fi 透传接收模式。
AT+CIPMODE=1,进入 UART Wi-Fi 透传模式 并发送数据。
AT+CIPSEND,>进入透传模式。
遇到的问题:
PC发送启动命令后,MCU按照100HZ, 1360字节/包的速度发送数据,刚开始一切都正常,但连续发送30分钟数据后,PC端再也收不到数据,此时能够接收到PC发送来的数据。PC端断开连接,重新连接TCP服务器,也是只能PC到MCU方向正常,但MCU发出的数据无法传递到PC。
尝试的办法:1.打开AT工程的TCP调试功能,Debug信息未发现TCP连接断开;
2.打开AT工程的UART调试功能,但由于Debug口未修改波特率程序会卡死;
3.增加KeepAlive功能;
4.增加AT+CIPSTO超时功能;未能解决问题
5.降低串口波特率至2M,现象依然存在。
问题:1.是否因为采用了过高的波特率,且未使用硬件流控造成?建议的最高串口波特率是多少合适?
2.如何能够监测到透传的异常?目前发生异常后没有任何提示输出,如果有错误提示的话,可以重新复位WIFI模块以及TCP透传连接。
3.如何进一步排查此问题,找到解决问题的方向?
希望有人能够解答,非常感谢!
软件部分参考了示例“ESP32-C5 设备作为 TCP 服务器,实现 UART Wi-Fi 透传”的步骤:
AT+CWMODE=1,设置 Wi-Fi 模式为 station。
AT+CWJAP=XXX,XXX,连接到路由器。
AT+CIPMUX=1,TCP 服务器必须在多连接模式下才能开启,
AT+CIPSERVERMAXCONN=1,设置 TCP 服务器最大连接数为 1。
AT+CIPSERVER=1,8080,开启 TCP 服务器。
PC客户端连接之后,进入 UART Wi-Fi 透传接收模式。
AT+CIPMODE=1,进入 UART Wi-Fi 透传模式 并发送数据。
AT+CIPSEND,>进入透传模式。
遇到的问题:
PC发送启动命令后,MCU按照100HZ, 1360字节/包的速度发送数据,刚开始一切都正常,但连续发送30分钟数据后,PC端再也收不到数据,此时能够接收到PC发送来的数据。PC端断开连接,重新连接TCP服务器,也是只能PC到MCU方向正常,但MCU发出的数据无法传递到PC。
尝试的办法:1.打开AT工程的TCP调试功能,Debug信息未发现TCP连接断开;
2.打开AT工程的UART调试功能,但由于Debug口未修改波特率程序会卡死;
3.增加KeepAlive功能;
4.增加AT+CIPSTO超时功能;未能解决问题
5.降低串口波特率至2M,现象依然存在。
问题:1.是否因为采用了过高的波特率,且未使用硬件流控造成?建议的最高串口波特率是多少合适?
2.如何能够监测到透传的异常?目前发生异常后没有任何提示输出,如果有错误提示的话,可以重新复位WIFI模块以及TCP透传连接。
3.如何进一步排查此问题,找到解决问题的方向?
希望有人能够解答,非常感谢!