STM32 看门狗

看门狗释义

看门狗基本功能即为开启后需要定时“喂食”,否则就会“咬到系统复位”或“触发中断”(仅存在于WWDG),一般用于防止,出现在系统运行的主循环或定时任务中,保证系统在运行,否则复位。

独立看门狗:独立看门狗独立于系统之外,与系统使用不同时钟源,所以在系统完全奔溃情况下依旧可以运行并回复系统,其主要用来处理硬件故障。
窗口看门狗:窗口看门狗使用系统时钟,主要用来检测软件错误,如外部干扰或者未能预见的逻辑错误等。而命名为窗口看门狗的原因则为其计数值需要在设定的串口范围内进行刷新才能避免看门狗模块产生复位信号。


stm32独立看门狗(IWDG)

IWDG有stm32芯片内部低速时钟(LSI)提供时钟信号,LSI在系统主时钟挂掉的情况依旧有效。

1、STM32 IWDG使用
stm32 IWDG使用比较简单,需要完成的任务包括如下几步:
1)关闭分频寄存器、重载寄存器写保护
2)设置预分频,重载数值
3)重载数值喂狗
4)开启看门狗
5)在系统运行时喂狗

2、STM32 IWDG寄存器
STM32 IWDG重要的寄存器有三个:IWDG_KR、 IWDG_PR 、 IWDG_RLR。

1)IWDG_KR
关键字寄存器类似于其他模块中的控制寄存器,负责控制IWDG模块的基本功能。
IWDG_PR

a)IWDG_KR=0xCCCC
向IWDG_KR写入0xCCCC会开启IWDG功能。

b)IWDG_KR=0xAAAA
向IWDG_KR写入0xAAAA时,IWDG_RLR寄存器中的值会被重载到计数器避免看门狗产生复位信号。

c)IWDG_KR=0x5555
向IWDG_KR写入0x5555时,IWDG_PR 、 IWDG_RLR写保护会被解除可以向其中写入新值,但如果IWDG_KR写入0x5555后写入了其他值,此时IWDG_PR 、 IWDG_RLR会被重新写保护,即操作顺序不能被打断。

2)IWDG_PR
IWDG_PR寄存器为预分频配置寄存器,只使用低3位,表示8种分频策略。
IWDG_PR

3)IWDG_RLR
IWDG_RLR寄存器为重载数值寄存器,每次IWDG重载的数值来源即为此。IWDG_RLR寄存器只使用低12位,注意使用时不要超出范围。
IWDG_RLR

4)“喂狗”时间
stm32 的内部低速时钟为RC产生,实际范围在15~47Khz间,以40为标准,时间计算公式如下:

timeCal

3、STM32 IWDG相关函数
1)取消写保护

IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

2)设置预分频

void IWDG_SetPrescaler(uint8_t IWDG_Prescaler);

3)设置重载值

void IWDG_SetReload(uint16_t Reload);

4)启动看门狗

IWDG_Enable();

5)喂狗操作

IWDG_ReloadCounter();

stm32窗口看门狗(WWDG)

WWDG模块与系统共用系统主时钟,系统奔溃同时也会失效,所以主要用来检测软件故障。

1、WWDG基本原理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值