WDT 看门狗使用教程#
什么是 WDT?#
WDT(Watchdog Timer)看门狗定时器 是一个用于系统稳定性的防御机制,确保当程序出现异常(如死循环、卡死)时,系统能自动重启恢复运行。
典型用途包括:
防止嵌入式设备长时间卡死
在关键任务中确保程序定时响应
系统自恢复机制的核心组件
K230 WDT 特性#
特性 |
描述 |
|---|---|
支持通道 |
内置 2 路 WDT(WDT0 / WDT1) |
最小超时时间 |
精度为秒级,超时时间通常为 1 秒及以上 |
重启机制 |
超时后自动触发 系统复位 |
手动喂狗 |
调用 |
应用示例:基础看门狗测试#
以下示例通过 WDT1 设置 3 秒的超时时间,并在程序中模拟“喂狗”操作,以防止系统重启。
示例代码#
import time
from machine import WDT
# ========== 初始化 WDT1 ==========
wdt1 = WDT(1, 3) # 通道 1,超时时间 3 秒
# ========== 等待 2 秒 ==========
time.sleep(2)
# ========== 喂狗操作 ==========
wdt1.feed() # 重置看门狗计数器,避免触发系统复位
# ========== 再次等待 2 秒 ==========
time.sleep(2)
# 若不再调用 feed(),超过 3 秒后系统将自动重启
接口说明#
方法名 |
说明 |
|---|---|
|
创建看门狗对象,参数为通道号与超时时间(秒) |
|
喂狗操作,重置倒计时计数器 |
使用建议#
场景 |
推荐操作 |
|---|---|
系统任务死锁防护 |
每次主循环内调用 |
串口/网络卡死检测 |
在成功接收数据后再喂狗 |
多线程应用 |
可用消息队列通知主线程定时喂狗 |
常见问题与排查#
问题 |
原因及解决办法 |
|---|---|
程序运行一段时间后自动重启 |
看门狗未喂狗,已触发超时复位 |
喂狗后仍然重启 |
喂狗频率低于超时时间,或调用位置不在主循环中 |
想关闭看门狗 |
K230 当前无关闭接口,建议适配逻辑层面规避 |
