网站建设服务器需要钱吗,能进封禁网站的手机浏览器,昆山网站开发的公司,php编程语言WDG#xff08;Watchdog#xff09;看门狗 看门狗可以监控程序的运行状态#xff0c;当程序因为设计漏洞、硬件故障、电磁干扰等原因#xff0c;出现卡死或跑飞现象时#xff0c;看门狗能及时复位程序#xff0c;避免程序陷入长时间的罢工状态#xff0c;保证系统的可靠… WDGWatchdog看门狗 看门狗可以监控程序的运行状态当程序因为设计漏洞、硬件故障、电磁干扰等原因出现卡死或跑飞现象时看门狗能及时复位程序避免程序陷入长时间的罢工状态保证系统的可靠性和安全性。 看门狗本质上是一个定时器当指定时间范围内程序没有执行喂狗重置计数器操作时看门狗硬件电路就自动产生复位信号。 STM32内置两个看门狗 独立看门狗IWDG独立工作对时间精度要求较低。(专用的LSI40kHz即使主时钟出现问题了独立看门狗也可以正常工作)独立看门狗只有一个最晚喂狗界限只要喂狗不超过这个界限就行否则看门狗就会硬件复位电路。 窗口看门狗WWDG要求看门狗在精确计时窗口起作用。(使用APB1的时钟即36MHz没有专门的时钟所以不算独立) 要求看门狗在精确计时窗口起作用相当于有最早和最晚喂狗界限提前喂狗和超过最晚界限都会产生复位。 注意事项 在大型项目中各种状态和可能都非常多写程序时一不小心就会留下bug让你的程序卡死或崩溃。 解决办法 1.程序员设计时就考虑程序运行的各种情况避免常见的BUG合理规划程序。 2.定期对程序进行迭代更新修复存在的BUG。 3.看门狗出现卡死/崩溃让看门狗帮我们硬件复位一下。 硬件故障例如想读取传感器的内容但传感器坏了程序就有可能死等去获取数据。 电磁干扰强的电磁干扰可能让电子元器件失灵/程序跑飞的现象有看门狗的话程序进行复位就会再次正常运行。 独立看门狗的框图 独立看门狗的框图与定时器很像主要的部分都是预分频器PSC、自动重载器ARR、计数器CNT。 独立看门狗的预分频器(IWDG_PR)是8位的最大值是2^8-1255最大可进行256分频。 独立看门狗的重装载寄存器和递减计数器是12位的(IWDG_RLR)重装载数值与计数器值的最大值是2^12-14095最多可计数4096次。 定时器的重要结构 需要注意的是定时器的PSC/ARR/CNT均为16位。 IWDG_KR寄存器 0xCCCC:1100 1100 1100 1100 0xAAAA:1010 1010 1010 1010 0x5555:0101 0101 0101 0101 IWDG_SR(状态寄存器)是可读不可写的。 IWDG超时时间 IWDG的预分频值有PR[2:0]决定并不像定时器那样PSC值1而是有特定的预分频系数。 RL[11:0]由于是12位的最小值是0最大值是2^12-1对应的计数值就是1-2^12(4096)。 WWDG框图 WWDG工作特性 超时时间是喂狗的最晚时间即定时器减到0的时间。 窗口时间是最早的喂狗时间由之前的框图T[5:0]W[5:0]时就可以喂狗了。 IWDG与WWDG对比