ESP01刷AT固件全流程:Flash Download Tool配置与避坑指南
发布时间:2026/9/24 12:58:52 作者:尧图编辑部 阅读量:1,286

1. 为什么ESP01到现在还值得折腾ESP01这个模块放到今天来看参数确实不够看只有8个可用IO、1MB Flash、没有USB接口、天线还是PCB板载的。但如果你手头有一堆吃灰的ESP01或者某个小项目只需要一个能联网的串口透传模块它依然是性价比极高的选择。我最近翻出来十几片ESP01和ESP01S打算把它们刷上AT固件用来做几个简单的数据采集节点顺便把整个刷写流程重新走了一遍。AT固件是什么简单说就是乐鑫官方提供的一套固件烧录进去之后你不需要写一行代码直接用串口发AT指令就能让ESP8266连WiFi、建TCP连接、发HTTP请求。对于不熟悉嵌入式开发的人来说这相当于把ESP8266变成了一个“带WiFi功能的串口模块”你只需要会发串口命令就行。而Flash Download Tool是乐鑫官方出品的烧录工具图形化界面不需要装Python环境不需要敲esptool.py命令对新手非常友好。这篇文章适合谁看如果你手上有ESP01或ESP8266模块想刷AT固件但被各种接线、模式、地址搞晕了或者你之前用其他工具刷失败过那这篇内容就是为你准备的。我会把整个流程拆到每一步都能照着做的程度包括接线、工具配置、固件选择、常见报错处理以及我自己踩过的几个坑。2. 刷写前的整体思路与方案选型2.1 为什么选Flash Download Tool而不是esptool.py刷ESP8266固件有好几种方式esptool.py命令行、Arduino IDE、PlatformIO、Flash Download Tool。我选Flash Download Tool的原因很直接它是乐鑫官方工具图形界面不需要配置Python环境不需要记命令行参数而且支持多固件同时烧录。对于只是偶尔刷几个模块的人来说装个Python再pip install esptool然后还要记一堆参数实在没必要。当然esptool.py有它的优势比如可以脚本化、可以集成到自动化流程里。但如果你只是想把AT固件刷进去Flash Download Tool的图形界面已经足够而且出错的时候提示信息也比较直观。我实测下来用Flash Download Tool刷ESP01的成功率很高只要接线和模式没问题基本一次过。2.2 ESP01的硬件特点与刷写限制ESP01和ESP01S最大的问题是引脚太少而且没有复位按键和Flash按键。ESP01S稍微好一点但也没有按键。这意味着你不能像NodeMCU那样按住Flash键再复位进入下载模式必须通过外部接线来控制GPIO0和RST引脚。ESP01的引脚定义如下VCC、GND、TX、RX、CH_PDEN、RST、GPIO0、GPIO2。其中CH_PD必须拉高才能工作GPIO0在下载模式下必须拉低RST在下载时需要先拉低再拉高或者上电时保持低电平。这些操作都需要手动接线或者用USB转TTL模块的DTR/RTS引脚来控制。另一个限制是供电。ESP01在刷写时电流需求比较大尤其是WiFi工作时峰值电流能到300mA以上。很多USB转TTL模块的3.3V输出电流不够导致刷写失败或者模块不断重启。我建议用独立的3.3V稳压电源或者至少用一个能提供500mA以上电流的USB转TTL模块。2.3 AT固件版本选择与下载来源AT固件有多个版本我这次用的是V1.5.1版本对应的固件文件是ESP8266_AT_Bin_V1.5.1。这个版本比较稳定支持大部分常用AT指令包括WiFi连接、TCP/UDP、HTTP、MQTT等。乐鑫官方的AT固件可以在其官方文档页面找到下载链接通常是一个压缩包里面包含多个bin文件。需要注意的是AT固件分为“出厂默认”和“用户自定义”两种出厂默认固件包含了bootloader和AT应用适合直接烧录。用户自定义固件则需要自己编译适合有特殊需求的场景。我们这次刷的是出厂默认固件直接烧录即可。固件包里的文件通常包括boot_v1.7.bin、user1.1024.new.2.bin、blank.bin、esp_init_data_default_v08.bin。不同版本的AT固件文件名可能略有不同但基本结构是一样的。烧录时需要指定每个文件的烧录地址这个地址在固件包的readme或者官方文档里有说明。3. 硬件接线与下载模式进入方法3.1 所需材料清单在开始之前你需要准备以下东西ESP01或ESP01S模块一个USB转TTL模块一个推荐CH340C或CP2102稳定性好杜邦线若干母对母或公对母根据你的模块接口定3.3V稳压电源一个可选但强烈建议电脑一台Windows系统Flash Download Tool只支持WindowsUSB转TTL模块的选择很重要。我试过几种便宜的CH340模块有些在刷写时会出现供电不足的情况导致模块反复重启。后来换了一个带独立3.3V稳压的模块问题就没了。如果你手头只有普通模块建议额外接一个3.3V电源给ESP01供电USB转TTL只负责TX/RX和GND。3.2 接线表与接线逻辑ESP01的接线是刷写过程中最容易出错的地方。下面是我实际使用的接线方案ESP01引脚连接到说明VCC3.3V电源正极必须3.3V不能接5VGND电源负极和USB转TTL的GND共地TXUSB转TTL的RX交叉连接RXUSB转TTL的TX交叉连接CH_PD3.3V电源正极必须拉高才能工作GPIO0GND刷写时拉低进入下载模式GPIO2悬空或拉高建议悬空RST悬空或接复位电路刷写时先拉低再拉高这里的关键点是GPIO0在刷写时必须拉低刷完之后要断开才能正常运行。CH_PD必须拉高否则模块不工作。TX和RX要交叉连接即ESP01的TX接USB转TTL的RXESP01的RX接USB转TTL的TX。注意ESP01的VCC绝对不能接5V否则会烧毁模块。USB转TTL模块上如果有5V和3.3V两个输出一定要确认接的是3.3V。3.3 进入下载模式的操作步骤进入下载模式有两种方式手动复位和自动复位。手动复位适合没有DTR/RTS引脚的USB转TTL模块自动复位适合有DTR/RTS的模块。手动复位的操作顺序是先给ESP01上电VCC和CH_PD接3.3V此时GPIO0已经拉低然后给RST引脚一个低电平脉冲先拉低再拉高模块就会进入下载模式。如果你没有控制RST可以在上电前就把GPIO0拉低然后上电这样也能进入下载模式。自动复位是通过USB转TTL的DTR和RTS引脚来控制RST和GPIO0。具体接线是DTR接GPIO0RTS接RST。然后在Flash Download Tool里选择对应的复位方式。这种方式更方便不需要手动拔插线。我个人的习惯是手动复位因为接线简单而且不容易出错。自动复位虽然方便但有时候DTR/RTS的电平逻辑和模块不匹配反而会导致进入不了下载模式。4. Flash Download Tool配置与烧录实操4.1 工具下载与界面说明Flash Download Tool可以从乐鑫官方文档页面下载下载下来是一个压缩包解压后直接运行exe文件即可不需要安装。打开之后界面分为几个区域芯片类型选择、固件文件列表、烧录地址设置、串口选择、波特率设置、操作按钮。第一步是选择芯片类型。在“ChipType”下拉框里选择“ESP8266”。然后选择“WorkMode”为“Develop”。接下来就是添加固件文件和设置烧录地址。4.2 固件文件与烧录地址配置AT固件包里的文件需要按照特定地址烧录地址错了模块就启动不了。下面是我使用的V1.5.1版本的烧录地址配置文件烧录地址说明boot_v1.7.bin0x00000启动引导文件user1.1024.new.2.bin0x01000AT应用固件esp_init_data_default_v08.bin0x3FC000初始化参数blank.bin0x3FE000空白填充在Flash Download Tool里点击每个文件行右侧的“...”按钮选择文件然后在地址栏输入对应的地址。注意地址是十六进制不要输错。如果地址不对模块上电后会不断打印错误信息无法正常工作。提示不同版本的AT固件文件名和地址可能不同烧录前一定要看固件包里的readme文件或者官方文档。我见过有人把user1.bin烧到0x00000结果模块一直重启。4.3 串口与波特率设置选择正确的串口号这个在设备管理器里可以看到。波特率我一般用115200这个速度比较稳定。如果你用的是CH340模块115200基本没问题。如果刷写过程中经常出错可以降到74880或者57600试试。Flash Download Tool的波特率设置有两个下载波特率和串口通信波特率。下载波特率可以设高一点比如460800这样烧录速度快。但有些USB转TTL模块不支持高波特率会导致烧录失败。我一般用115200虽然慢一点但稳定。4.4 开始烧录与进度观察配置好之后点击“START”按钮开始烧录。工具会先尝试同步模块如果模块没有进入下载模式会提示“等待上电同步”。这时候你需要给模块复位或者重新上电。如果一切正常进度条会开始走每个文件烧录完成后会显示“FINISH”。烧录完成后工具会显示“LEAVE”或者“FINISH”提示。这时候先断开GPIO0的接地然后给模块复位或者重新上电。如果AT固件烧录成功模块上电后串口会打印一串启动信息最后显示“ready”。这时候你就可以发AT指令了。5. 常见问题与排查技巧实录5.1 同步失败与超时问题“a fatal esptool.py error occurred: failed to connect to esp8266: timed out”这个报错我见过太多次了。原因通常有三个接线不对、模式不对、供电不足。接线不对最常见的是TX/RX没有交叉或者CH_PD没有拉高。模式不对是指GPIO0没有拉低模块没有进入下载模式。供电不足是指USB转TTL的3.3V输出电流不够模块在同步时不断重启。排查顺序是先检查接线确认TX/RX交叉、CH_PD拉高、GPIO0拉低。然后检查供电用万用表量一下3.3V电压是否稳定。最后检查串口号和波特率是否正确。如果还是不行换一个USB转TTL模块试试。5.2 烧录成功但模块不启动有时候烧录显示成功但模块上电后没有任何输出或者不断打印乱码。这种情况通常是烧录地址错了或者固件文件不匹配。检查一下每个文件的烧录地址是否和固件包里的说明一致。另外确认一下你烧的是AT固件而不是其他固件。还有一种可能是Flash容量不匹配。ESP01通常是1MB Flash但有些模块是512KB。如果你烧的固件是针对1MB的而模块只有512KB就会启动失败。这种情况下需要换对应的固件版本。5.3 AT指令无响应的排查模块启动后串口打印“ready”但你发AT指令没有反应。首先确认串口波特率是否正确AT固件默认波特率通常是115200。然后确认你发的指令格式是否正确AT指令需要以回车换行结尾。最后确认模块是否已经连接到WiFi有些指令需要在WiFi连接状态下才能执行。如果还是没反应可以尝试发送“ATRST”复位模块或者检查TX/RX是否接反了。有时候模块的TX接USB转TTL的TX导致通信不了这个很容易搞错。5.4 常见问题速查表问题现象可能原因解决方法同步失败超时接线错误、模式不对、供电不足检查TX/RX交叉、GPIO0拉低、CH_PD拉高、换电源烧录成功但不启动地址错误、固件不匹配、Flash容量不对核对烧录地址、换对应固件版本AT指令无响应波特率不对、指令格式错误、TX/RX接反确认115200波特率、加回车换行、检查接线模块不断重启供电不足、固件损坏换3.3V电源、重新烧录串口打印乱码波特率不对、晶振频率不对换74880或115200试试6. 刷写后的验证与AT指令测试6.1 串口工具选择与连接刷完AT固件后你需要一个串口工具来发AT指令。我常用的是SSCOM或者PuTTY。SSCOM是国产工具界面简单支持自动添加回车换行很适合发AT指令。PuTTY也可以但需要手动设置回车换行。连接时选择正确的串口号波特率115200数据位8停止位1校验位无。打开串口后如果模块已经启动你会看到启动信息。如果没有按一下复位键或者重新上电。6.2 基础AT指令测试流程先发一个“AT”如果模块正常会返回“OK”。然后发“ATGMR”查看固件版本确认AT固件版本是否正确。接着发“ATCWMODE1”设置为Station模式发“ATCWLAP”扫描附近的WiFi发“ATCWJAPSSID,PASSWORD”连接WiFi。连接成功后发“ATCIFSR”查看获取到的IP地址。然后可以发“ATCIPSTARTTCP,example.com,80”建立TCP连接发“ATCIPSEND”发送数据。这一套流程走下来基本就验证了AT固件的主要功能。6.3 实际项目中的经验技巧在实际项目中我发现AT固件有几个地方需要注意。第一是WiFi连接的超时时间默认是15秒如果路由器响应慢可能会连接失败可以通过“ATCWJAP”的参数调整。第二是TCP连接的KeepAlive默认是关闭的长时间不通信可能会被服务器断开需要手动开启。另外AT固件的串口缓冲区有限如果一次性发送大量数据可能会丢包。建议分批次发送每次不超过2048字节。还有AT指令的响应时间不固定有些指令需要等待几秒程序里要做好超时处理。7. 我个人在实际操作中的几点体会刷ESP01的AT固件这件事说难不难说简单也不简单。难点不在工具本身而在硬件接线和模式控制。我见过太多人卡在“同步失败”这一步最后发现是CH_PD没接或者GPIO0没拉低。所以我的建议是接线的时候一定要对照引脚图一根一根确认不要凭感觉。另一个体会是供电真的很重要。我一开始用了一个便宜的USB转TTL模块3.3V输出只有100mA刷写时模块不断重启换了带独立稳压的模块之后一次就成功了。如果你手头没有合适的电源可以找一个旧的手机充电器加上一个3.3V稳压板效果比USB转TTL自带的3.3V好很多。最后分享一个小技巧如果你经常刷ESP01可以做一个简单的刷写座把ESP01的引脚引出到排针上然后用跳线帽控制GPIO0和RST。这样每次刷写只需要插上模块不用重新接线效率高很多。我自己用洞洞板做了一个配合Flash Download Tool刷一个模块不到一分钟。