You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PlatformIO+VS Code ESP32 OTA上传默认用COMx而非配置IP问题

解决PlatformIO上传ESP32 OTA时强制使用串口COM口的问题

以下是针对该问题的几种有效解决方案:

1. 修正VS Code的上传任务配置

VS Code的PlatformIO上传任务可能被硬编码了--upload-port COM5参数,导致覆盖了platformio.ini中的配置:

  • 打开VS Code命令面板(Ctrl+Shift+P),输入Tasks: Open Workspace Tasks;
  • 在打开的tasks.json文件中,找到对应ESP32上传的任务项,删除其中的--upload-port COM5参数;
  • 保存文件后重新点击Upload按钮测试。

2. 明确指定环境执行上传命令

直接在终端执行带环境参数的上传命令,绕过VS Code默认任务的干扰:

platformio run --target upload -e az-delivery-devkit-v4

该命令会严格读取platformio.ini中az-delivery-devkit-v4环境下的OTA配置参数。

3. 清除PlatformIO的端口缓存

PlatformIO会缓存已检测到的串口端口,即使设备断开仍可能残留:

  • 打开PlatformIO主页,点击左下角的「Devices」图标;
  • 在设备列表中找到COM5,右键选择「Remove」删除缓存;
  • 重启VS Code和PlatformIO后重试上传。

4. 验证配置项的优先级与有效性

确保platformio.ini中的OTA配置项在当前激活环境下:

  • 确认upload_protocol = espota和upload_port = 192.168.178.51属于[env:az-delivery-devkit-v4]环境段内,未被其他配置覆盖;
  • 可临时简化配置测试,注释掉非必要项,保留核心OTA配置:
    [env:az-delivery-devkit-v4]
    platform = espressif32
    board = az-delivery-devkit-v4
    framework = arduino
    upload_port = 192.168.178.51
    upload_protocol = espota
    upload_flags = --port=3232
    

问题原因说明

手动调用espota.py命令正常是因为直接指定了IP参数,绕开了PlatformIO任务的参数传递逻辑;而VS Code的Upload按钮可能绑定了之前自动生成的任务,其中硬编码了串口端口参数,导致覆盖了配置文件中的OTA设置。

内容的提问来源于stack exchange,提问作者Íhosko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:17:09