ESP32-Ardunio框架, PlatformIO-vscode,
如果程序编译没有报错, 并且烧录成功后,
不止一次,多次弹出/打印出 下面文本
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ets Jun 8 2016 00:22:57
rst:0x1 (POWERON_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:2
load:0x3fff0030,len:1184
load:0x40078000,len:13132
load:0x40080400,len:3036
entry 0x400805e4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
这个其实就是 ESP32 Reset/复位时 会打印的信息
多次复位, 多为代码逻辑问题,引起了ESP32自动复位,
就跟 C语言 编译通过了,可是跑代码的时候突然崩溃一个样子。
如果是自带usb串口 的开发板,(烧录很简单的示例程序 可以正常运行,说明板子一般是没问题的)
那么可以肯定,
(绝大多数情况下)是: 代码的逻辑问题
包括但不限于 赋值时内存溢出,野指针, 数据类型错用,初始化程序顺序错乱,.........,
看个人习惯,这种错误需要自己捋一捋。
----------------------------------------------------------
检错步骤(建议):
1.代码最好 功能化,模块化;
2.在 setup 函数第一句/最开始就 delay(5000);//延时5s;
3.在每一段代码块中,多设置例如;
Serial.println("标签 1.1 ##"); 的语句。
4.烧录完成后,打开串口,观察串口输出数据
观察 自己设置串口打印标签, 逐步排查并确定错误位置。
5.修改完成成后,再次烧录运行,观察是否能正常运行到下一个标签处。
-------------------------------------------------------------------------
从最开始以 ESP32 硬件引脚问题,之后重新烧录官方固件,再到百度一下,.......直到看到 不再反复reset的esp32 ,内心十分开心, 原来不是单片机错了,是我错了,纯属的代码问题,
Debug 是真理
-------------------------------------------------------------------------
乐鑫科技烧录工具下载 官方地址https://www.espressif.com/zh-hans/support/download/other-tools