1.最进在使用ESP32模块,使用Arduino框架构建程序,就简单几行程序。再打开串口工具软件输出一下信息:
Brownout detector was triggered
ets Jun 8 2016 00:22:57
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0030,len:1184
load:0x40078000,len:13260
load:0x40080400,len:3028
entry 0x400805e4
根据提供的信息,这是ESP32启动时的引导信息。其中包含了一些有关启动过程的详细信息,
看了网上一些博主分享的解决办法,我尝试用了他们的方法,出现上面输出信息.....
所以上面的图是解决后的输出信息!
分析输出内容:
"Brownout detector was triggered" 表示ESP芯片检测到了电压下降(电压失调)的情况。这种情况通常发生在芯片所需的电压供应不足时。
可能的常见原因包括:
-
电源问题:ESP32需要稳定的供电。如果供电不稳定,可能会导致芯片重启。确保你使用的电源能够提供足够的电流,并检查电源线路是否存在问题。(2.这个是现在我遇到的问题!)
-
硬件损坏:ESP32芯片或其他硬件元件的损坏可能导致系统重启。检查芯片和其他电子元件是否正常工作,确保它们没有受到损坏。
-
环境问题: 工作环境中可能存在干扰或者电磁波影响,导致电压供应不稳定。过高的温度可能导致ESP32重启,并提供适当的散热措施。
-
软件更新问题:如果你最近升级了ESP32的固件或库,可能会导致兼容性问题或错误。回退到之前的稳定版本,并检查是否解决了重启问题。(1.这个是现在我遇到的问题!)
-
外设冲突:某些外设可能与ESP32引脚冲突,导致芯片重启。检查你的电路设计和接线是否正确,确保外设与ESP32兼容并正常工作。
-
软件错误:软件编程错误可能会导致ESP32重启。检查你的代码是否存在死循环、内存溢出或其他错误。确保你的代码没有导致系统崩溃并重启。(中断函数中不能有阻塞程序,要不然也会发送反复重启!!!!)
如果你无法确定重启问题的具体原因,可以使用调试工具(如串口监视器)来获取更多的错误信息,以帮助你定位问题并解决重启的根本原因。
解决这个问题的方法包括:
- 检查电源供应,确保其提供足够稳定的电压给芯片。
- 检查电路设计和连接,确保没有因为电路问题导致电压不稳定。
- 在工作环境中减少电磁干扰的影响。
让我们逐行来解释:
-
rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
- 这说明了引导时的复位原因(软件CPU复位)以及引导模式(从SPI Flash快速启动)。
-
configsip: 0, SPIWP:0xee
- 这里描述了芯片的配置参数,包括了sip配置和写保护位的设置。
-
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
- 这部分给出了时钟驱动和数据驱动等参数的配置,每个参数对应不同的引脚和外设。
-
mode:DIO, clock div:1
- 这说明了SPI Flash的模式(DIO)和时钟分频器的设置。
-
load:0x3fff0030,len:1184
- 这是在引导过程中加载的程序的起始地址和长度。
-
load:0x40078000,len:13260
- 这是另一个程序加载的起始地址和长度。
-
load:0x40080400,len:3028
- 这是另一个程序加载的起始地址和长度。
-
entry 0x400805e4
- 最后一行给出了程序的入口地址。
注意:起初我的ESP32串口输出不是这个信息。我使用的是这个开发模块
然后我去换了供电方式,这个时候模块正常。就有点奇怪我买来的时候USB供电正常,过一段时间拿ESP32模块测试程序才发现这个问题!
我解决步骤:1.重新下载新固件(ESP32_GENERIC-IDF3-20200902-v1.13.bin)参考这位博主说明:http://t.csdnimg.cn/jCvA5
2.重新下载程序后。此时的串口输出的内容是文章上面分析的内容。
总结:
仅供学习参考!
在某些情况下我们所遇到的问题可能不同!但是不慌,办法是有的! 可能需要时间!!!!
希望你不要遇到此类问题。 好运上你身!哈哈哈哈! iTEM