问题描述:采用ESP32-s将数据通过4G模块发送到阿里云的时候,只要数据一发送,esp32-s就一直重新连接4G模块。 图一中红色框就是我要传输到阿里云的内容,蓝色框显示的就是报错信息,接下来显示的就是一直重新连接,而且还连接不上。如图二所示
在网上找到了许多解决方法但都没有解决问题。下面我先介绍网上解决问题的方法。
1.造成报错的原因可能是开发板内部psram损坏了,这种情况换一个开发板可以解决。
2.第二个可能是由于外设电平引起的问题下面是摘抄自github的网友们提供的解决方法:
你用的是什么硬件? 如果板上有模块,它是什么模块? 您的 GPIO(尤其是 GPIO16/17)是如何连接的?
上次我遇到类似问题是由引导引脚引起的。 我在闪光电压控制引脚(IO12)上有一些电压
如果驱动为高电平,闪存电压 (VDD_SDIO) 为 1.8V,而不是默认的 3.3V。 具有内部下拉,因此未连接 = 低 = 3.3V。 如果使用 3.3V 闪存并且此引脚被拉高,可能会阻止闪烁和/或启动,从而导致闪存掉电。 有关详细信息,请参阅 ESP32 数据表。
找到它并不容易,因为 flash 启动但 psram 无法初始化
附上原文链接:
https://github.com/espressif/esp-idf/issues/6288
3.这个方法是通过在Arduino上设置psram来解决问题,但我尝试了之后发现应该是要对应esp32-s3的开发框架才有对应设置。下面是解决方法
【ESP32 S3开发】在Arduino IDE中使用PSRAM
ESP32-S3的开发板配置见之前的一篇笔记。
在Arduino IDE中配置完开发板后,还需要手动开启PSRAM功能,否则调用相关函数时会导致ESP32-S3无限重启
附上原文解决方法链接:
https://blog.csdn.net/m0_43395703/article/details/125705032?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125705032-blog-95546334.pc_relevant_multi_platform_whitelistv4eslandingrelevant2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-125705032-blog-95546334.pc_relevant_multi_platform_whitelistv4eslandingrelevant2&utm_relevant_index=1
4.最后是我解决问题的方法,根据报错信息可以知道大概是内存的问题,后来我跟朋友将代码梳理了一遍发现是由于图一中传输的信息太大导致内存溢出导致的报错,因此将其变量内存改大就不会出现报错。
5.这是在arduino社区上遇到这个问题的情况,我就不做解释直接附上链接供大家参考:https://forum.arduino.cc/t/esp32-reboots-constantly-even-with-empty-sketch/700698/2