升级Mac系统后出现"python": executable file not found in $PATH
Apple 从 macOS 12.3 中删除了旧的 Python 2,但是Arduino ESP32 依赖于 Python 解释器,在 Arduino IDE 中构建可能会失败并出现错误:
"python": executable file not found in $PATH
我们需要将Arduino的相关配置更改为 python3 就可以解决,以esp32 2.0.2版本为例,修改一下文件。
~/Library/Arduino15/packages/esp32/hardware/esp32/2.0.2/platform.txt
找到这一行,
tools.gen_esp32part.cmd=python "{runtime.platform.path}/tools/gen_esp32part.py"
将python改成python3,
tools.gen_esp32part.cmd=python3 "{runtime.platform.path}/tools/gen_esp32part.py"
"Brownout detector was triggered" 错误
出现错误的原因是因为芯片检测到系统电压低于阈值(也称为“掉电电压”),它会关闭处理器,这是为了保留内存内容并避免损坏。导致这个错误的成因往往是如下几点。
- USB 数据线质量差;
- USB线太长;
- 电路板有一些缺陷(焊点不良);
通常可以通过更换质量更好数据线来解决这个问题,更换后还是不能解决,可以考虑通过程序关闭掉电检测的功能,代码如下,
#include “soc/soc.h” //disable brownour problems
#include “soc/rtc_cntl_reg.h” //disable brownour problems
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector in the setup.
"esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0"错误
出错的原因有可能是芯片的内部SPI接口质量问题,如果改用低速一点的烧录芯片Flash Mode,也行能让芯片复活。如果使用Arduino默认的QIO,是最高速的烧录方式,改成DIO问题可能就会解决。
这里简单介绍一下esp32的烧录方式,一共有四种:DIO, DOUT, QIO 和 QOUT,
- QIO: 最快的烧录方式,使用了4个pin来做地址和数据传输
- QOUT:比QIO慢15%,使用了4个pin做数据传输
- DIO:比QIO慢45%,使用了2个pin做地址和数据传输
- DIO:比QIO慢55%,使用了2个pin做数据传输