stm32 窗口看门狗学习(二)
窗口看门狗有一个提前唤醒中断,如果开启这个中断,那么当计数器的值达到0x40的时候就会产生这个中断。
上次的代码加一点就可以做这个实验了。
void WWDG_Init(u8 tr,u8 wr,u32 fprer)
{ RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE); // WWDG时钟使能WWDG_SetPrescaler(fprer);//设置预分频系数WWDG_SetWindowValue(wr);//设置窗口上限WWDG_Enable(tr); //设置计数器初值并且使能看门狗 WWDG_ClearFlag(); //清除提前唤醒中断标志WWDG_NVIC_Init(); //看门狗NVIC初始化WWDG_EnableIT(); //开启窗口看门狗中断 }
最后三行是新加的。
void WWDG_NVIC_Init(void)
{NVIC_InitTypeDef NVIC_InitStructure;NVIC_InitStructure.NVIC_IRQChannel = WWDG_IRQn; //WWDG中断NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE; NVIC_Init(&NVIC_InitStructure);
}void WWDG_IRQHandler(void)
{WWDG_SetCounter(0x7f); //在这里也可以喂狗,但是有的网友不建议这么做WWDG_ClearFlag(); //清除提前唤醒中断标志}
为什么会设计这样的中断呢?
我认为这样设计是为MCU复位之前留下一点时间,能够让程序员根据需要在复位之前保存一些重要的数据,这样在复位后MCU可以知道复位原因,以使系统有更高的稳定性。
有的网友说“在窗口看门狗中断函数中喂狗没有什么意义,程序本来已经不按正常运行了,还在中断函数中喂狗防止复位只会错上加错。”
stm32 窗口看门狗学习(二)相关推荐
- stm32 窗口看门狗学习(一)
什么是窗口看门狗? 1)独立看门狗 限制喂狗时间在0-x内,x由相关寄存器决定.喂狗的时间不能过晚. 2)窗口看门狗 之所以称为窗口就是因为其 ...
- STM32窗口看门狗的喂狗初值传递的思考
STM32窗口看门狗的喂狗初值传递的思考 来CSDN好久了,看了很多文章,也学到了很多宝贵的经验,对学习stm32单片机帮助很大, 利用原子哥的精英板学习窗口看门狗的过程中,有点疑问,在此写下来,希望 ...
- STM32—窗口看门狗(WWDG)
STM32-窗口看门狗(WWDG) 窗口看门狗(WWDG) STM32-窗口看门狗(WWDG) 窗口看门狗(WWDG) WWDG 简介 WWDG 功能框图剖析 窗口看门狗时钟 计数器时钟 计数器 窗口 ...
- STM32窗口看门狗
一.介绍 STM32看门狗分为独立看门狗和窗口看门狗两种,两者使用调条件如下所示: IWDG和WWDG两者特点如下图所示: 二.WWDG原理介绍 寄存器 控制寄存器(WWDG_CR),只有低八位有效. ...
- stm32 独立看门狗学习
STM32F10xxx内置两个看门狗,提供了更高的安全性.时间的精确性和使用的灵活性.两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障. 独立看门狗(IWDG)由专用的低速 ...
- STM32——窗口看门狗
main.c /********************************************************* ** FileName: 看门狗实验 ** Description: ...
- stm32看门狗_STM32单片机:独立看门狗、窗口看门狗的配置
SATM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同,今天来看一下他们的具体区别和配置方法.▍STM32独立看门狗由专门的低速时钟(LSI)驱动,即便是主时钟发生故障它仍 ...
- 独立看门狗/窗口看门狗
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- STM32学习心得十七:窗口看门狗(WWDG)实验及旧知识点复习
记录一下,方便以后翻阅~ 主要内容: 1) 窗口看门狗概述: 2) 常用寄存器和库函数配置: 3) 窗口看门狗实验. 窗口看门狗实验内容: 为了对之前的知识进行总结复习,本人在教学案例的基础上又&qu ...
最新文章
- Seam的中文化支持
- CAD中dwg转dxf
- Servlet3.0新特性全解
- Python中使用requests和parsel爬取喜马拉雅电台音频
- class unity 定义类_Unity 游戏框架搭建 2019 (二十五) 类的第一个作用 与 Obselete 属性...
- matlab实现非线性规划
- JDK源码分析(三)——HashMap 下(基于JDK8)
- UVA11393 Tri-Isomorphism【数学推理】
- SpringMVC:学习笔记(1)——理解MVC及快速入门
- 【Pycharm】安装及激活、界面调整、导入anaconda的依赖库、字体设置微软雅黑
- char类型和字符串
- 人民日报喊你学数学!实力不允许?8本书带你入门
- 目前常见的web网络安全漏洞
- 随机函数(随机取数)
- js 原生代码跳转页面,返回上一级页面
- R语言地理加权回归数据分析
- access查询mysql_Access数据库 如何创建查询
- html中列表前的序号用带圆圈的数字表示及存在的问题
- JQuery data方法的使用-遁地龙卷风
- OOM以及垃圾收集器