单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗就是为了避免这样的情况的发生。如果系统出问题,没有给看门狗喂狗,看门狗就由于超时将CPU复位。
看门狗在长期工作的产品中用到比较多,作用很简单,防止死机。看门狗的功能也可用于定时计数等。
独立看门狗IWDG
独立看门狗IWDG简介
- 独立看门狗就是一个12位的递减计数器,当计数器的值从某个值一直减到0的时候,系统就会产生一个复位信号,即IWDG_RESET。如果在计数没减到 0 之前,刷新了计数器的值的话,那么就不会产生复位信号,重新刷新计数器值的这个动作我们俗称喂狗。
- 看门狗功能由VDD电压域供电,在停止模式和待机模式下仍能工作
- 独立看门狗(IWDG)由内部低速时钟(LSI)提供,适用于对时间精度不高的场合,即使主时钟发生故障它也仍然有效
独立看门狗IWDG寄存器
键寄存器IWDG_KR是独立看门狗的一个控制寄存器,主要有三种控制方式,往这个寄存器写入下面三个不同的值有不同的效果。
- 在键寄存器IWDG_KR中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。一旦独立看门狗启动,它就关不掉,只有复位才能关掉。
- 无论何时,只要键寄存器IWDG_KR中被写入0xAAAA&#