当前位置: 首页 > news >正文

WIFI原因造成ESP8266不断重启的解决办法

一、报错 

报错信息如下:

21:37:21.799 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,7)
21:37:21.799 -> 
21:37:21.799 -> load 0x4010f000, len 3424, room 16 
21:37:21.799 -> tail 0
21:37:21.799 -> chksum 0x2e
21:37:21.799 -> load 0x3fff20b8, len 40, room 8 
21:37:21.799 -> tail 0
21:37:21.799 -> chksum 0x2b
21:37:21.799 -> csum 0x2b
21:37:21.799 -> v00043720
21:37:21.799 -> ~ld

二、成因

由于ESP8266在WiFi连接循环中没有加入适当的延时或处理机制,导致看门狗定时器(WDT)触发重启。

问题分析:
  1. 纯空循环会占用全部CPU资源
  2. 没有给系统处理网络事件的时间
  3. 看门狗定时器会因此触发硬件复位
void setup() {.........省略部份代码while (WiFi.status() != WL_CONNECTED) {}.........省略部份代码}

三、解决办法

  1. 必须加入延时函数让出CPU时间
  2. 建议设置超时机制
  3. 最好添加重连计数和状态显示

修正后的代码如下: 

void setup() {.........省略部份代码while (WiFi.status() != WL_CONNECTED) {delay(500);                         // 关键延时!Serial.print(".");}.........省略部份代码}

http://www.lqws.cn/news/461719.html

相关文章:

  • 创业知识概论
  • 大数据Hadoop集群搭建
  • 第五章 中央处理器
  • tkinter 的 pack() 布局管理器学习指南
  • 《汇编语言:基于X86处理器》第3章 汇编语言基础
  • 一个库,比如kott_tinymce ,想把的依赖库从kotti升级到kotti2 ,请问我是不是查找替换,把所有的kotti字符替换成kotti2就行了?
  • 加密货币:比特币
  • 如何进行IEC61850的一致性测试
  • linux——C程序的编译与调试
  • AR 眼镜之-条形码识别-实现方案
  • 7.3.1二叉排序树
  • 宽度优先遍历(bfs)(4)——解决拓扑排序
  • Python 中布尔值的使用:掌握逻辑判断的核心
  • phpstudy无法启动apache,80端口被占用,完美解决
  • Java常见八股-(6.算法+实施篇)
  • Linux——库文件生成和使用
  • 通过CDH安装Spark的详细指南
  • moments_object_model_3d这么理解
  • 医院预约挂号
  • 分清display三个属性
  • 【Python】List
  • 大数据治理域——计算管理
  • 3DS中文游戏全集下载 任天堂3DS简介3DS第一方独占游戏推荐
  • AI的认知象限:浅谈一下我们与AI的边界
  • c++系列之智能指针的使用
  • uni-app项目实战笔记17--获取系统信息getSystemInfo状态栏和胶囊按钮
  • 【Python进阶系列】第9篇:聊聊 Python 中常用的第三方库
  • Happy-LLM-task3 :2.1 注意力机制 2 天
  • Python中布尔值在函数中的巧妙运用
  • WebGL图形学总结(二)