乐鑫技术交流
直播中

陈飞

8年用户 1249经验值
私信 关注
[问答]

eps8266连DNS会被看门狗复位,是怎么回事?

eps8266连DNS会被看门狗复位,这是怎么回事?请问如何给eps8266喂看门狗?
下面是串口调试输出信息:
【2015-03-05 15:26:34(167)收到】
ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 25496, room 16
tail 8
chksum 0xaf
load 0x3ffe8000, len 2652, room 0
tail 12
chksum 0x54
ho 0 tail 12 room 4
load 0x3ffe8a60, len 4524, room 12
tail 0
chksum 0xfd
csum 0xfd
                 

回帖(1)

蒲泛粟

2024-7-13 17:15:52
从您提供的串口调试输出信息来看,ESP8266设备在连接DNS时被看门狗复位。这可能是由于以下原因:

1. 代码中没有正确地喂看门狗:在ESP8266编程过程中,如果长时间没有给看门狗喂食,看门狗会触发复位。确保在代码中定期调用喂看门狗的函数。

2. 网络连接问题:连接DNS时,如果网络连接不稳定或超时,可能导致看门狗复位。检查网络连接是否稳定,并确保DNS查询在合理的时间内完成。

3. 代码中存在死循环或阻塞:如果代码中存在死循环或阻塞,可能导致看门狗无法被喂食。检查代码,确保没有死循环或阻塞。

如何给ESP8266喂看门狗:

1. 在Arduino IDE中,您可以使用以下代码片段给ESP8266喂看门狗:

```cpp
#include
#include

void setup() {
  Serial.begin(115200);
  WiFi.begin("yourSSID", "yourPassword");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi connected");  
  startMDNS();
}

void loop() {
  ArduinoOTA.handle();
  // 喂看门狗
  ESP.wdtDisable();
}

void startMDNS() {
  if (MDNS.begin("esp8266")) {
    Serial.println("MDNS responder started");
  }
  // Add service to MDNS-SD
  MDNS.addService("http", "tcp", 80);
}
```

2. 在您的代码中,确保在适当的地方调用`ESP.wdtDisable()`函数来喂看门狗。这将防止看门狗触发复位。

3. 如果您发现设备仍然被看门狗复位,请检查网络连接和代码逻辑,确保没有死循环或阻塞。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分