搜索Ctrl+K
博客
ESP32固件刷写完整指南:从工具选择到故障排除

ESP32固件刷写完整指南:从工具选择到故障排除

· 更新于 | 4 分钟阅读

ESP32固件刷写完整指南:从工具选择到故障排除

随着物联网技术的发展,ESP32已成为最受欢迎的微控制器之一。本文将详细介绍ESP32固件刷写的方法和常见问题解决方案,帮助开发者顺利完成项目开发。

工具选择与准备

Web工具 vs Python工具 虽然有在线的Web刷写工具,但在某些情况下(如网络不稳定或安全限制),使用Python工具esptool会更可靠。

安装esptool

Terminal window
# 管理员身份启动PowerShell
pip install esptool

基础操作流程

1. 检查连接

Terminal window
esptool.py flash_id

如果出现”Found 1 serial ports”表明找到了串行端口,如果出现类似以下错误:

COM6 failed to connect: Could not open COM6, the port doesn't exist

A fatal error occurred: Could not connect to an Espressif device on any of the 1 available serial ports.

2. 进入烧录模式 按住BOOT按钮,按一下RST按钮,松开BOOT按钮。这将使ESP32进入UART下载模式。

3. 擦除Flash

Terminal window
esptool.py erase_flash

4. 写入固件

Terminal window
esptool.py write_flash 0x00 你的固件路径

例如:

Terminal window
esptool.py write_flash 0x00 C:\Users\32467\Downloads\adafruit-circuitpython-lolin_s2_mini-en_GB-8.0.0-beta.4.bin

设备选择指南

兼容设备 原则上,CircuitPython官网包含的设备都可以使用。经过测试的设备包括:

  • LOLIN S2 Mini
  • ESP32-S3-DevKitC-1-N16R8
  • Raspberry Pi Pico (W)

注意事项

  • LOLIN S2 Mini约有10%的用户反馈刷入CircuitPython固件后PC无法识别,可能是硬件问题,请谨慎选购。
  • 连接线建议使用标准USB数据线,但Switch端请使用底座或OTG转接口,避免直接Type-C连接可能产生的主从识别问题。

固件版本选择

CircuitPython 7.3.3 vs 8.0.0-beta

  • 如果你对开发有一定了解,并有使用TCP网络远程控制的需求,建议使用7.3.3版本固件。
  • 新手建议直接使用8.0.0-beta版本固件,可以从CircuitPython官网下载对应设备的版本。

故障排除

设备无法识别 如果刷写完固件后系统无法识别出标为CIRCUITPY的U盘:

  1. 确认刷写流程没有问题
  2. 尝试使用TinyUF2固件再次刷写
  3. 如仍无法使用,建议联系购买商家处理

Switch连接问题 如果单片机插入Switch后没有反应:

  1. 确保在插入前断开其他无线手柄(Switch Pro是黑色小圆点)
  2. 检查主机设置是否启用了USB手柄连接
  3. 在PC上使用Gamepad Tester测试手柄连接
  4. 如仍无法识别,可尝试更换手柄引擎(Switch Pro -> Hori Pad S)

高级技巧

更换手柄引擎 对于8.0.0以上版本,只需将src/root_Hori目录下所有文件替换到单片机根目录即可。

自定义脚本 默认启动脚本为A键连点,可以通过修改src/resources/config.json文件的macros -> autorun节点来更改。

总结

ESP32固件刷写虽然看似复杂,但掌握了正确的工具和方法后,整个过程会变得相当顺畅。选择合适的固件版本、正确进入烧录模式、以及适当的故障排除方法,都是成功刷写的关键因素。

© 2026 Leo Ji — Built with Astro