【STM32CobeMX】基于STM32F103VBT6配置看门狗

1.采用内部时钟源64MHZ

简单说:看门狗的本质就是定时计数器,计数器使能以后一直在累加 而喂狗就是从新写入计数器的值,时计数器从新累加,若是在必定时间内没有接收到喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。

系统时钟是位处理器真正运行速度快慢的核心因素,STM32F103VBT6芯片内部时钟最大支持64MHZ,

我们可以看到IWDG(独立看门狗)使用芯片内的是40KHZ的时钟源LSI RC。

2.独立看门狗IWDG配置

IWDG时钟预分频系数prv = 4分频 ,那么根据公式4*2^4=64就输入64。

  hiwdg.Init.Prescaler = IWDG_PRESCALER_64;//代表4分频,也就是64=4*2^4。
  hiwdg.Init.Reload = 4095;

计数器重装载值rlv = 4095 。相当于计时6.552秒。

超时时间:

HAL库独立看门狗函数库讲解:

看门狗初始化函数

HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg)

喂狗函数:

HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg)
举例:  HAL_IWDG_Refresh(&hiwdg);   //看门狗喂狗

使用该函数定时喂狗便可,注意不喂狗的话程序会反复重启。

经验分享 程序员 微信小程序 职场和发展