解决arduino IDE ESP32 硬件看门狗设置与喂狗失败问题 以及 看门狗定时器(TWDT) Task Watchdog Timer 相关设置方法
前言
解决arduino IDE ESP32 硬件看门狗设置与喂狗失败问题 困扰了不少ESP32的用户这里给出解决办法,以及看门狗定时器(TWDT) Task Watchdog Timer 相关设置方法
二、使用步骤
1.引入库
代码如下:
#include "soc/rtc_wdt.h" //设置看门狗用
2.设置代码
代码如下(示例):
#include "soc/rtc_wdt.h" //设置看门狗用
void setup() {
//ESP32看门狗设置 需要先引入 #include "soc/rtc_wdt.h" //设置看门狗用
rtc_wdt_protect_off(); //看门狗写保护关闭 关闭后可以喂狗
//rtc_wdt_protect_on(); //看门狗写保护打开 打开后不能喂狗
//rtc_wdt_disable(); //禁用看门狗
rtc_wdt_enable(); //启用看门狗
rtc_wdt_feed(); //喂狗
rtc_wdt_set_time(RTC_WDT_STAGE0, 7000); // 设置看门狗超时 7000ms.
//如果解决了您的问题与困扰 支持原创 给个赞或者打个赏,您的支持是我们进步的动力
}
3.喂狗代码使用示例
代码如下(示例):
//通过以上设置,需要关闭看门狗写保护 rtc_wdt_protect_off(); 然后用这个函数进行喂狗,亲测可用
rtc_wdt_feed(); //喂狗函数 放入需要长时间执行的程序里 示例如下:
void loop() {
//长时间执行代码示例
while(true) {
rtc_wdt_feed(); //喂狗
//您的循环执行长时间的代码
//您的循环执行长时间的代码
//您的循环执行长时间的代码
}
}
//如果解决了您的问题与困扰 支持原创 给个赞或者打个赏,您的支持是我们进步的动力
总结
通过以上设置,需要关闭看门狗写保护 rtc_wdt_protect_off(); 然后用这个函数进行喂狗,亲测可用。以上是解决看门狗复位重启的问题,可以长时间不用再loop循环,也可以不至于触发看门狗复位重启
如果解决了您的问题与困扰 支持原创 给个赞或者打个赏,您的支持是我们进步的动力