IWDG独立看门狗实验

开发步骤

(1)开启寄存器访问(给 IWDG_KR 寄存器写入 0X5555) 通过前面内容的介绍我们知道 IWDG_PR 和 IWDG_RLR 寄存器具有写访问保 护。若要修改寄存器,必须首先对 IWDG_KR 寄存器写入代码 0x5555,如果写入 其他的值将重新开启写保护。在库函数中实现函数如下: IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); //取消寄存器写保护 这个函数非常简单,里面的参数就是用来使能或失能写访问,即开启或关闭 写访问

(2)设置 IWDG 预分频系数和重装载值 设置 IWDG 预分频系数函数为: void IWDG_SetPrescaler(uint8_t IWDG_Prescaler); //设置 IWDG 预分频 值 设置 IWDG 重装载值函数为: void IWDG_SetReload(uint16_t Reload); //设置 IWDG 重装载值 设置好 IWDG 的分频系数 pre 和重装载值就可以知道独立看门狗的喂狗时 间,也就是看门狗溢出时间,该时间的计算公式前面已经介绍,公式如下: Tout = (4*2^pre) / 40 * rlr 其中 Tout 为独立看门狗溢出时间,单位是 ms。pre 是预分频器系数(0-6), rlr 是重装载寄存器的值,公式内的 40 是独立看门狗的时钟。

(3)重载计数器值(喂狗)(给 IWDG_KR 寄存器写入 0XAAAA) 重载计数器值(喂狗)库函数是: IWDG_ReloadCounter(); //重装载初值 此函数功能是将 IWDG_RLR 寄存器内值重新加载到独立看门狗计数器内,实 现喂狗操作。

4)开启 IWDG(给 IWDG_KR 寄存器写入 0XCCCC) 要使用独立看门狗,我们还需要打开它,开启 IWDG 的库函数是: IWDG_Enable(); //打开独立看门狗 这里提醒下大家:IWDG 在一旦启用,就不能再被关闭,想要关闭,只能重 启,并且重启之后不能打开 IWDG,否则问题依旧存在。所以如果不用 IWDG 的 话,就不要去打开它,免得麻烦

iwdg.h+iwdg.c

main.c

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值