STM32F1_WDG看门狗(独立+窗口)

发布者:PositiveVibes最新更新时间:2017-09-15 来源: eefocus关键字:STM32F1  WDG  看门狗 手机看文章 扫描二维码
随时随地手机看文章

前言

今天总结“STM32F103 WDG看门狗”,STM32F1有两个看门狗,IWDG独立看门狗和WWDG窗口看门狗,今天将两个看门狗一并总结了。

总结一下二者的区别:

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

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

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

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

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

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

 

本着免费分享的原则,将总结的工程源代码分享给大家,还望看到的朋友关注一下微信公众号,并将文章分享给你的朋友。

 

下载

提供下载的“软件工程”都是在硬件板子上进行多次测试、并保证没问题才上传至360云盘。

 

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

IWDG:https://yunpan.cn/cSQd68LfbPkIH  访问密码 d751

WWDG:https://yunpan.cn/cSQdk5CLVWVwW  访问密码 fe96

 

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

https://yunpan.cn/crBUdUGdYKam2   访问密码 ca90

 

内容讲解

工程概要说明: IWDG工程基于“EXIT中断”工程修改而来,因为使用到按键来喂狗。系统复位,快速闪烁两次LED,接下来间隔1秒串口打印一个计数值(从0 - 8),在8秒的时间内按键喂狗,计数值会归零;如果不喂狗则会复位。

WWDG工程基于“TIM定时”而来,因为使用了定时的功能。我提供的工程喂狗的时间是57ms(刚好最大值),间隔57ms喂狗一次,不会复位(LED快速变化, 快速打印WWDG...); 如果大于57ms(自己可以修改一下)未喂狗则会复位(LED慢速变化, 不断打印Reset...)。

提供的工程简单明了,详细中文注释,方便自己方便大家。

 

关于“STM32F103  WDG看门狗” 我把重要的几点在下面分别讲述:

一、IWDG的配置


该函数位于IWDG工程的main.c文件下面;

提供的框图为见资料。

我想大部分关心的是这个8秒的喂狗时间是怎样计算出来的,其实,看了程序的注释和框图大概就应该能明白了。40K分频256之后就只能在1秒计数156次,

而要计满1250(40000/32)就需要8秒。不明白的朋友请自己分析一下哦。

 

二、WWDG的配置


该函数位于WWDG工程的main.c文件下面;

提供的框图为见资料。

这里也主要讲一下最大喂狗时间57ms.分频之后只能在1秒计数1099次,要计满63个大概就需要57ms,这个值就是最大值。

这个工程需要自己修改这个时间来测试,建议都自己亲手修改代码测试一下。

 

三、WWDG主函数


该函数位于WWDG工程的main.c文件下面;

通过串口打印的信息就可以清楚的知道系统复位了没有。

亲手修改来大于57ms的时间试试就知道。

 

四、今天的重点

A.WWDG计数器的范围为:0x40 --- 0x7F

B.当微控制器进入调试模式时(Cortex-M3核心停止),根据调试模块中的DBG_WWDG_STOP 配置位的状态, WWDG的计数器能够继续工作或停止。

C.没有两个寄存器,编程时请细看寄存器

 

说明

今天提供的软件工程基于STM32F103大容量芯片,其实只要适当修改工程的部分配置,STM32F1的芯片都适用。


关键字:STM32F1  WDG  看门狗 引用地址:STM32F1_WDG看门狗(独立+窗口)

上一篇:STM32F1_SysTick系统滴答
下一篇:STM32F1_片内FLASH编程

推荐阅读最新更新时间:2024-03-16 15:37

MSP430单片机中的WDT研究
引 言   软件的可靠性一直是一个关键问题。任何使用软件的人都可能会经历计算机死机或程序跑飞的问题,这种情况在嵌入式系统中也同样存在。由于单片机的抗干扰能力有限,在工业现场的仪器仪表中,常会由于电压不稳、电弧干扰等造成死机。在水表、电表等无人看守的情况下,也会因系统遭受干扰而无法重启。为了保证系统在干扰后能自动恢复正常,看门狗定时器(Watchdog Timer)的利用是很有价值的。 1 看门狗的作用   看门狗定时器是一个计数器,基本功能是在发生软件问题和程序跑飞后使系统重新启动。看门狗计数器正常工作时自动计数,程序流程定期将其复位清零,如果系统在某处卡死或跑飞,该定时器将溢出,并将进入中断。在定时器中断中执行一些复位操作,使
[单片机]
STM32F103独立看门狗IWDG使用笔记
本文使用STM32CubeMX 1,在Pinout激活IWDG独立看门狗 2,在Configration 中点击System- IWDG 设置看门狗参数, 我使用700ms设置如下, 生成的初始化代码中,已经在Main函数中初始化 MX_IWDG_Init(); 喂狗参考: HAL_IWDG_Refresh(&hiwdg); 参数设置参考:
[单片机]
Avr128 看门狗设置
在程序中有 WDR();即有喂狗时,程序只是执行while内的部分,因为在看门狗的计时还没到 时又重新喂狗,这是计数器重新还是计数。 在程序中没有WDR();即没有喂狗,程序在执行while内的部分到1s时,则看门狗复位启动, 看门狗饿死,系统从main重新执行。即系统每隔1s复位一次 在正常的程序编写中,应该加上喂狗WDR();以防止程序在其他的部分跑飞。 /********************************************** by ggl date:2007,12,26 goal:study the use of watchdog ***********************************
[单片机]
PIC看门狗定时器的理解
pic单片机看门狗计时器(Watch Dog Timer)是一个片内自振式的RC振荡计时器,无需任何的外接元件。这意味着即使芯片OSC1/OSC2上振荡停止了(例如执行指令SLEEP后),WDT照样保持计时。WDT计时溢出将产生RESET。在PIC16C5X 芯片内有一个特殊的谓之"定义EPROM"(Configuration EPROM)的单元,其中的一个位是用于定义WDT的。你可以将其置"0"来抑制WDT使之永远不起作用。这将在第七章的烧写器介绍部分详细说明,请参阅。 1、WDT周期 WDT有一个基本的溢出周期16ms(无预分频器pic16F917),如果你需要更长的WDT周期,可以把预分频器分配给WDT,最大分频比可达1:
[单片机]
STM32F1系列的DEBUG调试功能需要配置吗?
1写在前面 STM32CubeMX的好处相信大部分朋友都知道,那就是帮你快速生成初始化代码工程。 虽然方便了开发,但也给一些初学者,或者不怎么懂底层的朋友带来了不少困扰。 特别是使用该工具生成代码,出现问题的时候,如果你不懂一些底层的知识,可能你会很头疼。 本文关于DEBUG配置的问题,针对初学者,我也把前因后果简单说一下。 2起因 STM32CubeMX配置STM32F1系列MCU时,第一次能下载成功,但第二次,会出现如下错误: 这是什么错误? 没有连接到目标,也就是你的下载器(ST-LInk)是正常的,只是没有识别到你MCU。 这里推荐阅读专栏文章: ST-Link资料 3分析原因
[单片机]
<font color='red'>STM32F1</font>系列的DEBUG调试功能需要配置吗?
AVR看门狗详解
简介:AVR看门狗 一个硬件单元,当程序由于某种原因跑“飞”了,它就Reset程序。就像小狗看门一样。 AVR看门狗 一个硬件单元,当程序由于某种原因跑“飞”了,它就Reset程序。就像小狗看门一样。 //Watchdog initialize // prescale: 2048K void watchdog_init(void) { WDR(); //this prevents a timout on enabling WDTCR = 0x0F; //WATCHDOG ENABLED - dont forget to issue WDRs } 上面是用ICC的App Builder生成的看门狗
[单片机]
AVR<font color='red'>看门狗</font>详解
基于看门狗芯片MAX708的数据保护系统设计
引 言 单片机的程序稳定性和运行及数据的安全性是设计者在不同的运行环境中所必须考虑的问题,而最易遇到的问题是受干扰而使CPU进入死循环,一般情况下设计者会使用软件陷阱和软件看门狗来避免此类现象的出现,对于一般的运行环境还可以,如果是连续运行或环境恶劣的状况时往往不能满足要求,这时要使用硬件看门狗来重启CPU,使程序恢复正常运行。同时,如果电源电压波动较大或断电,有些系统还要求将当前有用的数据进行保护。MAX708就是这种既有电源监控和数据保护又有看门狗作用的集成电路芯片。 1 看门狗芯片MAX708的工作原理 图1是看门狗芯片MAX708内部组成结构原理。 MAX708是一种微处理器电源监控和看门狗芯片,可同时输出高
[单片机]
飞思卡尔MC9S12G系列内部看门狗
最近几天在研究飞思卡尔watchdog的问题,发现网上没有很详细的资料,就想把自己知道的东西记录一下,防止自己忘记,也供别人参考。 什么是watchdog? watchdog就是一个计数器,这个计数器有一个限值,开启watchdog功能后,当计数器从0自增到该限值或从该限值自减到0,就认为此计数器超时了(称为计时器溢出),这时就产生一个复位信号,重启系统。 从watchdog的含义来看,其应该包含两个条件:1)一个自增或自减的计数器;2)为防止计数器溢出,将计数器重置的操作(称为喂狗)。 飞思卡尔MC9S12G的watchdog 和MC9S12G watchdog相关的寄存器主要包括CPMUCLKS、CPMUCOP和C
[单片机]
飞思卡尔MC9S12G系列内部<font color='red'>看门狗</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved