STM32F10xxx内置两个看门狗分别为独立看门狗(IWDG)和窗口看门狗(WWDG)。 IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。 独立看门狗(IWDG)其实就是我们单片机经常见的那种. 在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。 无论何时,只要键寄存器IWDG_KR中被写入0xAAAA, IWDG_RLR中的值就会被重新加载到计数器中从而避免产生看门狗复位 。 从上面的说明文字可以看出它超时的时间是固定的,就是0xFFF递减计数到0x000时就会复位,在次过程中写入0xAAAA就可以避免产生看门狗复位. 窗口看门狗(WWDG)由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。上面说的重点字就在于"过迟或过早",讲到这里或许你会看到与上面的区别了.没关系看不出我继续解释. 窗 口看门狗(WWDG)复位条件有;1.当递减计数器的值小于0x40,(若看门狗被启动)则产生复位。2.当递减计数器在窗口外被重新装载,(若看门狗被 启动)则产生复位。那我来解释第一个条件,窗口看门狗(WWDG)有个控制寄存器(WWDG_CR)里面可以设置计数器值在0xFF和0xC0之间.当计 数器值递减计数到小于0x40则产生复位.第二条件说明:窗口看门狗(WWDG)有个配置寄存器(WWDG_CFR)里面也可以设置一个与递减计数器进行 比较用的窗口值,这值的作用是:如果软件在计数器值大于窗口寄存器中的数值时重新装载计数器,将产生一个复位。 综合以上两点就成了窗口看门狗的"过迟或过早"的特点. |
|