STM32窗口看门狗的喂狗初值传递的思考
STM32窗口看门狗的喂狗初值传递的思考
来CSDN好久了,看了很多文章,也学到了很多宝贵的经验,对学习stm32单片机帮助很大,
利用原子哥的精英板学习窗口看门狗的过程中,有点疑问,在此写下来,希望能够起到抛砖
引玉的作用,希望大家指正。
本次讨论的内容是窗口看门狗的源文件(wwdg.c),该源文件可在正点原子精英板的附
带实例中找到,在该文件的第39行,定义了一个变量:
u8 WWDG_CNT=0x7f;//保存WWDG计数器的设置值,默认为最大.
在该文件的最后是一个中断服务函数,在该函数中实现喂狗操作,如下:
viod WWDG_IRQHandler(void)
{
WWDG_SetCounter(WWDG_CNT); //当禁掉此句后,窗口看门狗将产生复位
WWDG_ClearFlag(); //清除提前唤醒中断标志位
LED1=!LED1; //LED状态翻转
}
我们注意到,喂狗就要写入初值,但该处写入的并不是初值,而是初值能取的最大值,
这个值可以是0x7f,也可以是小于等于0x7f,且大于等于0x4f的任何值,基于此,我认为应
该对此处进行更改,以还原喂狗的初衷。
我在源文件中声明了一个变量“u8 WWDG_counter”,注意是声明而不是定义,因为我希望
通过第19行的初始化函数“void IWDG_Init(u8 prer,u16 rlr) ”的第一个参数来初始化该变量,通
过在该函数中加入 “WWDG_counter = prer;“语句来实现该变量的初始化,这样就把喂狗的
计数初值传递到源文件中,这样中断服务函数中喂狗操作就能取得该值,从而避开了中断服务
函数不能传入或返回参数的问题。改动如下:
viod WWDG_IRQHandler(void)
{
WWDG_SetCounter(WWDG_counter); //当禁掉此句后,窗口看门狗将产生复位
WWDG_ClearFlag(); //清除提前唤醒中断标志位
LED1=!LED1; //LED状态翻转
}
经过改动后,程序能正常运行,实现既定的功能,希望大家一起来讨论,还有没有更好的
办法来将参数传送到中断服务函数中来,请大家批评指正,多多吐槽,谢谢!
STM32窗口看门狗的喂狗初值传递的思考相关推荐
- STM32—窗口看门狗(WWDG)
STM32-窗口看门狗(WWDG) 窗口看门狗(WWDG) STM32-窗口看门狗(WWDG) 窗口看门狗(WWDG) WWDG 简介 WWDG 功能框图剖析 窗口看门狗时钟 计数器时钟 计数器 窗口 ...
- STM32窗口看门狗
一.介绍 STM32看门狗分为独立看门狗和窗口看门狗两种,两者使用调条件如下所示: IWDG和WWDG两者特点如下图所示: 二.WWDG原理介绍 寄存器 控制寄存器(WWDG_CR),只有低八位有效. ...
- stm32 窗口看门狗学习(二)
窗口看门狗有一个提前唤醒中断,如果开启这个中断,那么当计数器的值达到0x40的时候就会产生这个中断. 上次的代码加一点就可以做这个实验了. void WWDG_Init(u8 tr,u8 wr,u32 ...
- stm32 窗口看门狗学习(一)
什么是窗口看门狗? 1)独立看门狗 限制喂狗时间在0-x内,x由相关寄存器决定.喂狗的时间不能过晚. 2)窗口看门狗 之所以称为窗口就是因为其 ...
- STM32——窗口看门狗
main.c /********************************************************* ** FileName: 看门狗实验 ** Description: ...
- stm32看门狗_STM32单片机:独立看门狗、窗口看门狗的配置
SATM32单片机的看门狗有独立看门狗和窗口看门狗之分,这两者的工作原理却完全不同,今天来看一下他们的具体区别和配置方法.▍STM32独立看门狗由专门的低速时钟(LSI)驱动,即便是主时钟发生故障它仍 ...
- 独立看门狗/窗口看门狗
一.独立看门狗 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效. 看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路 ...
- 【转载】如何使用STM32的窗口看门狗
STM32F的窗口看门狗中有一个7位的递减计数器,它会在出现下述2种情况之一时产生看门狗复位: 1)当计数器的数值从0x40减到0x3F时 2)当刷新看门狗时计数器的数值大于某一设定数值时,此设定数值 ...
- stm32 定时器_如何计算STM32定时器、独立看门狗和窗口看门狗
点击上方蓝色字体,关注我们 本博文简要阐述STM32L011微控制器定时器的参数配置(其他型号大同小异,本文侧重讲解配置,至于各类定时器的特点后续再述),STM32定时器种类繁多有通用定时器.基本定时 ...
最新文章
- 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”...
- Unity User Group深圳站——Timeline Cinemachine分享
- C# 图片识别(支持21种语言)
- esim办理出现差错_经营二氧化碳如何办理危化证?快来看!
- webservice学习01:wsdl文档结构
- 创维发布四款新品 将投入65亿元建MiniLED显示科技产业园
- django模板层 (标签,过滤器,自定义inclusion_tag,模板的继承与导入)
- java calendar获取年_Java Calendar获取年、月、日、时间,设置年、月、日
- java集成Cplex:Cplex下载、IDEA环境搭建、docker部署
- matlab 倒谱ceptrum,倒谱法求共振峰
- iOS开发打字机效果
- 1144C C. Two Shuffled Sequences(优先队列和set的应用)
- eclipse c语言 自动补全,eclipse里头怎么设C/C++的智能提示
- VUE+VSCODE(新建一个项目)
- camel发布多个服务
- 电力英语及计算机成绩查询入口官网,考试成绩查询入口
- php通过strtotime获取想要的日期
- javaweb邮箱页面架构
- Linux配置校时服务器
- JSON视频讲解 | 开发者学堂