在 Windows 上使用 com2tcp-rfc2217.bat 并通过 WSL2 (ESP8266) 和 platform.io 上传到 COM5 不起作用

问题描述

在 Windows 上设置

ESP8266 连接到 COM5 端口

.\com2tcp-rfc2217.bat COM5 4444

D:\Downloads\hub4com-2.1.0.0-386>"hub4com"  --create-filter=escparse,com,parse --create-filter=purge,purge  --create-filter=pinmap,pinmap:"--rts=cts --dtr=dsr --break=break" --create-filter=linectl,lc:"--br=remote --lc=remote" --add-filters=0:com --create-filter=telnet,tcp,telnet:" --comport=server --suppress-echo=yes"  --create-filter=lsrmap,lsrmap --create-filter=pinmap,pinmap:"--cts=cts --dsr=dsr --dcd=dcd --ring=ring" --create-filter=linectl,lc:"--br=local --lc=local" --add-filters=1:tcp --baud=115200 --octs=off "COM5" --use-driver=tcp "*4444"
COM5 Open("COM5",baud=115200,data=8,parity=no,stop=1,octs=off,odsr=off,ox=off,ix=off,idsr=off,ito=0) - OK
Route data TCP(1) --> COM5(0)
Route data COM5(0) --> TCP(1)
Route flow control TCP(1) --> COM5(0)
Route flow control COM5(0) --> TCP(1)
Filters:
_______
       \->{telnet.IN}-------------------------------------------->
TCP(1) |     /
_______/<-----{telnet.OUT}<-{lsrmap.OUT}<-{pinmap.OUT}<-{lc.OUT}<-

________
        \->{parse.IN}------------------------------>
COM5(0) |     /
________/<-----{purge.OUT}<-{pinmap.OUT}<-{lc.OUT}<-

Started COM5(0)
Socket(0.0.0.0:4444) = 204
Listen(204) - OK
Started TCP(1)

在 WSL2 上设置

VSCode Remote for WSL 已安装并运行良好 安装并运行 VSCode 中的 platform.io 扩展

platformio.ini

[env:nodemcuv2]
platform = espressif8266
board = nodemcuv2
framework = arduino
platform_packages =
    framework-arduinoespressif8266 @ https://github.com/esp8266/Arduino.git

lib_deps = ESP Async WebServer
build_unflags = -std=gnu++17 -std=c17
build_flags = -std=gnu99 -std=c++11

monitor_port=socket://192.168.1.100:4444
monitor_speed=115200
upload_speed=115200
upload_port=socket://192.168.1.100:4444

问题

我无法向 ESP8266 上传任何内容 Connecting........_____

当使用 upload_port=rfc2217://192.168.1.100:4444 时,错误是: A Fatal error occurred: Failed to connect to ESP8266: Timed out waiting for packet header

使用 upload_port=socket://192.168.1.100:4444 时,错误是: A Fatal error occurred: Failed to connect to ESP8266: Invalid head of packet (0x6F)

什么有效

我可以打开串行监视器并查看 ESP8266 的串行输出就好了。所以端口和波特率对我来说似乎很好。

在这里遗漏了什么?

解决方法

我设法解决了它。

出于某种原因,ESP8266 在通过 rfc2217 上传时不会自动切换到 Flash 模式。我不得不在 Connecting...___ 出现时按住闪光按钮并按下重置按钮手动将其置于闪光模式。