STM32
直播中

徐胤

7年用户 1093经验值
私信 关注
[问答]

如何对stm32独立看门狗与窗口看门狗进行配置

看门狗的基本工作原理是什么?
如何对STM32独立看门狗进行配置?

stm32窗口看门狗配置有哪些步骤?

回帖(1)

周振夜

2021-9-16 16:26:03
  看门狗:本质上可以看成是一个定时器威廉希尔官方网站 ,一般就是分为输入和输出两部分,输入我们俗称“喂狗”,输出可以直接理解为复位,或者大家熟悉的重启。
  使用看门狗时,当MCU正常工作时,我们就会定期喂狗,如果超过预先设置好的时间没有喂狗,看门狗威廉希尔官方网站 没有及时清零,就会跳转到我们所谓的输出部分,也就是回馈一个复位信号给MCU,复位MCU。
  主要是用于防止程序跑飞,或者MCU死机。(重启大法好)
  基本工作原理:在系统运行之后启动看门狗的计数器,看门狗开始自动计数,如果到达预先设置好的时间还没有及时重新赋值,那么看门狗的计数器就会溢出,引起看门狗中断,导致系统复位。
  stm32 独立看门狗的配置流程:
  1.取消寄存器写保护:
  IWDG_WriteAccessCmd();
  2.设置独立看门狗的预分频系数,确定时钟:
  IWDG_SetPrescaler();
  3.设置看门狗重装载值,确定溢出时间:
  IWDG_SetReload();
  4. 使能看门狗
  IWDG_Enable();
  5. 应用程序喂狗:
  IWDG_ReloadCounter();
  溢出时间计算:
  Tout=((4×2^prer) ×rlr) /40 (M3)
  其中 :
  Tout 为看门狗溢出时间(单位为 ms);
  prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7;
  rlr 为看门狗的重装载值(IWDG_RLR 的值);
  窗口看门狗由从APB1时钟分频后得到时钟驱动。通过可配置的时间窗口来检测应用程序非正常的过迟或过早操作。窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。
  stm32 窗口看门狗配置步骤:
  1.使能看门狗时钟:
  RCC_APB1PeriphClockCmd();
  2.设置分频系数:
  WWDG_SetPrescaler();
  3.设置上窗口值:
  WWDG_SetWindowValue();
  4.开启提前唤醒中断并分组(可选):
  WWDG_EnableIT();
  NVIC_Init();
  5.使能看门狗:
  WWDG_Enable();
  6.喂狗:
  WWDG_SetCounter();
  7.编写中断服务函数
  WWDG_IRQHandler();
  窗口看门狗的超时公式如下:
  Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1;
  其中:
  Twwdg: WWDG 超时时间(单位为 ms)
  Fpclk1: APB1 的时钟频率(单位为 Khz)
  WDGTB: WWDG 的预分频系数
  T[5:0]:窗口看门狗的计数器低 6 位。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分