检查“工具 - Flash Mode” 是否为“DIO”,碰到这个问题的原因是不知道什么时候改成了“QIO”,改回“DIO”进行烧录板子就正常了。
网上博文:理解 ESP32 Flash 烧写的 DOUT/DIO/QOUT/QIO 配置_donotchgbin_coder.mark 的博客-CSDN 博客
加大 Flash Size,或者缩减项目大小,尤其是使用了字库的时候,需要对字库进行裁剪,编译即可通过。
网上博文
如何编写发布 Arduino 库 - 知乎 (zhihu.com)
常见编程软件注释 @brief @param @return_嵌入式小刘的博客-CSDN 博客
ESP32 解码显示 JPG 和 PNG 图片_null 空的博客-CSDN 博客
去年烧录的时候突然出现 A fatal esptool.py error occurred: Failed to connect to ESP8266: Timed out waiting for packet header
的报错,一直未得到解决。
今天收拾东西的时候把 D1 Mini 又翻了出来,抱着试试看的心态尝试烧录,第一次成功烧录,第二次开始一直又都是失败,报错信息仍旧。
经过一年多的学习与摸索,也知道了 Flash 模式,查找 Lolin(Wemos) D1 Mini V4.0.0 引脚图及定义:
正面图 | 背面图 |
---|---|
![]() |
![]() |
引脚图 |
---|
![]() |
查看引脚定义,找到 GPIO0 下拉的时候进入 Flash 模式,断开数据线,用一根杜邦线将 GPIO0 引脚与 GND 引脚相接。
重新接上数据线,重新进行烧录,需要注意的是 GPIO0 引脚和 GND 引脚维持连接,直到出现 Connecting........
的时候才断开 GPIO0 引脚与 GND 引脚的连接。
串口终于正常打印 WiFiScan 例程的日志了。
如果还是报同样的错误,降低 Upload Speed ,尝试几次总会成功的。(实操中有时候 115200 可以,有时候又不可以,不可以的时候降低到 57600 又可以了,原因未知。从串口打印信息看不断在重启。)
今天手上一块 4.2 寸的墨水屏,在调试代码的过程中突然报 "Busy Timeout!" ,屏幕全屏变成了红色,从侧面可以看到程序还在正常运行,界面有不明显的变化。目前从大连佳显上查到的几种情况说明,暂未解决。
1)SPI 串口通讯失败,IC 没有正常工作,这时的 BUSY 引脚是始终处于低电平状态。
2)电子纸供电电压偏低,导致 IC 没有正常工作。
3)电子纸 FPC 插反,一般是金手指朝上插接,导致 IC 没有正常工作。
4)电子纸驱动程序错误,一般电子纸 IC 分 SSD 系列和 UC 系列,这两款 IC 的 BUSY 状态是反的。
5)BUSY 引脚未正常接入电路,导致 MCU 一直判断 BUSY 为忙状态。
原文详见链接 >>> 驱动 IC 停在 BUSY 状态的处理办法_电子纸屏-大连佳显电子有限公司 (good-display.cn)
可能是 SPI 驱动不成功导致的:
1.先检查接线是否正确。
2.在检查 SPI 是否开启,参数是否配置正确。(波特率、模式等参数)
原文详见链接 >>> E-Paper Driver HAT - Waveshare Wiki
另有一篇文章是介绍 STM32IIC 死锁解决的,先记下
解决 STM32 硬件 IIC 死锁在 BUSY 状态的方法讨论_lzs_blog 的博客-CSDN 博客