说明
单片机可能会受到外界磁场的干扰而使得程序跑飞,致使程序的正常运行状态被打断而陷入死循环。
由此便产生了检测单片机运行状态的硬件结构——看门狗。
STM32中有两只看 门狗——窗口看门狗(WWDG)、独立看门狗(IWDG)
窗口看门狗
WWDG的驱动时钟来自PCLK1
独立看门狗
窗口看看门狗主要用于对某个局部的应用程序进行监控,防止其被过早或过晚地执行,其正常工作的前提是STM32的主时钟正常工作,因此窗口看门狗“触手能及”的范围是有限的。
所以独立看门狗出现了——对全局程序进行监控。为STM32应用程序的运行稳定和可靠性再添一层保险,这是IWDG的由来。
IWDG特点:
1、拥有完全自由运行的递减计数器
2、驱动时钟为RC振荡器
3、看门狗激活后,计数器至0x00时产生复位
IWDG配置流程:
初始化:0x5555——》重载计数值——》0xAAAA——》0xCCC
IWDG溢出时间计算:
内部RC振荡器频率为30~60KHz不等。官方给出值为40KHz。假设频率为Z,对IWDG进行X分频。
P(IWDG)=1X/Z——例:132/32KHz = 1ms
设置IWDG初始值为C(假设为349),IWDG单次计数周期为
T = (C+1)*P(IWDG) = 350ms
喂狗操作必须小于该时间。
说明
单片机可能会受到外界磁场的干扰而使得程序跑飞,致使程序的正常运行状态被打断而陷入死循环。
由此便产生了检测单片机运行状态的硬件结构——看门狗。
STM32中有两只看 门狗——窗口看门狗(WWDG)、独立看门狗(IWDG)
窗口看门狗
WWDG的驱动时钟来自PCLK1
独立看门狗
窗口看看门狗主要用于对某个局部的应用程序进行监控,防止其被过早或过晚地执行,其正常工作的前提是STM32的主时钟正常工作,因此窗口看门狗“触手能及”的范围是有限的。
所以独立看门狗出现了——对全局程序进行监控。为STM32应用程序的运行稳定和可靠性再添一层保险,这是IWDG的由来。
IWDG特点:
1、拥有完全自由运行的递减计数器
2、驱动时钟为RC振荡器
3、看门狗激活后,计数器至0x00时产生复位
IWDG配置流程:
初始化:0x5555——》重载计数值——》0xAAAA——》0xCCC
IWDG溢出时间计算:
内部RC振荡器频率为30~60KHz不等。官方给出值为40KHz。假设频率为Z,对IWDG进行X分频。
P(IWDG)=1X/Z——例:132/32KHz = 1ms
设置IWDG初始值为C(假设为349),IWDG单次计数周期为
T = (C+1)*P(IWDG) = 350ms
喂狗操作必须小于该时间。
举报