手把手教—esp32 使用 Flash Download Tool 烧录固件
flash_download_tool工具烧录 ESP-IDF 生成的固件到 ESP32 的方法如下:
官方说明:获取不同软件开发平台的固件烧录信息(开发阶段)
具体工程生成的 固件 和对应的 下载地址 取决于工程的 分区表 设置,每个工程都需要设置对应的分区表。 ESP-IDF SDK 中提供了一系列默认的分区表文件可供用户使用,参见: esp-idf/components/partition_table 文件里的 .csv 文件。链接:https://github.com/espressif/esp-idf/tree/release/v5.4/components/partition_table
步骤 1:准备固件文件
- 在 VSCode + ESP-IDF 项目中完成编译后,固件文件默认生成在项目的
build目录下。 - 需要以下关键文件:
- Bootloader 文件:
bootloader/bootloader.bin - 分区表文件:
partition_table/partition-table.bin - 主应用程序文件:
app.bin(位于项目根目录的build下),生成的app.bin根据工程配置不同,名称不同。
- Bootloader 文件:
步骤 2:下载 Flash 下载工具
- 从乐鑫官方下载工具:
Flash Download Tool 下载地址https://www.espressif.com.cn/zh-hans/support/download/other-tools`
步骤 3:配置 Flash 下载工具
打开工具:
- 运行解压后的
flash_download_tool_x.x.x.exe。 - 选择芯片类型(如
ESP32或ESP32-S2/S3)。
- 运行解压后的
配置烧录参数:
- Development Mode:选择
Develop(默认)。 - WorkMode:选择
UART(通过串口烧录)。 - SPI SPEED: 通常选择
80MHz。 - SPI MODE: 通常选择
DIO或QIO(与项目配置一致)。
- Development Mode:选择
添加固件文件:
- 点击右侧的
...按钮,依次添加以下文件并指定烧录地址:文件路径 烧录地址 (Hex) bootloader.bin0x0partition-table.bin0x8000your_project.bin0x10000
注意:地址可能因项目配置不同而变化(如自定义分区表)。
- 点击右侧的
设置串口参数:
- COM Port: 选择 ESP32 连接的串口号(如
COM8)。 - Baudrate: 推荐
921600(下载失败时可降低为115200)。
- COM Port: 选择 ESP32 连接的串口号(如
步骤 4:开始烧录
连接 ESP32:
- 通过 USB 连接 ESP32 到电脑,确保串口驱动已安装(如 CP210x 或 CH340)。
- 确保开发板处于下载模式:
- 按住
BOOT按钮不放 → 短按RESET按钮 → 松开RESET→ 再松开BOOT。
- 按住
启动烧录:
- 点击工具下方的
START按钮。 - 等待进度条完成,显示
FINISH表示烧录成功。
- 点击工具下方的
步骤 5:验证固件
- 按
RESET按钮重启 ESP32-S3。 - 使用串口工具(如
idf.py monitor或PuTTY)查看串口输出,确认程序正常运行。
常见问题
- 找不到 COM 口:检查 USB 驱动是否安装,或尝试更换 USB 线。
- 烧录失败:降低波特率(如
115200)或检查硬件连接。 - 地址错误:确认
partition-table.bin的地址是否与项目配置一致。
通过以上步骤,你可以将 ESP-IDF 生成的固件成功烧录到 ESP32-S3 设备中。
参考-VSCode基于ESP-IDF的下载过程日志
正在执行任务:C:\Users\esp32\.espressif\python_env\idf5.2_py3.11_env\Scripts\python.exe C:\Users\esp32\esp\v5.2.5\esp-idf\components\esptool_py\esptool\esptool.py-p COM4-b460800--before default_reset--after hard_reset--chip esp32s3 write_flash--flash_mode dio--flash_freq80m--flash_size16MB0x0bootloader/bootloader.bin0x10000app.bin0x8000partition_table/partition-table.bin esptool.py v4.8.1Serial port COM4 Connecting....Chip is ESP32-S3(QFN56)(revision v0.2)Features:WiFi,BLE,Embedded PSRAM8MB(AP_3v3)Crystal is40MHz MAC:10:51:db:85:ac:5c Uploading stub...Running stub...Stub running...Changing baud rate to460800Changed.Configuring flash size...Flash will be erased from0x00000000to0x00005fff...Flash will be erased from0x00010000to0x000f1fff...Flash will be erased from0x00008000to0x00008fff...SHA digest in image updated Compressed21632bytes to13321...Wrote21632bytes(13321compressed)at0x00000000in0.7seconds(effective263.5kbit/s)...Hash of data verified.Compressed922880bytes to569390...Wrote922880bytes(569390compressed)at0x00010000in14.4seconds(effective512.0kbit/s)...Hash of data verified.Compressed3072bytes to103...Wrote3072bytes(103compressed)at0x00008000in0.1seconds(effective320.5kbit/s)...Hash of data verified.Leaving...Hard resetting via RTS pin...参考:
Flash 下载工具用户指南
