STM32F0xx_看门狗(独立+窗口)配置详细过程

原创 2016年06月07日 22:10:27

、概述

对于看门狗,我觉得做单片机或者嵌入式开发的人员来说并不陌生,今天总结STM32F0看门狗的功能,F0的看门狗有两种:独立和窗口看门狗。

今天提供两种看门狗的软件工程实例,供大家下载。

两种看门狗各有各的特点,应用在不同的场合,下面将分别简单总结一下独立和窗口看门狗的功能。

 

本着免费分享的原则,方便大家手机学习知识,每天在微信分享技术知识。如果你觉得分享的内容对你有用,又想了解更多相关的文章,请用微信搜索“EmbeddDeveloper” 或者扫描下面二维码、关注,将有更多精彩内容等着你。

 

Ⅱ、下载

文章提供的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘,请放心下载测试,如有问题请检查一下你的板子是否有问题。

ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。

 

今天的软件工程下载地址(360云盘):

IWDG独立看门狗:

https://yunpan.cn/cRfa8Qhi9g48Y  访问密码 2c3e

 

WWDG窗口看门狗:

https://yunpan.cn/cRfa5DvT9syUm  访问密码 7bf1

 

STM32F0xx的资料可以在我360云盘下载:

https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37

 

Ⅲ、准备工作

对于看门狗的编程,建议大家准备F0的参考手册和数据手册,方便查阅相关知识,没有的请到ST官网或到我360云盘下载。

今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。我每次都是提供整理好的软件工程供大家下载,但是,如果你是一位学习者,建议自己亲手一步一步操作。

 

Ⅳ、看门狗原理

①IWDG独立看门狗

独立看门狗由内部低速时钟LSI提供计数时钟,8 位分频,12位计数,需要定期喂狗(重载数值 ReloadCounter),如果计数值减为0了,还没有重载数值,则会响应复位事件。

 

 

②WWDG窗口看门狗

窗口看门狗由APB1(RCC_APB1Periph_WWDG)提供计数时钟,2 位分频,7位计数,需要定期喂狗(更新计数值),如果计数值减为0x40了,还未更新计数值,则会响应复位事件。

 

 

Ⅴ、代码描述

今天提供两种看门狗软件工程,下面分别来总结一下,主要讲解配置的函数接口。

 

①IWDG独立看门狗


该函数位于main.c文件上面;

重载数值的计算请结合上面的结构框图配合函数源代码,从函数中可以看的出来,只要0.5s。

 

运行效果


喂狗最大时间500ms(理论值),但内部低速时钟LSI存在误差,建议修改测试时间:小于450,大于550;

小于450ms: 正常喂狗,串口间隔打印"Running..."LED变化;

大于550ms: 喂狗超时,系统复位,串口打印"System Reset..."

 

 

②WWDG窗口看门狗


该函数位于main.c文件上面;

这里的时钟和上面IWDG的时钟不同,结合框图也看得出了经过分频之后计数的值也是计算的出来的。

 

运行效果


喂狗最大时间43ms(理论值),但串口打印需要一两毫秒,建议修改测试时间:小于41,大于43;

小于41ms: 正常喂狗,串口间隔打印"Running..."LED变化;

大于43ms: 喂狗超时,系统复位,串口打印"System Reset..."

 

③总结一下二者的区别

1)、IWDG使用内部低速时钟LSI,WWDG使用系统时钟APB1ENR

2)、IWDG没有中断,WWDG有中断

3)、IWDG是12位递减的。WWDG是7位递减的

4)、IWDG只有下限,WWDG有下限和上限

5)、IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。

看门狗在长期工作的产品中用到比较多,作用很简单,防止死机。看门狗的功能也可用于定时计数等。

 

Ⅵ、说明

或许你硬件芯片不是提供工程里面的芯片,但是STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片,甚至是F2、F4等芯片上(具体请看手册、或者亲自测试)。

本文章提供的软件工程是基于ST标准外设库为基础建立而成,而非使用STM32CubeMX建立工程。个人觉得使用ST的标准外设库适合与学习者,STM32CubeMX建立工程结构复杂,对于学习者,特别是初学者估计会头疼。

今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

 

 

Ⅶ、最后

关注微信,回复“更多内容”,将获得更多内容(如:UCOS实例等,不断更新中......)。

如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。

 

阅读原文


 

版权声明:本文为博主strongerHuang原创文章,转载请标明:来自http://blog.csdn.net/ybhuangfugui

STM32F0x2 IWDG(独立看门狗)

STM32F0x2 IWDG初始化
  • Huangxuesi
  • Huangxuesi
  • 2017年04月10日 16:15
  • 870

STM32菜鸟成长记录---窗口看门狗

stm32有两个看门狗,独立看门狗和窗口看门狗,其实两者的功能是类似的,只是喂狗的限制时间不同。   独立看门狗是限制喂狗时间在0-x内,x由你的相关寄存器决定。喂狗的时间不能过晚。 窗口看门狗...
  • yx_l128125
  • yx_l128125
  • 2012年09月30日 09:24
  • 20612

STM32窗口看门狗_原子战舰WWDG例程学习笔记

针对学习STM32窗口看门狗和原子战舰所给的WWDG例程时候,存在的问题做如下记录。 1. WWDG超时公式推导 1.1 WWDG工作示意图 1.2 WWDG超时公式推导 (1) 上窗口的值可以...
  • lbsgrowup
  • lbsgrowup
  • 2015年08月11日 22:17
  • 2628

stm32 独立看门狗和窗口看门狗区别

本文转自: http://blog.sina.com.cn/s/blog_dc9571b90101isxs.html   1)独立看门狗没有中断,窗口看门狗有中断   2)独立...
  • qq_35362464
  • qq_35362464
  • 2016年12月22日 15:15
  • 2337

STM32学习笔记之独立看门狗(IWDG)的使用

对STM32任何模块使用前都要对其初始化、第一步就是如何初始化模块。看数据手册如下:          读数据手册可以得知看门狗模块使用的系统LSI时钟,初始化配置之前要设置预分配寄存器I...
  • sinat_23338865
  • sinat_23338865
  • 2016年07月15日 23:35
  • 9836

stm32f103窗口看门狗

stm32有两个看门狗:独立看门狗可以在检测到硬件故障的时候复位cpu,窗口看门狗可以在检测到软件故障的时候复位cpu。 我在程序中使用的是窗口看门狗,它有俩窗口值:上窗口值可以通过配置WWDG->...
  • zailushangha
  • zailushangha
  • 2012年12月25日 22:52
  • 3904

stm32的窗口看门狗的一点发现

今天看stm32的窗口看门狗,突然发现很不正常,于是做了各方面的实验得出以下结论,由于只是实验了得出的结论没有官方结论,所以如果有人有理论依据请告知我,非常感谢1 1.一旦使能窗口看门狗的时钟,SR...
  • findstr
  • findstr
  • 2012年07月15日 11:08
  • 1908

STM32F1_WDG看门狗(独立+窗口)

前言 今天总结“STM32F103 WDG看门狗”,STM32F1有两个看门狗,IWDG独立看门狗和WWDG窗口看门狗,今天将两个看门狗一并总结了。 总结一下二者的区别: 1)、IWDG使用内部...
  • ybhuangfugui
  • ybhuangfugui
  • 2016年05月17日 22:56
  • 2710

STM32F103学习笔记(六) 独立看门狗and窗口看门狗

首先,学习两种狗,就该看到它们两者之间的不同: (1)独立看门狗由内部专门的 40Khz 低速时钟驱动,而窗口狗使用的是 PCLK1 的时钟,需要先使能时钟,而独立狗不需要使能。 (2)两者的...
  • mvp_dong
  • mvp_dong
  • 2015年01月23日 13:49
  • 3799

STM32的独立看门狗程序,亲测可用

  • 2017年11月25日 21:23
  • 51KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STM32F0xx_看门狗(独立+窗口)配置详细过程
举报原因:
原因补充:

(最多只允许输入30个字)