STM32独立看门狗

本文详细介绍了使用IWDG(独立看门狗)通过设置分频比和重装载值,实现程序自动复位的原理,以及如何在C代码中配置和定期喂狗以保持功能运行。
摘要由CSDN通过智能技术生成

        看门狗复位:本质递减计数器,这个递减计数器一旦减到0,看门狗就会将程序进行复位。正常工作情况,不会让这个计数器减到0 ->喂狗

 

代码流程:

  1. 取消写保护
  2. 配置分频比
  3. 配置重装载值
  4. 喂狗一次(获取写保护)
  5. 使能看门狗
  6. 固定时间喂狗----函数以外
IWDG->KR=0x5555;//取消写保护

取消写保护

	IWDG->PR=0x5;//128分频

 配置分频比

	IWDG->RLR=250;//1s

配置重装载值

Fck=32KHz//该时钟是固定的

IWDG_PR=5(128分频)

IWDG_RLR=250

基准时钟=250Hz 递减一次1/250 s

最迟喂狗时间=(1/250)*250=1s

	IWDG->KR=0xaaaa;//喂狗一次
	IWDG->KR=0xcccc;//使能

喂狗一次(获取写保护)/使能看门狗

int main()
{
    Iwdg_Config();//独立看门狗初始化
	printf("hello world\r\n");
	while(1)
	{
		Time6_Us(2000000);//2s
		IWDG->KR=0xaaaa;//喂狗一次
    }
}

固定时间喂狗----函数以外

完整代码

/*
Function name:Iwdg_Config
Description:独立看门狗
param:None
retval:None
Remarks:
IWDG_PR=5(128分频)
IWDG_RLR=250
*/
void Iwdg_Config(void)
{
	IWDG->KR=0x5555;//取消写保护
	IWDG->PR=0x5;//128分频
	IWDG->RLR=250;//1s
	IWDG->KR=0xaaaa;//喂狗一次
	IWDG->KR=0xcccc;//使能
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值