乐于分享
好东西不私藏

【ESP8266】ESP-01固件下载完整指南:从下载工具到烧录成功,一篇全搞定

【ESP8266】ESP-01固件下载完整指南:从下载工具到烧录成功,一篇全搞定

固件烧录是ESP-01开发的必备技能,看完这篇保证你会!


一、前言:为什么要学固件下载?

很多初学者拿到ESP-01后,发现AT指令没反应,或者想换成Arduino固件,却不知道怎么烧录。

这篇教程帮你解决

  • • ✅ 固件下载工具的选择与安装
  • • ✅ 官方AT固件的下载方法
  • • ✅ Flash Download Tools的详细使用教程
  • • ✅ 不同Flash容量的配置方法
  • • ✅ 常见烧录问题排查

读完这篇,你将能够

  • • 给ESP-01烧录任意固件
  • • 选择正确的烧录参数
  • • 排查烧录过程中的问题

二、固件烧录基础知识

2.1 什么是固件?

固件(Firmware)是写入到ESP-01内部Flash存储器中的程序代码。

ESP-01的Flash芯片

型号
容量
适用模块
ESP-01(老版)
512KB
ESP-01
ESP-01(新版)
1MB
ESP-01
ESP-01S
4MB
ESP-01S

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
标准频率
大多数情况 ✅
40MHz
特殊晶振
少数模块

建议:保持默认26MHz


B、Flash Size(Flash大小)

设置值
对应容量
适用模块
8Mbit
1MB
ESP-01新版
32Mbit
4MB
ESP-01S
4Mbit
512KB
ESP-01老版
16Mbit
2MB
其他模块

⚠️ 必须选择正确的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
高速
大多数情况 ✅
20MHz
低速
兼容性问题时

建议:保持默认40MHz


D、SPI Mode(SPI模式)

设置值
说明
适用情况
DIO
双向数据线
大多数情况 ✅
QIO
四线数据
需要支持QIO的Flash
DOUT
单向输出
兼容性选项
DOUT
单向输出
兼容性选项

建议:保持默认DIO


5.6 固件文件配置

每一行代表一个要烧录的固件文件:一体化固件烧录地址为0x0000,

勾选框:勾选表示要烧录该文件

烧录地址

  • • 必须按照固件说明设置
  • • 错误会导致无法启动
  • • 参考固件包中的readme.txt

烧录大小

  • • 留空表示使用文件实际大小
  • • 设置具体值表示只烧录部分

六、固件烧录详细步骤

6.1 详细操作步骤

步骤1:准备固件文件

  1. 1. 下载AT固件压缩包
  2. 2. 解压到电脑任意位置(如C:\ESP8266_AT)
  3. 3. 确保所有.bin文件都在同一文件夹

步骤2:硬件连接

  1. 1. 按第3.2节的接线图连接
  2. 2. 确认GPIO0接地
  3. 3. 按一下RST键进入下载模式

步骤3:打开烧录工具

  1. 1. 双击flash_download_tool_XXXX.exe
  2. 2. 选择ESP8266
  3. 3. 进入烧录界面

步骤4:配置参数

  1. 1. Crystal Freq:26MHz(默认)
  2. 2. Flash Size:根据模块选择
    • • ESP-01:8Mbit
    • • ESP-01S:32Mbit
  3. 3. Flash Speed:40MHz(默认)
  4. 4. SPI Mode:DIO(默认)

步骤5:添加固件文件

  1. 1. 点击固件文件列表的空白行
  2. 2. 点击**"..."**按钮选择文件
  3. 3. 填入烧录地址
  4. 4. 勾选文件左侧的复选框

步骤6:选择COM口

  1. 1. 确认USB-TTL已连接到电脑
  2. 2. 在工具右上角选择COM口
  3. 3. 波特率保持默认

步骤7:开始烧录

  1. 1. 点击右下角的**"START"**按钮
  2. 2. 观察进度条和日志

步骤8:烧录完成

看到以下信息表示成功:

进度条变为绿色

██████████████████████ 100%

步骤9:恢复运行模式

  1. 1. 断开GPIO0与GND的连接
  2. 2. 将GPIO0接到3.3V或悬空
  3. 3. 按一下RST键重启

步骤10:测试固件

  1. 1. 打开串口工具(如SSCOM)
  2. 2. 波特率115200
  3. 3. 发送AT
  4. 4. 应返回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

参数说明

参数
说明
示例
--port
串口号
COM3
--baud
波特率
921600
-fm
Flash模式
dio
-fs
Flash大小
32m

Flash大小对应值

Flash大小
-fs 参数
512KB
4m
1MB
8m
2MB
16m
4MB
32m

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_flash

8.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. 1. 工具右侧点击**"ERASE"**按钮
  2. 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发挥更大的作用!