ESP32 看门狗定时器:防止程序挂起和重启
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()函数,以确保在每次循环中都会重置定时器。
通过使用看门狗定时器,您可以有效地监测程序运行状态,并防止程序挂起或停止响应导致设备重启。这有助于提高设备的稳定性和可靠性。
原文地址: https://www.cveoy.top/t/topic/gfy 著作权归作者所有。请勿转载和采集!