stm32学习之独立看门狗IWDG

关于看门狗一词,它是一个为了防止程序由于各种原因跑飞而设计的一种相当计数器的玩意,想一下,如果你的程序突然死机或出现了bug,没办法运行了,你要手动去重启机器,而看门狗的作用便是帮你检测程序是否出现问题,如果程序因为某些原因而跑飞了,这只狗就帮你重启机器。
具体运行:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。stm32有两个看门狗,一个是IWDG(独立看门狗),它是由LSI(低速内部时钟)驱动,所以在机器主时钟损坏的时候依然有效。
看门狗的四个寄存器:
IWDG_KR(键寄存器),IWDG_PR(预分频寄存器),IWDG_PLR(重装载寄存器),IWDG_SR(状态寄存器)
寄存器的配置:
#include “IWDG.h”

	/*   时间Tout = prv/40 * rlv (s)  prv:预分频系数   rlv重装值*/
	void Iwdg_Init()
	{
	IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);//设置KR;往KR写入0x5555才能访问PR和PLR寄存器
	IWDG_SetPrescaler(4);//设置预分频系数,即配置PR寄存器
	IWDG_SetReload(625);//设置重装载值,即配置PLR寄存器
	IWDG_ReloadCounter();//装值0xaaaa,开始计数
	IWDG_Enable();//使能看门狗
	}

	void Feed_Iwdg()
	{
	IWDG_ReloadCounter();//重装0xaaaa,看门狗重新计数,不会发出reset信号
	}

代码便是这些了,至于主程序,可以在主程序while循环,让LED0在闪烁,设置KEY0为中断,按下KEY0键后,看门狗喂食,不在闪烁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值