我正在尝试在我的 ESP32 上进行 OTA。 cpp 没问题,手动触发更新工作正常,但是当我单击“上传”按钮上的 VS Code 时,它默认为“COMx”而不是给定的 IP。
手动调用:
python C:\Users\<user>\.platformio\packages\framework-arduinoespressif32\tools\espota.py --ip 192.168.178.51 --port 3232 --timeout 60 --file "firmware.bin" --debug
这工作完美,我在我的 ESP 上获得了给定的固件。
通过 VS Code 调用:
我现在想要的是使用 VS code 上的 PlatformIOs IDE 按钮触发上传。
我的 plaftormio.ini 文件:
[env:az-delivery-devkit-v4]
platform = espressif32
board = az-delivery-devkit-v4
framework = arduino
upload_port = 192.168.178.51
monitor_speed = 115200
; OTA
upload_protocol = espota
upload_flags =
--port=3232
board_build.partitions = min_spiffs.csv
build_unflags = -Os
lib_compat_mode = strict
lib_deps =
ArduinoOTA
knolleary/PubSubClient@^2.8
bblanchon/ArduinoJson@^7.2.0
paulstoffregen/OneWire@^2.3.8
milesburton/DallasTemperature@^3.11.0
thomasfredericks/Bounce2@^2.72
我构建了项目 -> 一切OK
当我点击“上传”时,我在终端上看到:
Executing task: C:\Users\<user>\.platformio\penv\Scripts\platformio.exe run --target upload --upload-port COM5
然后失败并显示以下信息:
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM: [= ] 8.2% (used 43848 bytes from 532480 bytes)
Flash: [==== ] 42.8% (used 841746 bytes from 1966080 bytes)
Configuring upload protocol...
AVAILABLE: esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa
CURRENT: upload_protocol = espota
Uploading .pio\build\az-delivery-devkit-v4\firmware.bin
08:53:22 [DEBUG]: Options: {'esp_ip': 'COM5', 'host_ip': '0.0.0.0', 'esp_port': 3232, 'host_port': 30698, 'auth': '', 'image': '.pio\\build\\az-delivery-devkit-v4\\firmware.bin', 'spiffs': False, 'debug': True, 'progress': True, 'timeout': 10}
08:53:22 [INFO]: Starting on 0.0.0.0:30698
08:53:22 [INFO]: Upload size: 841856
Sending invitation to COM5 failed
08:53:24 [ERROR]: Host COM5 Not Found
*** [upload] Error 1
为什么上传按钮没有读取 platformio.ini 文件中设置的目标 IP,并固定在我的 COM5(初始下载时我的 ESP32 连接到的串行端口)?我已经断开了 ESP32 与 COM5 的连接,但 PlatformIO 仍然默认为它。
我已在 VS Code 上删除并重新安装 platformio IDE,但问题仍然存在。
有什么想法可以解决这个问题吗?