将官方固件烧录到ESP32主要分为两个阶段:准备固件文件和执行烧录。最常用的方法是使用乐鑫官方提供的 esptool.py 命令行工具,它稳定且支持所有ESP系列芯片。
以下是详细的操作步骤,我将其拆解为三个核心部分。
第一步:准备工作
你需要确认两件事:
- 获取固件文件:根据你的需求,去乐鑫官网或相关项目(如MicroPython、ESPHome)下载正确的固件(
.bin文件)。注意选择与你开发板型号(如ESP32、ESP32-S3、ESP32-C3)匹配的固件。 - 安装烧录工具:
- 命令安装 esptool:
pip install esptool
第二步:执行烧录(核心步骤)
烧录前,最好先擦除一下Flash,避免旧数据干扰新固件。然后在命令行中,导航到你存放固件文件的文件夹。
1. 擦除Flash
将下面命令中的 <你的串口号> 替换为实际的端口(如 Windows 的 COM3,Linux 的 /dev/ttyUSB0):
bash
esptool.py --port <你的串口号> erase_flash
2. 写入新固件
擦除成功后,使用以下命令烧录固件。请务必注意 0x10000 这个起始地址,它是ESP32存放应用程序的标准位置,写错会导致无法启动。
bash
esptool.py --port <你的串口号> --baud 460800 write_flash 0x10000 <你的固件文件名>.bin
--baud 460800是烧录速度,如果失败可以降低到115200。- 如果系统自动识别串口失败,可以像擦除命令一样,手动指定
--port参数。
3. 手动进入下载模式(如果烧录失败)
如果命令行一直显示“Connecting…”或失败,你需要手动将ESP32置于下载模式:
第三步:验证固件是否成功
烧录完成后,开发板通常会自动复位。你可以用串口工具(如 PuTTY、Thonny 或 Arduino IDE 的串口监视器)来检查:
- 将波特率设置为 115200。
- 按下开发板的 EN 按钮重启。
- 如果看到类似
rst:0x1 (POWERON_RESET)的系统日志或MicroPython的>>>提示符,就说明固件已经成功运行了。
关于ESP-IDF固件的特别说明:如果你烧录的是自己用乐鑫物联网开发框架编译出来的固件,通常需要烧录三个文件:引导加载程序 (
bootloader.bin)、分区表 (partition-table.bin) 和应用程序 (<your_app>.bin)。它们的起始地址通常是0x1000、0x8000和0x10000,具体路径在编译完成后会在终端里显示。
发表回复