stm32——独立看门狗

出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称看门狗”(watchdog)

STM32内置两个看门狗(独立看门狗/窗口看门狗)

独立看门狗(IWDG)

由专用的低速时钟(LSI)驱动,即使主时钟发生故障它仍有效。

独立看门狗适合应用于需要看门狗作为一个在主程序之外能够完全独立工作,并且对时间精度要求低的场合。

窗口看门狗

由从 APB1 时钟分频后得到时钟驱动。通过可配置的时间窗口 来检测应用程序非正常的过迟或过早操作。
 
窗口看门狗最适合那些要求看门狗在精确计时窗口起作用的程序。

    键值寄存器:IWDG_KR           16位

重装载寄存器:IWDG_RLR         12位

       复位信号:IWDG_RESET

向 IWDG_KR 写 0xcccc;  //开启独立看门狗

此后计数器从 0xfff 向下递减; 如果计数器减到 0x000;  时,则会产生复位信号 IWDG_RESERT 单片机重启。

正常情况计数器未减至 0x000 时,会向 IWDG_KR 写 0xaaaa (喂狗);则 IWDG_RLR(一个值) 被写入计数器。

预分频寄存器:IWDG_PR            3位  //将LSI时钟分频为计数器提供时序

   状态寄存器:IWDG_SR             2位 //

PS:IWDG_PR 和 IWDG_RLR 具有写保护,操作要先写0x5555申请写入。

独立看门狗操作步骤

取消寄存器写保护:

      IWDG_WriteAccessCmd();

②  设置独立看门狗的预分频系数,确定时钟:

     IWDG_SetPrescaler();

③  设置看门狗重装载值,确定溢出时间:

    IWDG_SetReload();

④  使能看门狗

    IWDG_Enable();

⑤  应用程序喂狗:

   IWDG_ReloadCounter();    //该函数放在定时器中断里面,中断时间位10ms~20ms为佳。

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值