ESP01 这个小模块玩过物联网的应该都不陌生——巴掌大一块价格便宜到离谱插上就能连 WiFi。但很多人拿到手第一件事就卡住了这玩意儿出厂自带的 AT 固件版本太老或者干脆是空的连串口发 AT 指令都没反应。更让人头疼的是网上教程五花八门有的让你装 Arduino IDE有的让你用 Python 脚本还有的甩给你一堆命令行参数看完直接劝退。其实乐鑫官方早就提供了一个专门用来烧录固件的工具——Flash Download Tool。这东西是图形界面的不用写代码不用配环境选好文件、点一下 START 就完事。我前后用这个工具刷过几十片 ESP01 和 ESP8266 模组从最早的 V1.2 到现在的 V1.5.1踩过的坑基本能写一本小册子。这篇内容就把整个流程拆开揉碎讲清楚从工具下载、接线、参数配置到常见报错处理一步步来。不管你是刚接触 ESP8266 的新手还是刷固件刷到怀疑人生的老玩家照着走一遍应该能少走不少弯路。1. 先搞清楚为什么要用官方工具而不是其他方案1.1 几种常见烧录方式的对比在动手之前有必要先弄明白市面上几种烧录方式各自的适用场景。很多人一上来就搜ESP8266 刷固件教程结果搜到的是用 esptool.py 命令行、Arduino IDE 或者 NodeMCU Flasher 的方案照着做了一半发现各种报错最后不了了之。我把常见的几种方式列出来对比一下烧录方式操作难度适用场景主要缺点Flash Download Tool低批量烧录、AT 固件、出厂固件仅 Windowsesptool.py中高自动化脚本、Linux/Mac需要 Python 环境参数多Arduino IDE中自己编译的固件编译慢不适合烧官方 ATNodeMCU Flasher低NodeMCU 固件年久失修兼容性差Flash Download Tool 最大的优势在于它是乐鑫自己出的跟 ESP8266 的 ROM 引导程序配合得最好。你不需要关心什么波特率握手、什么 flash 模式工具界面上选好参数就行。而且它支持多路烧录如果你要批量生产插一个 USB Hub 可以同时刷好几片效率比命令行高得多。1.2 ESP01 这个模块的特殊性ESP01 跟 ESP12、ESP07 这些模组不太一样它引脚少得可怜只有 8 个引脚VCC、GND、TX、RX、CH_PD、RST、GPIO0、GPIO2。没有 USB 接口没有复位按键也没有 flash 按键。这意味着你没法像 NodeMCU 开发板那样一键进入下载模式必须手动控制 GPIO0 和 RST 的电平。另外 ESP01 的 flash 容量通常是 1MB8Mbit这个容量决定了你能刷什么固件。AT 固件有多个版本有 1MB 的、2MB 的、4MB 的选错了要么刷不进去要么刷进去跑不起来。这一点后面会详细说。还有一点ESP01 的供电要求比较苛刻必须稳定在 3.3V电流至少要能提供 300mA 以上。很多人用 USB 转 TTL 模块上的 3.3V 引脚直接供电结果一烧录就失败就是因为供电电流不够。这个坑后面会专门讲。2. 工具和固件的获取别从乱七八糟的地方下载2.1 Flash Download Tool V1.5.1 的下载Flash Download Tool 在乐鑫官网的下载页面就能找到搜索Flash Download Tool就能定位到。V1.5.1 是目前比较稳定的版本支持 ESP8266 和 ESP32 全系列。下载下来是一个压缩包解压后直接运行 exe 就行不需要安装。注意下载的时候认准乐鑫官方域名不要从第三方网盘或者论坛附件下载。我见过有人从某论坛下载的汉化版结果里面捆绑了乱七八糟的东西刷完固件模块直接变砖。解压后的文件夹里通常包含这几个文件flash_download_tool_1.5.1.exe主程序configure/配置文件目录doc/说明文档双击 exe 后会先弹出一个芯片选择窗口让你选 ESP8266 还是 ESP32选完才进入主界面。2.2 AT 固件的版本选择AT 固件是乐鑫官方提供的、让 ESP8266 可以通过串口指令控制 WiFi 的固件。它的版本号跟 ESP8266 的 SDK 版本是对应的。截至我写这篇内容的时候比较常用的 AT 固件版本有V1.7.4基于 ESP8266_NONOS_SDK 3.0支持 1MB flashV2.2.1基于 ESP8266_RTOS_SDK功能更多但体积也更大V1.5.1老版本但胜在稳定1MB flash 刚好够用对于 ESP01 这种 1MB flash 的模块我建议优先选V1.7.4 的 1MB 版本。如果你手头的 ESP01 是早期批次flash 可能只有 512KB那就只能刷更老的版本了。固件文件通常是一个 bin 文件比如ESP8266_AT_Bin_V1.7.4.zip解压后会有多个 bin 文件对应不同的 flash 大小。你需要根据自己模块的实际容量选择对应的文件。提示怎么确认 ESP01 的 flash 大小最靠谱的方法是看模块上 flash 芯片的丝印。常见的 1MB flash 芯片型号是 25Q802MB 是 25Q164MB 是 25Q32。如果丝印磨掉了看不清那就只能试先按 1MB 刷不行再换。2.3 USB 转 TTL 模块的准备ESP01 没有 USB 接口必须通过 USB 转 TTL 模块跟电脑通信。常见的模块有 CH340、CP2102、FT232 这几种芯片方案。我个人的经验是CH340便宜但驱动兼容性一般Windows 10 以上有时候要手动装驱动CP2102稳定性好驱动安装简单推荐FT232最稳但价格贵假货多不管你用哪种一定要确保模块上有3.3V 和 5V 两个供电引脚并且有一个跳线帽或者开关能切换输出电压。ESP8266 是 3.3V 器件接 5V 会直接烧掉。另外模块的 TX 要接 ESP01 的 RX模块的 RX 要接 ESP01 的 TX这个交叉关系千万别搞反。我见过有人接反了之后一直说模块没反应查了半天才发现是 TX 对 TX 了。3. 接线ESP01 进入下载模式的关键操作3.1 正常模式和下载模式的引脚电平差异ESP8266 芯片内部有一个 ROM 引导程序上电的时候它会检查 GPIO0、GPIO2、GPIO15 这几个引脚的电平来决定是进入正常运行模式还是下载模式。对于 ESP01 来说关键就是 GPIO0正常运行模式GPIO0 接高电平或悬空下载模式GPIO0 接低电平GND所以刷固件的时候必须让 GPIO0 在复位瞬间保持低电平。ESP01 没有按键只能手动接线。3.2 具体接线方案我画一个接线表照着接就行ESP01 引脚接到哪里说明VCC3.3V 电源必须 3.3V电流 ≥300mAGNDGND共地TXUSB 转 TTL 的 RX交叉连接RXUSB 转 TTL 的 TX交叉连接CH_PD3.3V使能引脚必须拉高RST悬空或接复位电路下载时先接 GND 再断开GPIO0GND下载模式必须拉低GPIO2悬空保持悬空即可实际操作的时候我习惯用一个面包板加几个杜邦线把 GPIO0 和 RST 各引出一根线方便手动控制。3.3 进入下载模式的操作顺序这是整个流程里最容易出错的一步。正确的操作顺序是先把 GPIO0 接到 GND确认 CH_PD 已经接到 3.3V给 VCC 上电或者把 RST 短暂接一下 GND 再松开此时模块就进入了下载模式如果你先上电再拉低 GPIO0模块已经跑起来了不会进入下载模式。这时候需要把 RST 拉低一下再松开让模块复位重新检测引脚电平。注意有些 USB 转 TTL 模块的 3.3V 输出电流不够上电后模块会反复重启串口会看到一堆乱码。遇到这种情况换一个供电能力强的模块或者单独用一个 3.3V 稳压电源给 ESP01 供电。4. Flash Download Tool 的参数配置详解4.1 主界面各个选项的含义打开 Flash Download Tool选 ESP8266 之后你会看到这样一个界面SPI SpeedSPI 通信速度默认 40MHz 就行SPI ModeQIO 或 DIOESP01 一般选 DIOFlash Sizeflash 容量选 1MBCOM串口号选你 USB 转 TTL 对应的那个BAUD波特率默认 115200可以调到 460800 加快速度下面是一个文件列表区域每一行可以添加一个 bin 文件并指定烧录的起始地址。4.2 固件文件的地址分配AT 固件的 bin 文件不止一个每个文件要烧到不同的地址。以 V1.7.4 的 1MB 版本为例文件起始地址说明boot_v1.7.bin0x00000引导程序user1.1024.new.2.bin0x01000用户程序esp_init_data_default_v08.bin0xFC000初始化数据blank.bin0x7E000空白填充blank.bin0xFE000空白填充注意blank.bin要添加两次地址不一样。这个地址分配是乐鑫官方文档里规定的不能随便改。填错地址的后果就是模块刷完不启动或者启动后不断重启。4.3 波特率的选择与稳定性波特率越高烧录越快。115200 烧 1MB 大概要 30 秒左右460800 能缩短到 10 秒以内。但波特率越高对 USB 转 TTL 模块的质量要求也越高。CH340 在 460800 下有时候会丢数据CP2102 一般没问题。我的建议是第一次刷的时候用 115200确认流程没问题了再尝试提高波特率。如果烧录过程中报同步失败或者校验错误先把波特率降回 115200 再试。5. 烧录过程中最常见的几个报错及处理5.1 Failed to connect to ESP8266: Timed out waiting for packet header这个报错出现的频率最高基本占了所有失败案例的一半以上。它的意思是工具尝试跟模块握手但模块没有回应。原因通常有这几个GPIO0 没有拉低模块没进入下载模式检查接线供电不足模块上电后反复重启换供电方案TX/RX 接反检查交叉连接串口号选错在设备管理器里确认 COM 号模块本身损坏换一个模块试试排查的时候按这个顺序来先确认 GPIO0 和 RST 的操作顺序对不对再量一下 VCC 电压是不是稳定的 3.3V然后检查 TX/RX 有没有接反最后换模块。5.2 Serial data error 或 Invalid head of packet这个报错通常是通信质量的问题可能的原因波特率太高USB 转 TTL 模块跟不上杜邦线太长或者接触不良电源纹波太大解决办法很简单降波特率、换短线、加滤波电容。我一般会在 ESP01 的 VCC 和 GND 之间并一个 100uF 的电解电容能明显改善稳定性。5.3 烧录成功但模块不工作有时候工具提示FINISH了但模块上电后串口没有任何输出。这种情况一般是固件版本跟 flash 容量不匹配比如 1MB 的模块刷了 2MB 的固件地址填错检查每个 bin 文件的起始地址flash 模式选错ESP01 一般用 DIO如果选了 QIO 可能不启动遇到这种情况先确认固件版本再核对地址表最后试试把 SPI Mode 改成 DIO。6. 刷完之后怎么验证固件是否正常工作6.1 用串口助手发 AT 指令刷完固件后把 GPIO0 断开悬空或接高电平重新上电模块就进入正常运行模式了。这时候打开串口助手比如 SSCOM、PuTTY波特率设成 115200发送AT如果返回OK说明固件跑起来了。接着可以发几个常用指令测试ATGMR查看固件版本信息ATCWMODE1设置成 Station 模式ATCWLAP扫描附近的 WiFiATCWJAPSSID,password连接 WiFi如果AT有返回但ATCWLAP没反应可能是天线部分有问题检查一下 ESP01 的 PCB 天线周围有没有金属遮挡。6.2 常见 AT 指令返回异常的处理有时候发AT返回的是乱码这通常是波特率不对。AT 固件默认波特率是 115200但有些版本可能是 74880 或 9600。可以逐个试一下。如果返回ERROR说明指令格式不对注意 AT 指令后面要加回车换行\r\n很多串口助手默认只发\n需要在设置里改成发送\r\n。6.3 固件版本确认与后续升级用ATGMR可以看到当前固件的版本号和编译时间。如果版本太老有些新指令不支持可以考虑刷更新的版本。升级的流程跟第一次刷一样只是固件文件换成新版本的。提示升级之前最好把原来的固件备份一下万一新固件有问题还能刷回去。备份的方法是用 Flash Download Tool 的读取功能不过这个功能在 V1.5.1 里藏得比较深需要先切换到Develop模式才能看到。7. 一些提高成功率的实操经验7.1 供电是重中之重我刷 ESP01 失败的经历里至少有一半是供电问题。USB 转 TTL 模块上的 3.3V 引脚标称能输出 500mA但实际上很多模块用的是 AMS1117 稳压芯片压差大、发热严重带 ESP01 这种瞬时电流能到 300mA 的负载很吃力。我的做法是单独用一个 3.3V 稳压电源给 ESP01 供电USB 转 TTL 只负责通信不负责供电。这样成功率能提高到九成以上。7.2 接线要短、要牢杜邦线看起来方便但接触电阻大尤其是那种便宜的排线用几次就松了。我后来改用焊接的方式把线直接焊在 ESP01 的引脚上稳定性好很多。如果非要用杜邦线尽量选短一点的20cm 以内。7.3 先测试再批量如果你要批量刷几十片先拿一片出来完整走一遍流程确认参数没问题了再批量操作。批量的时候可以用 USB Hub 扩展多个串口Flash Download Tool 支持同时烧录多个模块每个模块对应一个 COM 口。7.4 记录每次成功的参数我习惯把每次成功烧录的参数记下来包括固件版本、地址分配、波特率、SPI 模式。下次刷同样的模块直接照抄省得重新试。这个习惯帮我省了很多时间尤其是在刷不同批次的模块时参数可能略有差异。7.5 遇到问题先降速不管是连接超时还是校验错误第一反应应该是把波特率降到 115200。大部分通信问题都能通过降速解决。如果降速还不行再检查接线和供电。8. 关于 ESP8266 固件的一些延伸话题8.1 AT 固件和 NodeMCU 固件的区别AT 固件是指令式的你通过串口发指令控制它它本身不跑你的代码。NodeMCU 固件是脚本式的里面内置了 Lua 解释器你可以直接写 Lua 脚本上传运行。两者用途不同AT 固件适合搭配单片机使用NodeMCU 适合独立开发。8.2 固件安全的一点常识烧录固件的时候Flash Download Tool 默认是不加密的。如果你的产品要量产可以考虑启用 flash 加密功能防止固件被读取。不过 ESP8266 的加密功能比较有限ESP32 系列支持得更好。对于个人玩票来说加密不是必须的。8.3 固件烧录与云端平台的配合很多人刷 AT 固件是为了让 ESP8266 连接云端平台比如通过 MQTT 协议上传数据。AT 固件本身支持 TCP/UDP 通信你可以在单片机里实现 MQTT 协议也可以刷支持 MQTT 的定制固件。这块内容展开就多了以后有机会再单独聊。8.4 从 ESP8266 过渡到 ESP32如果你已经玩熟了 ESP8266想升级到 ESP32烧录流程其实差不多Flash Download Tool 同样支持。区别在于 ESP32 的固件文件更多地址分配更复杂而且 ESP32 支持双核和蓝牙功能强很多。乐鑫的开发文档里对 ESP32-S3 这些新芯片有详细说明感兴趣可以去看。说到底刷固件这件事本身不难难的是第一次做的时候不知道哪里会出问题。把供电、接线、参数这三块搞定了剩下的就是熟练度的问题。我刚开始刷的时候一片 ESP01 折腾了一下午现在基本上两分钟搞定一片。希望这篇内容能帮你省下那一下午的时间。
企业数字化 ERP 产品动态
相关推荐
X79平台M.2 NVMe固态升级指南:从接口原理到性能实测 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 15:29:31
dateparse4cj API完全指南:8大解析方法怎么选?一文讲透日期解析所有姿势 dateparse4cj API完全指南:8大解析方法怎么选?一文讲透日期解析所有姿势 【免费下载链接】dateparse4cj dateparse4cj 是一个基于 cangjie 标准库实现的高性能、功能丰富的日期时间解析库。它能够自动识别并解析多种格式的日期字符串,支持全球… · 2026/9/24 15:29:24
应用案例 | 船舶海洋:基于MBSE 的船舶系统电磁兼容性设计专用软件开发 一、项目背景随着船舶系统复杂度的不断提升,舰载电子设备的数量持续增加,系统间的电磁耦合关系也日益变得复杂,传统的基于文档的电磁兼容性设计方式已暴露出流程衔接性差、协同作业效率低、知识复用度不足等问题。以基于模型的系统工程&#… · 2026/9/24 16:03:02
软件测试的分类 软件测试的分类按手段划分:手工测试、自动化测试按是否运行代码划分:静态测试、动态测试按技术划分:黑盒测试、白盒测试、灰盒测试按阶段划分:单元测试、集成测试、系统测试、验收测试性能测试冒烟测试:对软件的基本功… · 2026/9/24 16:03:02
高精度三维线圈动态屏蔽系统:弱磁实验环境优化核心方案 在弱磁精密检测、磁性材料研发、传感器标定、生物磁学研究等高端科研领域,环境磁场干扰是影响实验数据精度的核心难题。地磁场固有偏移、地铁、电梯、电气设备产生的动态交变磁干扰,会直接导致微弱磁场实验数据漂移、重复性差、误差超标。传统被动磁屏蔽… · 2026/9/24 16:03:02
GEO技术原理深度解析:AI引用概率=权威度×结构化×语义匹配×多源一致×时效性 总有人把 GEO 说成玄学。其实它有清清楚楚的技术原理——业内把核心逻辑总结成一个公式:AI 引用概率 权威度 结构化程度 语义匹配 多源一致性 时效性。五个变量,缺一不可。下面逐个拆开说。
变量一:权威度——占了快一半
AI 打分时&… · 2026/9/24 16:03:02
Koin 在 Kotlin Multiplatform(KMP)中的完整配置指南:依赖、模块划分与多平台启动 后端 【免费下载链接】koin Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform 项目地址: https://gitcode.com/gh_mirrors/ko/koin 点击查看 免费下载 Koin 为 Kotlin Multiplatform(KMP… · 2026/9/24 16:02:55
douyin-downloader 抖音批量下载教程:三步从零跑通,去水印下载与自动归档 douyin-downloader 抖音批量下载教程:三步从零跑通,去水印下载与自动归档 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplicatio… · 2026/9/24 16:02:55
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44