STM32学习4——看门狗

为什么要有看门狗呢?
因为程序在运行过程中是会跑飞的。我们也不知道飞了,就加一个狗狗看着,相当于一个倒计时,在一定时间内如果没有接收到喂狗信号(倒计时重新开始),就意味着程序可能跑飞了。这时候处理器就会自动复位,重新开始运行啦。

一、独立看门狗

独立看门狗是从一个计数值,减小到0,若在这个过程中没有喂狗,说明程序跑飞,处理器自动复位。
实现功能:
正常情况下是灯一直闪烁,按下按键,即喂狗后 ,灯一直亮。
各种bug,整了一下午,心塞塞。
主函数while前

HAL_Delay(500);
	HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_RESET);

由于一直复位,所以灯闪烁。
while中

while (1)
  {
  		//按键消抖
		if(HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)==GPIO_PIN_SET)
		{
			HAL_Delay(10);
			if(HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)==GPIO_PIN_SET)
			{
				HAL_IWDG_Refresh(&hiwdg);//喂狗
			}
		}
		HAL_Delay(10);
}

这里看门狗设置的时间是大约1s,预分频系数64,重装载值是625。
配置看门狗后,一直按键,不停喂狗,就不再复位。灯就不灭了。

二、窗口

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值