*看门狗各函数讲解

独立看门狗配置步骤
1)取消寄存器写保护,通过函数 HAL_IWDG_Init 实现。

看门狗的喂狗时间(也就是看门狗溢 出时间)的计算方式为:

Tout=((4×2^prer) ×rlr) /32

其中 Tout 为看门狗溢出时间(单位为 ms)。

prer 为看门狗时钟预分频值(IWDG_PR 值),范围为 0~7。

rlr 为看门狗的重装载值(IWDG_RLR 的值)。

比如我们设定 prer 值为 4(因为4×2^4=64,所以 prer =4代表的是 64 分频,HAL 库中可以使用宏定义标识符 IWDG_PRESCALER_64),rlr 值为 500,那么就可以得到 Tout=64×500/32=1000ms,这样,看 门狗的溢出时间就是 1s,只要在一秒钟之内,有一次写入 0xAAAA 到 IWDG_KR,就不会导 致看门狗复位。

注:看门狗的时钟不是准确的 32Khz,最好不要太晚喂狗,否则,有可能发生看门狗复位。

2)重载计数值喂狗(向 IWDG_KR 写入 0xAAAA) 在 HAL 中重载计数值的函数是 HAL_IWDG_Refresh,把值 0xAAAA 写入 到 IWDG_KR 寄存器,从而触发计数器重载,即实现独立看门狗的喂狗操作。

  1. 启动看门狗(向 IWDG_KR 写入 0xCCCC) HAL 库函数里面启动独立看门狗是通过宏定义标识符来实现的:

#define __HAL_IWDG_START(HANDLE)
WRITE_REG((HANDLE)->Instance->KR, IWDG_KEY_ENABLE);
我们只需要调用宏定义标识符__HAL_IWDG_START 即可实现看门狗使能。实际上,当我 们调用了看门狗初始化函数 HAL_IWDG_Init 之后,在内部已经调用了该宏启动看门狗。

注:调用了看门狗初始化函数 HAL_IWDG_Init 之后,在内部会自动启动看门狗。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值