独立看门狗(IWDG)

先看一张图

在计数器递减至0之前喂狗,系统就不会复位

1. 时钟

① :内部低速时钟

独立看门狗采用的时内部低速时钟(LSI),通常为30-60KHZ,一般取40KHZ作为系统时钟频率。真正所使用的时钟,是在预分频后的时钟。

②:计数器

12位的计数器,开启看门狗后,可重载进去一个初值逐渐递减,递减至0后产生复位,注意:( 初值 <= 0xFFF)

2. 寄存器

①:预分频控制寄存器(IWDG_PR)

这个寄存器是将40KHZ的系统时钟进行分频操作,以适应MCU与不同外设通信时满足相同的频率要求。
一般取值有4、8、16、32、64、128分频,其值与预分频系数PRE的关系为:


						IWDG_PR = 4 * 2^PRE
  其中 PRE---------预分频系数,一般取(0~6)

分频后的时钟不再是40KHZ,而是 = 40 / IWDG_PR

②:重装载寄存器(IWDG_RLR)

通过写入0xAAAA到后面的键寄存器(IWDG_KR),就能将这个寄存器的值,重装载到计数器中,这就是所谓的喂狗操作。重载值 <= 0xFFF;
重装载的值大小,决定了计数器溢出时间,即:


				Tout = (4 * 2^PRE)/ 40 * IWDG_RLR

③:键寄存器(IWDG_KR)

16位寄存器,通过写入键寄存器,从而间接控制其他寄存器的操作

	写入:
		1. 0x5555 ----- 取消寄存器IWDG_PR和IWDG_RLRD的写访问保护
		2. 0xAAAA ----- 把IWDG_RLR中的值重载到计数器中
		3. 0xCCCC -----打开IWDG并启动
④:状态寄存器(IWDG_SR)

PVU :bit0,当1:预分频值正在更新中;当0:预分频值更新完毕
RVU: bit1,当1:重装载值正在更新中;当0:重装载值更新完毕
当这两个bit 都为0时,表示已经配置好重装载值,预分频值。

3. IWDG配置步骤

①:开启内部低速时钟(LSI)
② :开启寄存器访问保护
③:设置时钟预分频和重载值
④:把IWDG_RLR的值重载到计数器中
⑤:(使能)开启看门狗(IWDG_KR中写入0xCCCC)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值