窗口看门狗

窗口看门狗,官方语言:通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序 背离正常的运行序列而产生的软件故障。
从窗口看门狗的本质来说,需要你在一个固定时间来喂狗,相比较独立看门狗,这个可以避免一些不可预料的因素。
窗口看门狗的超时公式如下:
Twwdg=(4096×2^WDGTB×(T[5:0]+1)) /Fpclk1;
Fpclk1:APB1 的时钟频率(单位为 Khz)
WDGTB:WWDG 的预分频系数
T[5:0]:窗口看门狗的计数器低 6 位
寄存器
1.窗口配置寄存器(WWDG->CFR),只有低八位有效,。T[6:0] 就是窗口看门狗的计数器,而 W[6:0]则是窗口看门狗的上窗口,WDGA 位则是看门狗的激活位。
2.寄存器是配置寄存器(WWDG_CFR) 位9EWI:提前唤醒中断 ,位 8:7 计数器时钟 分频器, W[6:0]窗口看门狗的上窗口
3.状态寄存器(WWDG_SR)位0:当计数器值达到 0x40 时此位由硬件置 1。它必须由软件通过写入 0 来清零。写入 1 不起作用。如果不使能中断,此位也会被置 1。
看到代码的一瞬间是蒙蔽的,和教程神马的完全不一样!!!!

void WWDG_Init(u8 tr,u8 wr,u8 fprer) 
{    
    RCC->APB1ENR|=1<<11;    //使能wwdg时钟 
    WWDG_CNT=tr&WWDG_CNT;   //初始化WWDG_CNT.     
    WWDG->CFR|=fprer<<7;    //PCLK1/4096再除2^fprer 
    WWDG->CFR&=0XFF80;      
    WWDG->CFR|=wr;          //设定窗口值      
    WWDG->CR|=WWDG_CNT;     //设定计数器值 
    WWDG->CR|=1<<7;         //开启看门狗      
    MY_NVIC_Init(2,3,WWDG_IRQn,2);//抢占2,子优先级3,组2     
    WWDG->SR=0X00;          //清除提前唤醒中断标志位 
    WWDG->CFR|=1<<9;        //使能提前唤醒中断 
} 
//重设置WWDG计数器的值 
void WWDG_Set_Counter(u8 cnt) 
{ 
    WWDG->CR =(cnt&0x7F);//重设置7位计数器 
} 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值