ESP32 闪烁上传开始并因超时而失败

Posted

技术标签:

【中文标题】ESP32 闪烁上传开始并因超时而失败【英文标题】:ESP32 Flashing upload starts and fails with timeout 【发布时间】:2019-12-27 00:21:54 【问题描述】:

我有一个 ESP32-WROOM,as seen here。

在 Arduino IDE 中,我编译并验证了我的草图,然后尝试上传。

我收到以下错误:

esptool.py v2.1
Connecting........___
Chip is ESP32D0WDQ6 (revision (unknown 0xa))
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 921600
Changed.
Configuring flash size...
Warning: Could not auto-detect Flash size (FlashID=0xffffff, SizeID=0xff), defaulting to 4MB
Compressed 8192 bytes to 47...

A fatal error occurred: Timed out waiting for packet content
A fatal error occurred: Timed out waiting for packet content

Invalid library found in /Users/me/Documents/Arduino/hardware/espressif/esp32/libraries/BLE: no headers files (.h) found in /Users/me/Documents/Arduino/hardware/espressif/esp32/libraries/BLE
Invalid library found in /Users/me/Documents/Arduino/hardware/espressif/esp32/libraries/BLE: no headers files (.h) found in /Users/me/Documents/Arduino/hardware/espressif/esp32/libraries/BLE

我在 IDE 中使用这些设置进行上传:

我将波特率更改为115200,然后还查看了串口监视器,我看到出现以下消息:

ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0371 
⸮ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x23 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
ts Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 37⸮ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x23 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
ts Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x23 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
ts Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 37ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x23 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
ts Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
(SPI_FAST_FLASH_BOOT)
flash read err, 1000
ets_main.c 371 
⸮ets Jun  8 2016 00:22:57

rst:0x10 (RTCWDT_RTC_RESET),boot:0x23 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2))
waiting for download
ts Jun  8 2016 00:22:57

接下来是:

esptool.py v2.1 正在连接........ ._____.....______.....____上传草图时出错 _

发生致命错误:无法连接到 ESP32:在 Arduino IDE 上等待数据包头超时。

请帮助我了解我需要做什么才能将此草图上传工作直接到 ESP 芯片。

【问题讨论】:

尝试降低波特率 我将其更改为 115200 但我得到了相同的行为。 检查连接,尝试使用不同的电缆连接不同的 USB 端口 @RenegadeAndy 你解决了这个问题吗?你检查过esp32保险丝吗?我对 esp32 板也有同样的问题,我怀疑是保险丝。 【参考方案1】:

您需要断开 Vin 引脚,直到代码成功上传,并在上传草图时按住BOOT 按钮,直到连接..线消失。

【讨论】:

【参考方案2】:

您可以通过在 EN 和 GND 之间连接一个 10uF 电解电容使 ESP32 自动进入 flash 模式。 确保观察电容器的极性。 您可以将电容器焊接到 ESP32 板上,如附图所示。 How to add an auto-enter-flash-mode capacitor on an ESP32

信用应该去 Make ESP32 auto-enter flash mode

【讨论】:

【参考方案3】:

您需要 115200 波特设置。

我相信您收到此错误是因为 ESP32 未处于闪存模式。您的计算机正在等待 ESP32 超时。

Connecting........_____....._____....._____....._____....._____....._____....._____....._____....._____.....____An error occurred while uploading the sketch _

同时按住 BOOT 和 EN,然后松开 EN。如果您的设备上有两个按钮,请按住一个并按下另一个。如果这不起作用,请尝试其他按住/按下按钮组合:)

【讨论】:

我不确定,我收到 DOWNLOAD_BOOT 消息,当我观看串行监视器时,它说正在等待下载。这对我来说说它处于正确的启动模式。我没有使用开发板,它只是 esp32-wroom-32 直接 我不确定抱歉。我离开了 Arduino IDE,直接使用ESP-IDF 作为组件使用Arduino-ESP。我不确定这是否会有所帮助。 这就是现在使用 esp32 的战略方式吗? @RenegadeAndy 对于任何重要的项目,我建议通过 ESP-IDF 和 Arduino-ESP 作为组件工作。我在 ESP32 论坛上阅读过类似的建议。 Arduino IDE 有一点学习曲线,但作为回报,您可以获得很多控制权。 亚历克斯是正确的。如果您使用的是 ESP32 开发板之一,则需要一根 FTDI 电缆,除非您想自己手动操作 EN 和 IO0 线。【参考方案4】:

我在自定义板上遇到了同样的问题。根据数据表将 ESP32 置于下载模式,您需要将 IO2(n24) 和 IO0(25) 设置为 0,在我的情况下,我有一些传感器连接到 IO2 。 同样来自数据表:" * 引脚 SCK/CLK、SDO/SD0、SDI/SD1、SHD/SD2、SWP/SD3 和 SCS/CMD,即 GPIO6 到 GPIO11 已连接 到模块上集成的集成SPI flash,不推荐用于其他用途。”

【讨论】:

以上是关于ESP32 闪烁上传开始并因超时而失败的主要内容,如果未能解决你的问题,请参考以下文章

STM32 通过引导加载程序闪烁失败 (UART1)

Arduino ESP8266利用定时器中断控制LED闪烁示例程序二

将图像上传到c ++中的闪烁

横向定位失败,屏幕闪烁

<4> esp8266 iot LED灯闪烁

<4> esp8266 iot LED灯闪烁