watchdog – 看门狗定时器

watchdog模块提供对看门狗定时器的支持。如果在指定的时间后仍未喂食,此计时器将重置设备。这有助于确保电路板没有崩溃或锁定。请注意,在某些平台上,一旦启用看门狗定时器就无法禁用。

WatchDogTimer用于将系统重新启动时,应用程序崩溃并最终进入非恢复的状态。一旦启动,就不能以任何方式停止或重新配置。启用后,应用程序必须定期“馈送”看门狗,以防止其过期并重置系统。

用法示例:

from microcontroller import watchdog as w
from watchdog import WatchDogMode
w.timeout=2.5 # Set a timeout of 2.5 seconds
w.mode = WatchDogMode.RAISE
w.feed()

在这些板上可用
  • ARAMCON Badge 2019
  • ARAMCON2 Badge
  • ATMegaZero ESP32-S2
  • Adafruit CLUE nRF52840 Express
  • Adafruit Circuit Playground Bluefruit
  • Adafruit Feather Bluefruit Sense
  • Adafruit Feather RP2040
  • Adafruit Feather nRF52840 Express
  • Adafruit FunHouse
  • Adafruit ItsyBitsy RP2040
  • Adafruit ItsyBitsy nRF52840 Express
  • Adafruit LED Glasses Driver nRF52840
  • Adafruit Macropad RP2040
  • Adafruit MagTag
  • Adafruit Metro ESP32S2
  • Adafruit Metro nRF52840 Express
  • Adafruit QT Py RP2040
  • Adafruit QT2040 Trinkey
  • Arduino Nano 33 BLE
  • Arduino Nano RP2040 Connect
  • Artisense Reference Design RD00
  • AtelierDuMaker nRF52840 Breakout
  • BLE-SS dev board Multi Sensor
  • BastBLE
  • BastWiFi
  • BlueMicro840
  • Challenger RP2040 WiFi
  • CrumpS2
  • Cytron Maker Pi RP2040
  • ESP 12k NodeMCU
  • Electronut Labs Blip
  • Electronut Labs Papyr
  • EncoderPad RP2040
  • Feather ESP32S2 without PSRAM
  • FeatherS2
  • FeatherS2 Neo
  • FeatherS2 PreRelease
  • Franzininho WIFI w/Wroom
  • Franzininho WIFI w/Wrover
  • Gravitech Cucumber M
  • Gravitech Cucumber MS
  • Gravitech Cucumber R
  • Gravitech Cucumber RS
  • HMI-DevKit-1.1
  • HiiBot BlueFi
  • IkigaiSense Vita nRF52840
  • Kaluga 1
  • LILYGO TTGO T8 ESP32-S2 w/Display
  • MDBT50Q-DB-40
  • MDBT50Q-RX Dongle
  • MORPHEANS MorphESP-240
  • MakerDiary nRF52840 MDK
  • MakerDiary nRF52840 MDK USB Dongle
  • Makerdiary M60 Keyboard
  • Makerdiary Pitaya Go
  • Makerdiary nRF52840 M.2 Developer Kit
  • Melopero Shake RP2040
  • Oak Dev Tech BREAD2040
  • Oak Dev Tech PixelWing ESP32S2
  • Open Hardware Summit 2020 Badge
  • PCA10056 nRF52840-DK
  • PCA10059 nRF52840 Dongle
  • PCA10100 nRF52833 Dongle
  • Particle Argon
  • Particle Boron
  • Particle Xenon
  • Pimoroni Interstate 75
  • Pimoroni Keybow 2040
  • Pimoroni PGA2040
  • Pimoroni Pico LiPo (16MB)
  • Pimoroni Pico LiPo (4MB)
  • Pimoroni PicoSystem
  • Pimoroni Plasma 2040
  • Pimoroni Tiny 2040
  • PyKey60
  • Raspberry Pi Pico
  • S2Mini
  • Saola 1 w/Wroom
  • Saola 1 w/Wrover
  • Simmel
  • SparkFun MicroMod RP2040 Processor
  • SparkFun MicroMod nRF52840 Processor
  • SparkFun Pro Micro RP2040
  • SparkFun Pro nRF52840 Mini
  • SparkFun Thing Plus - RP2040
  • TG-Watch
  • Targett Module Clip w/Wroom
  • Targett Module Clip w/Wrover
  • Teknikio Bluebird
  • TinkeringTech ScoutMakes Azul
  • TinyS2
  • WarmBit BluePixel nRF52840
  • micro:bit v2
  • microS2
  • nanoESP32-S2 w/Wrover
  • nanoESP32-S2 w/Wroom
  • nice!nano

class watchdog.WatchDogMode

看门狗定时器的运行状态

类似枚举的类来定义看门狗定时器的运行模式。

RAISE :WatchDogMode

WatchDogTimer 到期时引发异常。

RESET :WatchDogMode

如果 WatchDogTimer 过期,则重置系统。

class watchdog.WatchDogTimer

用于检测代码锁定并在检测到代码锁定时自动复位微控制器的定时器。

当看门狗在给定的持续时间后没有被喂食时,就会检测到锁定。因此,请确保feed在超时内调用。

当前不动态支持。通过 访问唯一实例 microcontroller.watchdog.

timeout :float

调用 feed() 之间可以经过的最大秒数

mode :WatchDogMode

WatchDogTimer 的当前操作模式watchdog.WatchDogMode.

设置 WatchDogMode 会激活 WatchDog:

import microcontroller
import watchdog

w = microcontroller.watchdog
w.timeout = 5
w.mode = watchdog.WatchDogMode.RAISE

一旦设置,WatchDogTimer 将在计时器到期时执行指定的操作。

feed(self)None

馈送看门狗定时器。这必须定期调用,否则计时器将到期。

deinit(self)None

停止看门狗定时器。如果无法在此平台上禁用看门狗定时器,这可能会引发错误。