看门狗

1.  独立开门狗(IWDG) 

本质上,这是一种递减计数器机制。计数器从上限值(0xfff-1 注意:可由看门狗的重装载寄存器设置)开始递减,如果在递减过程中进行了“喂狗”操作,计数器将重置为上限值并重新开始递减。如果计数器递减到下限值(0x00)而未进行“喂狗”操作,则会触发复位,相当于按下了复位按钮,程序将从头开始执行。

起到一个保险的作用,当程序出现问题(程序卡死/跑飞),看门狗可及时复位程序。保证系统的可靠性和稳定性。

芯片内部,独立工作,对时间精度要求低

下图是芯片手册来的

MX配置

预分频系数和自动重装载值根据上面的公式来计算,比如选择看门狗溢出时间为1s,即超过1s不喂狗触发复位,那么根据表可知应该选预分频系数为/16.

根据公式:16*rlr/40KHZ=1 得到rlr=2500

时钟树配置

2.  窗口开门狗(WWDG)

时钟源来自APB1,对时间精度要求相对较高,并需在指定的窗口期内喂狗,否则复位程序。

本质上,这是一种递减计数器机制,能产生系统复位信号提前唤醒中断(也要使能中断才能产生)

喂狗所用函数HAL_WWDG_Refresh()

上限值:0X7F 下限值0X3F

注意:W[6:0]必须大于窗口下限值0X3F,否则无窗口期。

特点:

①当递减计数器值从 0x40减到0x3F时复位 ( 也就是0100 0000 减到0011 1111 即bit6位跳变到0)

计数器的值大于W[6:0]值时喂狗会复位

③当递减计数器等于 0x40 时可产生提前唤醒中断 (EWI)

④在窗口期内重装载计数器的值 (喂狗) ,防止复位

作用: 用于监测单片机程序运行时效是否精准(因为在窗口期前或后喂狗都是触发复位,因此这个时间是很精准的),主要检测软件异常。

独立开门狗和窗口看门狗的区别:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值