STM32F103 看门狗设置

不费话,直接上代码


/*************************************************************
看门狗的喂狗时间(看门狗溢出时间)计算公式:
 Tout=((4*2^prer)*rlr)/40
Tout看门狗溢出时间(单位ms),
prer是看门狗时钟预分频值(IWDG_PR值),范围为0~7,
rlr位看门狗重载值(IWDG_RLR)。
 比如我们设置PR[2..0]为4, RLR[11..0]的值为625,我们就可以计算得到    
Tout=64*625/40=1000ms,这样,看门狗的溢出时间就是1S,
只要在这一秒钟内,有一次吸入0XAAAA到IWDG_KR,就不会导致看门狗复位。
***************************************************************/
void IWDG_Init(u32 prer,u32 rlr)
{
      IWDG->KR=0X5555;      //解除寄存器保护        
      IWDG->PR=prer;         // 写入初始化分频值
      IWDG->RLR=rlr;         // 写入自动装载值
      IWDG->KR=0XAAAA;     //开启寄存器保护
      IWDG->KR=0XCCCC;       //启动看门狗
}


//喂狗函数
void IWDG_Feed(void)
{
    IWDG->KR=0XAAAA;                                  
}



int main(void) //主函数
 {    
		u16	i;
		
        IWDG_Init(4,625);				//IWDG时钟=40KHz, PR=4=64分频  时间=1S

	 
		while(1)			
		{	
		LED1_NOT;			//LED指示灯  

        for(i=60000;i>0;i--);
        for(i=60000;i>0;i--);

          IWDG_Feed();		//喂狗函数  
        }

}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
STM32F103看门狗程序是一种用于监视和保护嵌入式系统的重要技术。看门狗计时器(Watchdog Timer,简称WDT)是一种硬件定时器,其目的是在系统出现故障(例如软件死锁或死循环)时进行系统重启和恢复,从而避免系统长时间处于非正常运行状态。 在STM32F103系列微控制器中,看门狗计时器是一个重要的硬件模块,通过配置相关寄存器来设置计时器的工作模式和计时时间。以下是一个简单的STM32F103看门狗程序示例: 1. 首先,配置看门狗计时器的时钟源和预分频器,使其按照所需的时间间隔进行计时。例如,可以选择内部LSE(低速外部晶振)或LSI(低速内部RC振荡器)作为时钟源,并设置分频系数。 2. 设置看门狗计时器的重载值(Reload Value),该值决定了看门狗计时器的溢出时间。当计时器计数达到该值时,看门狗计时器会自动触发复位。 3. 启动看门狗计时器,并在需要的时候定期重载计时器的值,以避免看门狗计时器溢出。这样,只要系统正常运行,看门狗计时器就会定期重载计时值,防止系统复位。 4. 如果系统出现故障导致看门狗计时器未能及时重载计时器的值,计时器会溢出并触发系统复位,从而恢复系统到正常工作状态。 需要注意的是,看门狗计时器是一种保护机制,必须小心使用。如果看门狗计时器设置得太短,系统在正常运行时可能会因为无法及时重载计时器而被错误地复位。相反,如果设置得太长,系统在出现故障时可能无法及时恢复,从而导致系统长时间处于非正常状态。因此,正确地设置和使用看门狗计时器是确保系统稳定性和可靠性的关键一步。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值