注意

这是最新开发分支配套的文档,可能包含已发布版本中尚未提供的功能。如果您要查看特定版本的文档,请使用左侧的下拉菜单并选择所需要的版本。

WDT 看门狗使用教程#

什么是 WDT?#

WDT(Watchdog Timer)看门狗定时器 是一个用于系统稳定性的防御机制,确保当程序出现异常(如死循环、卡死)时,系统能自动重启恢复运行。

典型用途包括:

  • 防止嵌入式设备长时间卡死

  • 在关键任务中确保程序定时响应

  • 系统自恢复机制的核心组件

K230 WDT 特性#

特性

描述

支持通道

内置 2 路 WDT(WDT0 / WDT1)

最小超时时间

精度为秒级,超时时间通常为 1 秒及以上

重启机制

超时后自动触发 系统复位

手动喂狗

调用 feed() 方法,在超时时间前重置计时器

应用示例:基础看门狗测试#

以下示例通过 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 秒后系统将自动重启

接口说明#

方法名

说明

WDT(channel, timeout)

创建看门狗对象,参数为通道号与超时时间(秒)

feed()

喂狗操作,重置倒计时计数器

使用建议#

场景

推荐操作

系统任务死锁防护

每次主循环内调用 feed() 喂狗

串口/网络卡死检测

在成功接收数据后再喂狗

多线程应用

可用消息队列通知主线程定时喂狗

常见问题与排查#

问题

原因及解决办法

程序运行一段时间后自动重启

看门狗未喂狗,已触发超时复位

喂狗后仍然重启

喂狗频率低于超时时间,或调用位置不在主循环中

想关闭看门狗

K230 当前无关闭接口,建议适配逻辑层面规避

延伸阅读#

评论列表
条评论
登录