ESP32 看门狗定时器:防止程序挂起和重启

ESP32 上的看门狗(Watchdog)定时器可以用于监测程序是否出现故障。如果程序挂起或停止响应,看门狗定时器将强制重启设备,确保设备稳定运行。

代码示例

以下是一个简单的示例代码,演示如何使用看门狗定时器:

#include <esp_task_wdt.h>

void setup() {
  Serial.begin(115200); // 初始化串口通信

  // 启用看门狗定时器
  esp_task_wdt_init(10, true); // 参数1是超时时间(以秒为单位),参数2表示看门狗定时器在所有任务中共享

  // 进行其他初始化操作
}

void loop() {
  // 看门狗重置定时器
  esp_task_wdt_reset();

  // 执行其他任务代码

  delay(1000);
}

代码解释

  • setup() 函数中,我们使用 Serial.begin() 初始化串口通信,方便调试信息输出。
  • esp_task_wdt_init() 函数用于初始化看门狗定时器。
    • 第一个参数 10 是超时时间(以秒为单位),表示如果程序在 10 秒内没有重置定时器,看门狗将强制重启设备。
    • 第二个参数 true 表示看门狗定时器在所有任务中共享。
  • loop() 函数中,esp_task_wdt_reset() 函数用于重置看门狗定时器,确保定时器不会超时。

注意

  • 看门狗定时器应该被定期重置,以避免设备被看门狗强制重启。
  • 您可以在程序的适当位置添加 esp_task_wdt_reset() 函数,以确保在每次循环中都会重置定时器。

通过使用看门狗定时器,您可以有效地监测程序运行状态,并防止程序挂起或停止响应导致设备重启。这有助于提高设备的稳定性和可靠性。

ESP32 看门狗定时器:防止程序挂起和重启

原文地址: https://www.cveoy.top/t/topic/gfy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录