VSCode配置MicroPython开发ESP32/ESP8266核心是选对插件与确保串口连稳:必须使用持续维护的RT-Thread MicroPython插件,禁用已停更的MicroPython(justinludwig)和不兼容的Pymakr;串口连不上需依次排查固件烧录正确性、CH340/CP2102驱动安装、Windows USB选择性暂停禁用;烧录时务必按芯片区分地址(ESP32从0x1000、ESP8266从0x0)和波特率,并先执行erase_flash;上传后需确认文件名为main.py且通过右键“Upload to device”覆盖,避免仅传当前编辑文件导致代码不运行。

VSCode 配置 MicroPython 开发 ESP32/ESP8266,核心就两件事:插件选对、串口连稳。用错插件或端口识别失败,90% 的“连不上”“没反应”问题当场解决。
RT-Thread MicroPython 插件是当前最稳的选择
VSCode 官方市场里搜 “MicroPython”,会看到好几个插件,但真正适配 ESP32/ESP8266 且持续维护的,只有 RT-Thread MicroPython(截至 2026 年 4 月)。它不是简单包装 pyserial,而是封装了设备发现、固件校验、REPL 同步、文件上传等完整链路。
- 别装
MicroPython(作者是justinludwig)——这个插件早已停止更新,不支持 ESP32-S3/S2/C3 等新芯片,连接后常卡在Connecting... - 别用
Pymakr(Pycom 出品)——只认自家板子,ESP32-WROOM/WROVER 识别率低,且已转向商业授权 - 安装后必须重启 VSCode,否则插件图标不显示;首次启动会提示选择默认终端,务必选
powershell(Windows)或zsh(macOS),避免bash下串口权限报错
串口连不上?先查三件事
点击左下角设备图标没反应,或点开后列表为空,不是插件坏了,大概率是底层通信断了。
- 确认开发板已烧录 MicroPython 固件:用
esptool.py --port COMx chip_id能读出 ID,但串口工具(如 PuTTY)连上去没>>>提示符 → 固件损坏或型号不匹配 - 检查驱动:ESP32 常见芯片是 CP2102 或 CH340,设备管理器里显示“未知设备”或带黄色感叹号 → 下载对应驱动(CH340 驱动官网最新版为 v3.5.2025.12,CP210x 为 v10.1.12.110)
- Windows 上禁用 USB Selective Suspend:电源选项 → 更改计划设置 → 更改高级电源设置 → USB 设置 → USB 选择性暂停设置 → 设为“已禁用”,否则插拔几次后端口自动休眠失联
烧录固件时写错地址或波特率,板子就变砖头
烧录命令看着简单,但 0x1000 和 0x0 差一位,--baud 115200 和 --baud 460800 差四倍,直接导致固件写歪、无法启动。
立即学习“Python免费学习笔记(深入)”;
- ESP32(GENERIC/SPIRAM)必须从
0x1000开始写:esptool.py --chip esp32 --port COMx --baud 460800 write_flash -z 0x1000 firmware.bin - ESP8266 必须从
0x0开始写:esptool.py --chip esp8266 --port COMx --baud 115200 write_flash -z 0x0 firmware.bin - 擦除不能省:
esptool.py --port COMx erase_flash必须在换固件前执行,否则旧 Bootloader 会干扰新固件初始化 - 烧录失败时先降速:把
--baud改成115200,再按住开发板BOOT键不放,短按一下EN键再松开,强制进入下载模式
上传代码后不运行?检查 main.py 是否被覆盖
RT-Thread MicroPython 插件的“上传并运行”按钮(⚡ 图标)默认只传当前打开的文件,不会自动重命名或覆盖 main.py。你改完 test.py 点上传,板子还是跑原来的 main.py。
- 想让代码上电即运行,必须确保文件名是
main.py,且在 VSCode 中以该名称打开并保存 - 上传前右键资源管理器里的
main.py→ “Upload to device”,比点闪电图标更可靠 - 如果上传后串口无输出,手动在 REPL 输入
import main看报错,常见原因是缩进混用空格+Tab,或用了async def但没加uasyncio支持
真正麻烦的从来不是配置步骤,而是固件类型和芯片型号的隐式耦合——比如 ESP32-S3 必须用 esp32s3/ 目录下的固件,用错 GENERIC 版本,Wi-Fi 模块根本初始化不了,但串口照样能连上、REPL 照样响应,这种“看似正常实则残废”的状态最难排查。


















