Arduino IDE中ESP32程序下载失败的解决方法

首次接触Arduino IDE,配置ESP32环境用了一周,前面一直是upload时提示A fatal error occurred: Timed out waiting for packet header,在windows10和ubuntu22都试过了,一模一样的提示,我按照网上的方法按住boot(GPIO0),还是不行,最后我尝试更换了一块板子,这块板子成功了。

在这里插入图片描述

如果烧录成功,则会有下面的提示:

在这里插入图片描述

我分析了一下,两款ESP32C3的板子不同之处,在于UART转USB桥接芯片不同,一块用的是CH340G,另外一款用的是CP2102,在ESP32官方文档中有提到下载方式,代码下载本质上是通过串口,也就是TX,RX,但只有这两个线还不能完全自动下载,因为需要想办法让ESP32进入下载启动模式,而进入下载启动模式的方法是让系统重启,重启时GPIO0和GPIO2保持低电平。

在这里插入图片描述

关于自动reset和自动拉低就需要借用串口的流控,RTS,DTR,,流控本身不是用来作自动下载代码的控制用的,但因为我们可以人为的控制他们的时序,变成类似普通GPIO功能,官方给出的参考电路如下:

在这里插入图片描述

利用RTS,DTR控制三极管的开关,达到控制GPIO0和GPIO2的目的。先给EN一个低电平脉冲,让系统重启,同时在EN拉高的瞬间,把GPIO0,GPIO2拉低,这样就能让系统进入下载启动模式,这样就解决的自动下载的问题。

补充一下ESP32/ESP8266的下载时序
EN(RST)上升沿的时候,GPIO0保持低电平:
在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值