固件烧录是ESP-01开发的必备技能,看完这篇保证你会!
一、前言:为什么要学固件下载?
很多初学者拿到ESP-01后,发现AT指令没反应,或者想换成Arduino固件,却不知道怎么烧录。
这篇教程帮你解决:
• ✅ 固件下载工具的选择与安装 • ✅ 官方AT固件的下载方法 • ✅ Flash Download Tools的详细使用教程 • ✅ 不同Flash容量的配置方法 • ✅ 常见烧录问题排查
读完这篇,你将能够:
• 给ESP-01烧录任意固件 • 选择正确的烧录参数 • 排查烧录过程中的问题
二、固件烧录基础知识
2.1 什么是固件?
固件(Firmware)是写入到ESP-01内部Flash存储器中的程序代码。
ESP-01的Flash芯片:
| 4MB |
2.2 常见固件类型
1. AT固件(出厂默认)
• 出厂预装 • 通过AT指令控制Wi-Fi • 适合快速验证
2. Arduino固件
• 运行Arduino程序 • 功能强大,可自定义 • 需要先擦除AT固件
3. NodeMCU固件
• 使用Lua脚本编程 • 上手快,交互式开发 • 适合原型验证
4. Tasmota固件
• 智能家居专用 • 支持米家、HomeAssistant等 • 开源免费
三、烧录前的准备工作
3.1 ESP-01接线(下载模式)
进入下载模式的条件:
• GPIO0接地(低电平) • CH_PD接高电平 • RST从低到高(复位一次)
四、官方固件下载方法
4.1 官方资源网站
乐鑫科技是ESP8266的芯片厂商,提供官方固件和技术支持。
官方网站:https://www.espressif.com.cn/zh-hans/home
固件下载页面:https://www.espressif.com.cn/zh-hans/products/socs/esp8266/resources
Espressif已经停止为1 MB ESP8285/8266系列芯片发布单独的版本.
4.2 其他固件下载资源
Arduino ESP8266固件:
GitHub仓库:
https://github.com/esp8266/Arduino
通过Arduino IDE自动下载,无需手动下载NodeMCU固件:
官方云编译:
https://nodemcu-build.com/
在线选择模块,自动编译固件Tasmota固件:
官方下载:
https://github.com/arendst/Tasmota/releases
找到对应的.bin文件下载五、Flash Download Tools详解
5.1 工具简介
Flash Download Tools是乐鑫官方提供的图形化烧录工具,简单易用,适合初学者。
工具特点:
• ✅ 官方出品,稳定可靠 • ✅ 图形界面,操作简单 • ✅ 支持多种芯片(ESP8266/ESP32) • ✅ 自动检测Flash大小 • ✅ 免费使用
5.2 下载Flash Download Tools
下载地址:
乐鑫官网:
https://www.espressif.com.cn/zh-hans/support/download/other-tools
找到"Flash Download Tools (ESP8266 & ESP32 & ESP32-S2)"5.3 界面介绍
打开flash_download_tool_XXXX.exe,看到以下界面:
选择ESP8266,进入烧录界面。
5.4 烧录界面详解

5.5 参数设置详解
A 、Crystal Freq(晶振频率)
| 26MHz | ||
建议:保持默认26MHz
B、Flash Size(Flash大小)
| 8Mbit | ||
| 32Mbit | ||
⚠️ 必须选择正确的Flash大小,否则固件无法正常运行!
如何判断Flash大小:
方法1:查看模块背面标注
ESP-01S背面通常标注"ESP-01S"方法2:烧录时观察工具显示
DETECTED FLASH INFO: N/A 32Mb → 4MB
DETECTED FLASH INFO: N/A 8Mb → 1MB方法3:尝试法
先选8Mbit烧录,如果失败再换其他选项C、Flash Speed(Flash速度)
| 40MHz | ||
建议:保持默认40MHz
D、SPI Mode(SPI模式)
| DIO | ||
建议:保持默认DIO
5.6 固件文件配置
每一行代表一个要烧录的固件文件:一体化固件烧录地址为0x0000,

勾选框:勾选表示要烧录该文件
烧录地址:
• 必须按照固件说明设置 • 错误会导致无法启动 • 参考固件包中的readme.txt
烧录大小:
• 留空表示使用文件实际大小 • 设置具体值表示只烧录部分
六、固件烧录详细步骤
6.1 详细操作步骤
步骤1:准备固件文件
1. 下载AT固件压缩包 2. 解压到电脑任意位置(如C:\ESP8266_AT) 3. 确保所有.bin文件都在同一文件夹
步骤2:硬件连接
1. 按第3.2节的接线图连接 2. 确认GPIO0接地 3. 按一下RST键进入下载模式
步骤3:打开烧录工具
1. 双击flash_download_tool_XXXX.exe 2. 选择ESP8266 3. 进入烧录界面
步骤4:配置参数
1. Crystal Freq:26MHz(默认) 2. Flash Size:根据模块选择 • ESP-01:8Mbit • ESP-01S:32Mbit 3. Flash Speed:40MHz(默认) 4. SPI Mode:DIO(默认)
步骤5:添加固件文件
1. 点击固件文件列表的空白行 2. 点击**"..."**按钮选择文件 3. 填入烧录地址 4. 勾选文件左侧的复选框
步骤6:选择COM口
1. 确认USB-TTL已连接到电脑 2. 在工具右上角选择COM口 3. 波特率保持默认
步骤7:开始烧录
1. 点击右下角的**"START"**按钮 2. 观察进度条和日志
步骤8:烧录完成
看到以下信息表示成功:
进度条变为绿色:
██████████████████████ 100%步骤9:恢复运行模式
1. 断开GPIO0与GND的连接 2. 将GPIO0接到3.3V或悬空 3. 按一下RST键重启
步骤10:测试固件
1. 打开串口工具(如SSCOM) 2. 波特率115200 3. 发送 AT4. 应返回 OK
测试完整AT指令:
发送:AT
返回:OK
七、其他烧录工具介绍
7.1 esptool.py(命令行工具)
esptool.py是Python编写的命令行烧录工具,功能强大,适合高级用户。
安装方法:
pip install esptool基本命令:
# 擦除Flash
esptool.py --port COM3 erase_flash
# 烧录固件
esptool.py --port COM3 write_flash -fm dio -fs 32m \
0x00000 boot_v1.7.bin \
0x01000 user1.1024.new.2.bin \
0x7E000 esp_init_data_default.bin \
0xFE000 blank.bin参数说明:
Flash大小对应值:
7.2 NodeMCU PyFlasher(图形化工具)
NodeMCU PyFlasher是简单易用的图形化烧录工具。
下载地址:
GitHub:
https://github.com/marcelstoer/nodemcu-pyflasher/releases特点:
• 界面简洁 • 适合NodeMCU固件 • 支持擦除选项
7.3 烧录工具对比
| Flash Download Tools | |||
| esptool.py | |||
| NodeMCU PyFlasher |
推荐:
• 初学者:Flash Download Tools • 进阶用户:esptool.py • 快速验证:NodeMCU PyFlasher
八、常见问题排查
8.1 烧录失败问题
问题1:提示"Failed to connect"
原因:
• 未进入下载模式 • TX/RX接线错误 • COM口选择错误
解决:
排查步骤:
1. 检查GPIO0是否接地
→ 确认GPIO0连接到GND
2. 检查串口输出
→ 应该有"boot mode:(1,6)"
3. 检查TX/RX连接
→ TX接RX,RX接TX
4. 检查COM口
→ 设备管理器确认COM号问题2:烧录进度卡在0%
原因:
• 电源不稳定 • 串口波特率太高 • USB线质量差
解决:
解决方案:
1. 使用独立3.3V稳压电源
→ 不要依赖USB-TTL供电
2. 降低波特率
→ 设为115200试试
3. 更换USB线
→ 使用带数据功能的线
4. 更换USB口
→ 试试电脑后面的USB口问题3:烧录完成但固件不工作
原因:
• Flash大小选择错误 • 烧录地址错误 • 固件文件损坏
解决:
排查步骤:
1. 检查Flash大小设置
→ ESP-01选8Mbit,ESP-01S选32Mbit
2. 检查烧录地址
→ 参考readme.txt确认地址
3. 重新下载固件
→ 可能是固件包损坏
4. 完全擦除后重烧
→ 先erase_flash再write_flash8.2 固件功能问题
问题4:AT指令无响应
测试方法:
发送:AT
返回:OK ← 正常
返回:无响应 ← 问题原因:
• 波特率不对 • 固件版本问题 • 串口连接问题
解决:
解决方案:
1. 确认波特率
→ AT固件默认115200
2. 尝试不同波特率
→ 9600, 57600, 115200
3. 测试TX/RX
→ 发送任意字符看回显问题5:Wi-Fi连接失败
测试AT指令:
# 设置Station模式
AT+CWMODE=1
OK
# 连接Wi-Fi
AT+CWJAP="WiFi名称","密码"
+CWJAP:1
FAIL ← 失败解决:
排查步骤:
1. 确认SSID和密码
→ 注意区分大小写
2. 确认Wi-Fi频段
→ ESP-01只支持2.4GHz
3. 测试近距离
→ 路由器和ESP-01放近些
4. 尝试简单SSID
→ 不要有特殊字符8.3 硬件问题
问题6:ESP-01不断重启
串口输出:
ets Jan 8 2013,rst cause:2, boot mode:(3,7)
ets_main.c user_exception原因:
• 电源供电不足 • Flash损坏 • 固件配置问题
解决:
解决方案:
1. 检查电源
→ 使用独立稳压电源
2. 添加滤波电容
→ VCC和GND之间加100μF
3. 重新烧录固件
→ 先擦除再烧录
4. 更换ESP-01模块
→ 可能是硬件问题九、进阶技巧
9.1 擦除Flash
有时候需要完全清除Flash中的数据:
使用Flash Download Tools:
1. 工具右侧点击**"ERASE"**按钮 2. 等待擦除完成
使用esptool.py:
esptool.py --port COM3 erase_flash注意:擦除后需要重新烧录固件
9.2 读取Flash内容
备份当前固件:
esptool.py --port COM3 read_flash 0x00000 0x400000 flash_backup.bin参数说明:
• 0x00000:起始地址 • 0x400000:读取大小(4MB) • flash_backup.bin:备份文件名
9.3 烧录多个固件
Flash Download Tools支持同时烧录多个固件:
添加固件:
┌──────────────────────────────────────────────────────┐
│ ☑ C:\boot_v1.7.bin 0x00000 │
│ ☑ C:\user1.1024.new.2.bin 0x01000 │
│ ☑ C:\esp_init_data...bin 0x7E000 │
│ ☑ C:\blank.bin 0xFE000 │
│ ☑ C:\spiffs.bin 0x100000 ← 用户数据│
└──────────────────────────────────────────────────────┘你在烧录固件时遇到过哪些问题? 欢迎在评论区留言!
需要更多esp8266资料
通过网盘分享的文件:056 esp8266资料包
链接: https://pan.baidu.com/s/1xDyj3xfXTwQHqN_el0ZM4g 提取码: qnce
固件烧录是ESP-01开发的第一步,掌握了这个技能,你就可以自由切换AT固件、Arduino固件、Tasmota固件等各种固件,让ESP-01发挥更大的作用!
夜雨聆风