写在前面:

   当你编程控制一个STM32微控制器时,你希望你的设备运行稳定,不会因为程序出现问题或者其他原因导致死机。但是有时候,可能会出现一些问题,导致你的设备不再响应,这就像是你的设备“忘记了”它在做什么一样。这时候,看门狗就会派上用场。本课程将教你如何使用这只”看门狗“

1.知识要点

1.1看门狗的介绍

    看门狗(Watchdog)是一种硬件定时器,用于监测系统运行是否正常。它可以帮助系统在出现故障或死锁时自动重启,以确保系统的稳定运行。看门狗可以分为两种类型:一种是独立于单片机的外部看门狗芯片,另一种是集成在单片机内部的看门狗外设模块。

在STM32F10x系列微控制器中,内置了两种看门狗:独立看门狗(IWDG)和窗口看门狗(WWDG)。

  1. 独立看门狗(IWDG)
  2. 窗口看门狗(WWDG)

2.程序编写

2.1IWDG看门狗CubeMX配置

  1. 勾选IWDG

Untitled

IWDG counter clock prescaler :预分频系数

IWDG down-counter reload value : 设置重装载寄存器值

设置好看门狗的分频系数和重装载值就可以知道看门狗的喂狗时间(也就是看门狗溢出时间),该时间的计算方式为:

*Tout=((4x2^prv ) * rlv ) /40 = (分频值/40)rlv

其中Tout为看门狗溢出时间(单位为ms) ;

prv为看门狗时钟预分频值(IWDG_ PR值),范围为0~7;