STM32单片机的独立看门狗和窗口看门狗的特点及用法解析

合集下载

什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析

什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析

什么是stm32看门狗?独立看门狗和窗口看门狗工作原理解析独立看门狗是限制喂狗时间在0-x内,x由你的相关窗口看门狗,所以称之为窗口就是因为其喂狗时间是一个有上下限的范围内,你可以通过设定相关寄存器,设定其上限时间和下限时间。

喂狗的时间不能过早也不能过晚。

窗口看门狗的上窗口就是配置寄存器WWDG->CFR里设定的W[6:0];下窗口是固定的0x40;WWDG_SetPrescaler(WWDG_Prescaler_8);void NVIC_Configuration(void)void EXTI_Configuration(void)在Stm32f10x_it.c文件中:void WWDG_IRQHandler(void)void EXTI9_5_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line9) != RESET)
{
/* Turn off led connected to PC.07 */
GPIO_WriteBit(GPIOC, GPIO_Pin_7, Bit_RESET);
/* As EXTI line9 pending bit is not cleared, the CPU will execute indefinitely
this ISR and when the WWDG counter falls to 3Fh the WWDG reset occurs */
}
}。

第十二章 STM32单片机看门狗编程及其应用

第十二章 STM32单片机看门狗编程及其应用

• 在WWDG中断服务程序中,不应该重装递减计数器,而是让应 用程序在发生复位前,安排一些紧急处理的任务:保存一些 重要数据和状态参数、或做系统刹车等操作。
工程素质和技能归纳
• 复习C语言中的函数指针内容,掌握其在嵌入式系统中的应 用。 • 理解看门狗的作用,掌握STM32单片机独立看门狗的工作机 制、配置流程和方法。 • 掌握STM32单片机窗口看门狗的工作机制、配置流程和方 法,以及注意事项。
STM32单片机窗口看门狗编程
• 窗口看门狗( Window Watchdog,WWDG),通常用来检 测由外部干扰或不可预见的逻辑条件造成的应用程序背离正 常运行序列而产生的软件故障。WWDG从APB1时钟分频后 得到的时钟驱动,通过可配置的时间窗口来检测应用程序非 正常的过迟或过早的操作。
独立看门狗与窗口看门狗的区别
机器人辅助32位单片机课程
第十二章 STM32单片机看门狗编程及其应用
华中科技大学控制科学与工程系 深圳市中科鸥鹏智能科技有限公司 彭刚
摘要
• 看门狗介绍 • STM32单片机独立看门狗编程
任务一 任务二 独立看门狗编程 认识系统节编程
任务三 窗口看门狗编程
任务一 独立看门狗编程
• 利用IWDG进行检测和解决由系统错误引起的故障。 • 例程参考P284:IWDG.c • 当程序正常运行时,每隔30ms会重新装载IWDG计数器。当程 序进入死循环时,计数器递减到0,系统发生复位。当系统检 测到复位后电量LED。
任务一 独立看门狗编程
• 需要注意: • (1)因为独立看门狗使用的是LSI,所以复位与时钟初始化 函数RCC_Configuration中加入:
WWDG“过早”复位
WWDG“过迟”复位和“过早”复位

ST单片机:独立看门狗和窗口看门狗

ST单片机:独立看门狗和窗口看门狗

ST单片机:独立看门狗和窗口看门狗
STM32单片机中有两只看门狗,分别是独立看门狗和窗口看门狗。

这两只看门狗有什么区别,今天来看一下。

1. 时钟源的区别
▪独立看门狗使用的是内部低速时钟,其频率为40kHz,但是这个40KHz不是准确的,其大致的范围是(30-60)KHz。

该时钟与外设时钟无关,所以不受系统晶振影响。

▪窗口看门狗使用的是PCLK1的时钟,该时钟与晶振相关。

2. 喂狗时间不同
▪独立看门狗喂狗时只要下限大于0就可以,上限是0XFFF。

而窗口看门狗必须在一个区域内喂狗才可以,上限是0x7F,下限是0X40,
3. 计数器不同
▪独立看门狗的计数器是12位递减的,即最大值是0XFFF;
▪窗口看门狗的计数器是7位递减的,即最大值是0X7F;
4. 产生结果不同
▪独立看门狗时,如果超时不喂狗,则直接产生复位,程序从头执行;
▪独立看门狗会在计数器到达0X40时产生中断,在0X3F时产生复位,所以可以把独立看门狗看成是一种中断。

使用用途举例
▪独立看门狗可以用来防止程序跑飞,在程序中开启看门狗,定时喂狗,尤其在通讯中使用广泛,当逻辑处理不当,使程序一直处于发送或接收状态不退出时,这时独立看门狗可以使程序复位,程序从头执行。

▪窗口看门狗可以产生中断,利用这一特点可以用来进行数据保存,当产生窗口看门狗中断时,可以用来保存数据。

一文读懂STM32之独立看门狗-窗口看门狗的原理

一文读懂STM32之独立看门狗-窗口看门狗的原理

一文读懂STM32之独立看门狗/窗口看门狗的原理一、独立看门狗STM32的独立看门狗由内部专门的40Khz低速时钟驱动,即使主时钟发生故障,它也仍然有效。

看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。

看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示MCU已经挂了),便实现处理器的自动复位重启(发送复位信号)。

在键值寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。

当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。

无论何时,只要键寄存器IWDG_KR中被写入0xAAAA,IWDG_RLR 中的值就会被重新加载到计数器中从而避免产生看门狗复位。

IWDG_PR和IWDG_RLR寄存器具有写保护功能。

要修改这两个寄存器的值,必须先向IWDG_KR寄存器中写入0x5555。

将其他值写入这个寄存器将会打乱操作顺序,寄存器将重新被保护。

重装载操作(即写入0xAAAA)也会启动写保护功能。

只要对以上三个寄存器进行相应的设置,我们就可以启动STM32的独立看门狗,启动过程可以按如下步骤实现(独立看门狗相关的库函数和定义分布在文件stm32f10x_iwdg.h和stm32f10x_iwdg.c中):1)取消寄存器写保护(向IWDG_KR写入0X5555)通过这步,我们取消IWDG_PR和IWDG_RLR的写保护,使后面可以操作这两个寄存器,设置IWDG_PR和IWDG_RLR的值。

这在库函数中的实现函数是:IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);2)设置独立看门狗的预分频系数和重装载值设置看门狗的分频系数的函数是:voidIWDG_SetPrescaler(uint8_TIWDG_Prescaler);//设置IWDG预分频值。

STM32开发笔记WWDG和IWDG的用法

STM32开发笔记WWDG和IWDG的用法

STM32 独立看门狗IWDG 与窗口看门狗WWDG2010年05月03日星期一21:54 独立看门狗Iwdg——有独立时钟(内部低速时钟LSI---40KHz),所以不受系统硬件影响的系统故障探测器。

主要用于监视硬件错误。

窗口看门狗wwdg——时钟与系统相同。

如果系统时钟不走了,这个狗也就失去作用了,主要用于监视软件错误。

一,独立看门狗看门狗定时时限= IWDG_SetReload()的值/ 看门狗时钟频率看门狗时钟频率=LSI(内部低速时钟)的频率(40KHz)/ 分频数1.STM32独立看门狗IWDG的时限定为280微秒。

这个时限可能会随着LSI(内部低速时钟)的频率漂移而产生微小的变化。

/* IWDG timeout equal to 280 ms (the timeout may varies due to LSI frequency dispersion) -------------------------------------------------------------*//* Enable write access to IWDG_PR and IWDG_RLR registers */IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);/* IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz */IWDG_SetPrescaler(IWDG_Prescaler_32);/* Set counter reload value to 349 */IWDG_SetReload(349);/*该参数允许取值范围为0 –0x0FFF */* Reload IWDG counter */IWDG_ReloadCounter();/* Enable IWDG (the LSI oscillator will be enabled by hardware) */IWDG_Enable();2.独立看门狗(IWDG)由专用的40kHz 的低速时钟为驱动;因此,即使主时钟发生故障它也仍然有效。

STM32看门狗WWDG和IWDG的区别是什么

STM32看门狗WWDG和IWDG的区别是什么

STM32 看门狗WWDG 和IWDG 的区别是什么STM32 有2 个看门狗:独立看门狗和窗口看门狗。

独立看门狗IWDG:独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。

窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同。

如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。

简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。

对于一般的独立看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但是这样有一个隐患,有可能程序跑乱了又跑回正常的地方,或者跑乱的程序正好执行了刷新看门狗操作,这样的情况下一按的看门狗就检测不出来故障了;但是如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗,也不会滞后刷新看门狗,这样可以检测出程序没有按照正常的路径运行,非正常地跳过了某些程序段的情况。

STM32之窗口看门狗

STM32之窗口看门狗

STM32之窗⼝看门狗简介:跟独⽴看门狗⼀样,也是⽤来检测软件可能出现的错误,不⼀样的是,当独⽴看门狗计数器的值减到0时会产⽣复位,在减到0之前喂狗防⽌复位。

窗⼝看门狗:在某⼀值到0x40之间喂狗才不会产⽣复位,其他情况均会产⽣复位信号,这个某⼀个值称之为窗⼝上限。

计数器数值由看门狗控制寄存器决定可以看出计数器占7位,最⼤值为0x7f功能框图:1.PCLK1默认为36MHz2.PCLK1经过分频器分频⽣成CNT_CK给计数器提供时钟从图中可以看出CNT_CK=PCLK1/4096/(2^WDGTB)3.计数器,见最上⾯第1 2张图,当计数器最⾼位T6由1变为0时,产⽣复位4.设置窗⼝上限值,见配置寄存器,窗⼝上限值不得⼤于计数器最⼤值,不得⼩于窗⼝下限值超时时间计算:超时时间指计数器值减到窗⼝下限下⼀个数值即0x3f所花时间最短超时时间在计数器的值为0x40的时候,最长超时时间在计数器值为0x7f的时候当WDGTB为0时,CNT_CK=36M/4096/1=8789.0625Hz 计数器减⼀次所花时间为 1/8789.0625(s) 最短超时时间=(0x40-0x3f)*/8789.0625约等于113us最长超时时间=(0x7f-0x3f)/8789.0625 约等于7.28ms相关函数:上⾯中的中断函数使能是当计数器从0x40减到0x3f时产⽣的,这个中断称为死前中断。

实验:设置计数器值和窗⼝上限值都为0x7f配置死前中断,在中断中喂狗,并且LED2反转main函数中,LED1⼀直点亮原理图:看门狗头⽂件和源⽂件:#ifndef _WWDG_H#define _WWDG_H#include "stm32f10x.h"void WWDG_Config(void);#endif#include "wwdg.h"static void LED1_GPIO_Config(void){GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_1;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStruct);GPIO_SetBits(GPIOC,GPIO_Pin_1);//默认熄灭}//中断优先级配置static void WWDG_NVIC_Config(void){NVIC_InitTypeDef NVIC_InitStruct;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);NVIC_InitStruct.NVIC_IRQChannel=WWDG_IRQn;NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority=1;NVIC_InitStruct.NVIC_IRQChannelSubPriority=1;NVIC_InitStruct.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStruct);}void WWDG_Config(void){WWDG_NVIC_Config();LED1_GPIO_Config();RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG,ENABLE);//开启看门狗时钟 WWDG_SetPrescaler(WWDG_Prescaler_8);//设置分频系数WWDG_SetWindowValue(0x7f);//设置窗⼝上限值WWDG_SetCounter(0x7f);//设置计数器值WWDG_EnableIT();//使能中断WWDG_Enable(0x7f);//开启看门狗}void WWDG_IRQHandler(void){WWDG_ClearFlag();WWDG_SetCounter(0x7f);//设置计数器值//LED2反转if(GPIO_ReadOutputDataBit(GPIOC,GPIO_Pin_1)==SET)GPIO_ResetBits(GPIOC,GPIO_Pin_1);elseGPIO_SetBits(GPIOC,GPIO_Pin_1);//默认熄灭}mian⽂件:#include "stm32f10x.h"#include "wwdg.h"static void LED0_GPIO_Config(void);int main(void){LED0_GPIO_Config();WWDG_Config();while(1);}static void LED0_GPIO_Config(void){GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStruct.GPIO_Pin=GPIO_Pin_0;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOC,&GPIO_InitStruct);GPIO_ResetBits(GPIOC,GPIO_Pin_0);//默认点亮}。

一个菜鸟的STM32寄存器学习笔记6_独立看门狗IWDG

一个菜鸟的STM32寄存器学习笔记6_独立看门狗IWDG

STM32有两个看门狗一个是独立看门狗IWDG还有一个是窗口看门狗WWDG。

这两者之间的区别主要是:1.独立看门狗的时钟和主时钟是分离的,使用的是内部的低速时钟,所以时钟是不准确的,但是是和主时钟分离的,当主时钟发生错误,独立看门狗还是能工作的。

而窗口看门狗是用的APB1的时钟,APB1用的是主时钟。

说以主时钟会影响到窗口看门狗的工作。

2.独立看门狗在计数接收之前喂狗就可以。

窗口看门狗要在一个时间范围内喂狗,早点晚点都不可以。

这里主要介绍独立看门狗看门狗的作用就是在程序中加入一些喂狗语句,当程序在哪里死掉或者跑飞没有及时的喂狗。

看门狗就会让CPU重启。

独立看门狗就是这个功能,配置方法如下:1.对IWDG->KR写入0x5555解除对PR和RLR寄存器的锁定使这两个寄存器可以写入数据2.在PR中写入预分频值3.在RLR中写入计数的初值4.使能IWDG功能5.在程序相应位置插入喂狗程序详细说明:第一步写入解锁语句根据手册要对PR和RLR进行访问就需要先对KR写入0X5555IWDG->KR=0X5555;第二步设置预分频值和重装载初值这里只有3位有效这个寄存器只有12位有效从中午参考手册中可以看到时钟进来之后通过分频器进行分频然后给计数器提供时钟。

所以可以得出分频系数越大,计数器走的就越慢,相同的初值值减到0的时间就越长。

手册上给了个根据需要的时间来选择分频系数的参考表格在《STM32不完全手册》上有一个公式例如看门狗的复位时间是2秒那我们从上表可以看出公式中的prer最小可以是3然后就可以列出公式2000=((4*2^3)*rlr)/40解出重装载的初值就是2500换成16进制就是9C4就。

我们就可以给PR和RLR中填入数值了IWDG->PR=3;IWDG->RLR=0x9C4;第三步开启看门狗只要给KR寄存器写入0XCCCC;就可以开启看门狗IWDG->KR=0XCCCC;第四步在程序中插入喂狗语句IWDG->KR=0XAAAA;这里可以在有循环的地方,在延时函数里加上一句这个喂狗程序。

STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处

STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处

STM32 单片机中的独立看门狗与窗口看门狗有哪些
不同之处
1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。

32 的独立看门狗是没有中断的,而窗口看门狗可根据需要配置中断
2.关于独立看门狗和窗口看门狗的应用,手册p316 即17.1 节讲的非常清楚。

首先独立看门狗和窗口看门狗都可用来监视软件程序是否正常运行,而
具体而言,因为独立看门狗独立于系统时钟单独运行,因此其可用来监视是
否发生了硬件错误,比如说系统时钟故障,看门狗仍然能够起到重启的作
用,但是独立看门狗的计时精度比较差,更多的应用在独立系统运行之外的
对计时要求低的地方。

而窗口看门狗是由系统时钟提供的,因此其计时也会
很准确,当然其也就只能用来检测软件故障,比如硬件故障系统时钟坏了,
自身也就不动了,也就没有检测硬件故障的作用,因此窗口看门狗是用在检
测应用软件是否准确运行时使用的。

当然我们用系统情况下其实完全可以不使用32 提供的看门狗,我们自己某个任务的一个变量即实现看门狗的功能了。

3.另外注意,看门狗只是解决软件异常,独立看门狗称为硬件看门狗是其。

stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

stm32看门狗时间计算独立看门狗和窗口看门狗的特性是什么STM32看门狗时间计算(TWDG):1.STM32看门狗的例子IWDG的时限定为280微秒。

这个时限可能会随着LSI(内部低速时钟)的频率漂移而产生微小的变化。

/* IWDG TImeout equal to 280 ms (the TImeout may varies due to LSI frequency dispersion) -------------------------------------------------------------*//* Enable write access to IWDG_PR and IWDG_RLR registers */IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);/* IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz */IWDG_SetPrescaler(IWDG_Prescaler_32);/* Set counter reload value to 349 */IWDG_SetReload(349);/*该参数允许取值范围为0 0x0FFF */* Reload IWDG counter */IWDG_ReloadCounter();/* Enable IWDG (the LSI oscillator will be enabled by hardware) */IWDG_Enable();2.独立看门狗(IWDG)由专用的40kHz 的低速时钟为驱动; 因此,即使主时钟发生故障它也仍然有效。

窗口看门狗由从APB1 时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的行为。

可通过IWDG_SetPrescaler(IWDG_Prescaler_32); 对其时钟进行分频,4-256,通过以下方式喂狗:/* Reload IWDG counter */IWDG_ReloadCounter();3. 1.25KHz 即每周期为0.8ms共计时350 个周期,即350*0.8ms=280ms综合以上,STM32看门狗时间(时限)与频率计算公式为:看门狗定时时限= IWDG_SetReload()的值/ 看门狗时钟频率看门狗时钟频率=LSI(内部低速时钟)的频率(40KHz)/ 分频数stm32独立看门狗和窗口看门狗特性、区别:总结起来,两者大概有以下几点特性和区别:1)独立看门狗没有中断,窗口看门狗有中断2)独立看门狗有硬件软件之分,窗口看门狗只能软件控制3)独立看门狗只有下限,窗口看门狗又下限和上限4)独立看门狗是12位递减的。

stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

stm32看门狗时间计算独立看门狗和窗口看门狗的特性是什么STM32看门狗时间计算(TWDG):1.STM32看门狗的例子IWDG的时限定为280微秒。

这个时限可能会随着LSI(内部低速时钟)的频率漂移而产生微小的变化。

/* IWDG TImeout equal to 280 ms (the TImeout may varies due to LSI frequency dispersion) -------------------------------------------------------------*//* Enable write access to IWDG_PR and IWDG_RLR registers */IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);/* IWDG counter clock: 40KHz(LSI) / 32 = 1.25 KHz */IWDG_SetPrescaler(IWDG_Prescaler_32);/* Set counter reload value to 349 */IWDG_SetReload(349);/*该参数允许取值范围为0 0x0FFF */* Reload IWDG counter */IWDG_ReloadCounter();/* Enable IWDG (the LSI oscillator will be enabled by hardware) */IWDG_Enable();2.独立看门狗(IWDG)由专用的40kHz 的低速时钟为驱动; 因此,即使主时钟发生故障它也仍然有效。

窗口看门狗由从APB1 时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的行为。

可通过IWDG_SetPrescaler(IWDG_Prescaler_32); 对其时钟进行分频,4-256,通过以下方式喂狗:/* Reload IWDG counter */IWDG_ReloadCounter();3. 1.25KHz 即每周期为0.8ms。

STM32F0独立和窗口看门狗的功能解析

STM32F0独立和窗口看门狗的功能解析

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

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

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

今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。

我每次都是提供整理好的软件工程供大家下载,但是,如果你是一位学习者,建议自己亲手一步一步操作。

窗口看门狗的作用是什么?窗口看门狗复位分析

窗口看门狗的作用是什么?窗口看门狗复位分析

窗口看门狗的作用是什么?窗口看门狗复位分析
一,窗口看门狗介绍独立看门狗的喂狗范围0-X(X由预分频器和重装载值决定,最大值为0xFFF)
独立看门狗相关介绍:传送门:独立看门狗
相比于独立看门狗,窗口看门狗限定了喂狗时间段(由喂狗上限和喂狗下限值限定的喂狗范围)
所以形象的称作窗口看门狗
二,为什么需要窗口看门狗独立看门狗:在0-重载值之间任意时间都可以喂狗
如果程序跑飞后又跑回正常
或者跑乱的程序正好执行了刷新看门狗
这样独立看门狗是不能检查到并复位芯片的
窗口看门狗:限制了喂狗时间
如果程序跑飞并且在限制的时间段喂狗是很困难的
从而保证了程序的正常运行
1234567891011
三,独立看门狗和窗口看门狗比较独立看门狗:
驱动:由LSI驱动,即使主时钟发生故障它仍有效
适用场景:
作为主程序之外能够完全独立工作
对时间精度要求较低
123456
窗口看门狗:
驱动:由APB1时钟分频后得到时钟驱动
适用场景:
在精确计时窗口起作用的程序。

STM32F4系列MCU独立看门狗IWDG的应用

STM32F4系列MCU独立看门狗IWDG的应用

STM32F4系列MCU独立看门狗IWDG的应用
为了提搞系统的可靠性,STM32F4系列MCU有一个独立看门狗(IWDG)和一个窗口看门狗(WWDG)。

今天做的实验是关于独立看门狗的。

独立看门狗使用的时钟源是内部低速振荡器LSI。

因为LSE可能没接,HSE可能坏点,HSE耗着的时候HSI却观点了。

诸多原因,LSI是最好的独立看门狗时钟。

【IWDG主要特性】
1、独立的向下计数器
2、内部RC振荡器作为时钟源
3、当计数器值减到0时,复位MCU 【IWDG配置步骤】
1、设置KR寄存器,为向PR和RLR写入数据做准备。

向KR写入0x5555使能写入PR 和RLR
2、写入预分频值和重装载值。

预分频是对LSI进行分频,重装载值是每次重新计数的开始值。

3、向KR写入0xAAAA,使能计数。

4、向KR写入0x5555,重新开始计数。

否则计数到0就会reset。

【代码实现】
本实验依赖于前面的LED实验。

实验第一步的现象是LED反复闪烁。

第二步现象是LED 亮一下后熄灭。

第一部分:
int main()
{
NVIC_Config();
LED_Init();
LEDOn(LED1);
delay_ms(500);
LEDOff(LED1);。

STM32L15x —— 独立看门狗IWDG和窗口看门狗WWDG

STM32L15x —— 独立看门狗IWDG和窗口看门狗WWDG

Same as STM32F-1系统外设独立看门狗(IWDG)IWDG ——概述可通过option byte来选择是否使能硬件IWDG功能更先进的安全功能:IWDG使用独立的低速时钟LSI作为时钟源,并在主时钟无效时仍然保持运行 一旦使能了IWDG,该功能就不能被禁止(LSI也不能被停止)安全的刷新修改序列由于IWDG模块属于VDD供电域,因此即使在停止和待机模式下,仍然保持功能(IWDG的复位信号能将芯片从待机模式下唤醒)防止IWDG复位信号产生:在计数器自减到0之前,向IWDG_KR寄存器写入AAAAhRCC_CSR寄存器的IWDGRSTF位指示是否产生了IWDG复位事件使用32KHz的LSI,IWDG复位的最短和最长时间间隔为125us和32.7s8-bitPRESCALERLSI(38KHz)12-bitreload value12-bitdown counterPrescalerRegisterStatusRegisterReloadRegisterKeyRegisterIWDGReset VDD voltage domainVCORE voltage domainIWDG最适合那些不需要很高精度,但需要独立于主进程之外的独立看门狗的应用Same as STM32F-1系统外设窗口看门狗(WWDG)WWDG ——概述可配置的时间窗口,应用程序需要在一个有限的时间窗口内刷新自减计数器有条件的复位: 当窗口看门狗使能,并且自减计数器小于40h(T6=0)时,产生复位当窗口看门狗使能,并且在自减计数器达到窗口寄存器数值之前更新了自减计数器,产生复位防止窗口看门狗复位信号产生:定期的,在自减计数器数值小于窗口范围(W[6:0])时,写T[6:0](其中T6位写1)早期唤醒中断(EWI):当自减计数器达到40h 时产生中断Î此中断可用于重载自减计数器 RCC_CSR 的WWDGRSTF 位指示是否发生了WWDG 复位事件使用32MHz 的PCLK1时钟时,WWDG 的最短和最长复位时间间隔分别是128us 和65.54msWWDG最适合那些需要精准时间控制的看门狗的应用Refreshnot allowed Refresh WindowT[6:0] CNT down countertimeW[6:0]3FhT6 bitResetCM PW0W1W2W3W4W5W6-T0T1T2T3T4T5T6WDGAWWDG_CR WWDG_CFR PRESCALER (WDGTB)6-Bit Down CounterPCLK1(up to 32MHz)Write WWDG_CRcomparator = 1 whenT6:0 > W6:0WWDG Reset。

STM32F103系列单片机最实用看门狗的详细资料概述

STM32F103系列单片机最实用看门狗的详细资料概述

STM32F103系列单片机最实用看门狗的详细资料概述为什么使用看门狗事情很简单先前做的一款采集数据的产品不知道为何异常,陷入死循环然后“死机”,分析了很多次,没发现原因,但是每次重新上点后就能正常采集到数据。

后来找到了解决方法:看门狗!目的是当程序走入死循环或者硬件异常时,可以自动复位,这样就可以得到跟重新上电后差不多的效果了。

使用的平台:stm32f103系列单片机使用的烧写调试模式:Jlink SWD 模式。

使用STM32官方模板库。

ST系列单片机看门狗分为两种:1.独立看门狗,2.窗口看门狗。

独立看门狗:可参看RM(reference Manual)的Independent watchdog (IWDG)当然,只是简要查看下RM中的介绍(至于寄存器的操作,我们可以略过,因为我们使用库的开发,但是基本流程一定要了解!)。

在这里我们要抓住几个关键点:a、stm32f10x系列有两个看门狗,看门狗主要用于检测由于软件出错的问题,并触发系统自动复位,或者触发一个中断(窗口看门狗才有)。

b、独立看门狗的时钟源为LSI,尽管主时钟出错,它还是能保持激活状态。

窗口看门狗的时钟源为APB1时钟,并且可以修改分频值。

c、独立看门狗:有独立时钟(内部低速时钟LSI),所以不受系统硬件影响的系统故障探测器。

主要用于监视硬件错误。

精确度要求比较低。

d、窗口看门狗:时钟与系统相同。

如果系统时钟不走了,这个狗也就失去作用了,主要用于监视软件错误。

精确度要求更高。

看门狗原理简介:有某个寄存器按照时钟源不断的递减(有只狗,不断的消耗能量),当该。

stm32几种时钟控制介绍,含原理图

stm32几种时钟控制介绍,含原理图

stm32几种时钟控制介绍,含原理图本文提到的有以下内容:• 时钟系统与总线矩阵• SysTick系统定时器• RTC实时时钟• 看门狗定时器• 通用定时器一、时钟系统与总线矩阵stm32F4的时钟树如下图所示:在STM32中,有五个时钟源,为HSI、HSE、LSI、LSE、PLL。

HSI是高速内部时钟,RC振荡器,频率为8MHz。

HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。

LSI是低速内部时钟,RC振荡器,频率为40kHz。

LSE是低速外部时钟,接频率为32.768kHz的石英晶体。

PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2、HSE或者HSE/2。

倍频可选择为2~16倍,但是其输出频率最大不得超过72MHz。

我们在学习51单片机的时候,其内部是没有晶振的,而stm32是有的。

stm32可以通过RCC(时钟控制寄存器)对时钟进行参数配置以及使能。

我们还可以通过修改system_stm32f4xx.c文件,来配置上述时钟树上的一些分频、倍频参数,得到理想的频率。

在单片机系统中,CPU和总线以及外设的时钟设置是非常重要的,因为没有时钟就没有时序,组合电路需要好好理解清楚。

我们先来看一下总线矩阵。

片上总线标准种类繁多,而由ARM公司推出的AMBA片上总线受到了广大IP开发商和SoC系统集成者的青睐,已成为一种流行的工业标准片上结构。

AMBA规范主要包括了AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。

二者分别适用于高速与相对低速设备的连接。

一般性的时钟设置需要先考虑系统时钟的来源,是内部RC还是外部晶振还是外部的振荡器,是否需要PLL。

然后考虑内部总线和外部总线,最后考虑外设的时钟信号。

遵从先倍频作为CPU时钟,然后在由内向外分频,下级迁就上级的原则。

STM32单片机的独立看门狗和窗口看门狗的特点及用法解析

STM32单片机的独立看门狗和窗口看门狗的特点及用法解析

STM32单片机的独立看门狗和窗口看门狗的特点及用法解析1.看门狗介绍看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。

使用看门狗保证系统正常地运行是非常有必要的。

我们在设计产品时,代码以及硬件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行复位,系统的可靠性将大打折扣。

看门狗分为软件看门狗和硬件看门狗两类,其原理都是使用一个独立定时器来计时,超出时间就会产生复位信号,主要区别看是否具有独立的硬件结构,如果有,就是硬件看门狗,如果是一个普通定时器实现的那么就是软件看门狗。

STM32F407片内有两个看门狗:独立看门狗IWDG以及窗口看门狗WWDG,下面来讨论各自的特点和用法。

2.IWDG的特点以及使用IWDG是一个独立看门狗,具有独立于系统的时钟,与片外看门狗更为相似,使用片内独立的阻容时钟发生电路计时,记录时间为=(时钟频率(40KHz)/ 分频数)*IWDG_SetReload (t),t《0xFFF.也就是说记录的最大设定的复位时间为(1/40K)*256*0xFFF = 26.2 S。

由于IWDG使用的时钟本身不准确,会因为漂移产生一定变化,喂狗时应该给出一定的裕量。

另外,这个时钟与系统时钟并无关联,所有也不能与系统进行同步产生中断,一旦定时时间到后就会产生复位信号,系统来不及存储当前运行状态就会重启,可以在要求不高的场合使用。

3.WWDG的特点以及使用WWDG具有一个独立的7位定时器,使用系统时钟,可以产生系统中断。

其定时最时间为(1/PCLK1)* 4096)* 分频系数(最大为8)*(0x7F –0x3F)= 58ms.其复位的条件是:(1)当计数器的数值从0x40减到0x3F(2)当刷新看门狗时计数器的数值大于窗口上限值时满足任何一条都可以产生复位信号。

通常情况下设置窗口上限值为0x7F,下限值默认为0x40,计数器向下数到0x40就会产生中断,下个910us后变为0x3F就会复位系统。

STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处

STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处

STM32单片机中的独立看门狗与窗口看门狗有哪些不同之处
STM32 单片机中的独立看门狗与窗口看门狗有哪些
不同之处
1.关于看门狗的解释不再说明,窗口看门狗简而言之即只能看某个窗口期即某段时间内才能够喂狗。

32 的独立看门狗是没有中断的,而窗口看门狗可根据需要配置中断
2.关于独立看门狗和窗口看门狗的应用,手册p316 即17.1 节讲的非常清楚。

首先独立看门狗和窗口看门狗都可用来监视软件程序是否正常运行,而
具体而言,因为独立看门狗独立于系统时钟单独运行,因此其可用来监视是
否发生了硬件错误,比如说系统时钟故障,看门狗仍然能够起到重启的作
用,但是独立看门狗的计时精度比较差,更多的应用在独立系统运行之外的
对计时要求低的地方。

而窗口看门狗是由系统时钟提供的,因此其计时也会
很准确,当然其也就只能用来检测软件故障,比如硬件故障系统时钟坏了,
自身也就不动了,也就没有检测硬件故障的作用,因此窗口看门狗是用在检
测应用软件是否准确运行时使用的。

当然我们用系统情况下其实完全可以不使用32 提供的看门狗,我们自己某个任务的一个变量即实现看门狗的功能了。

3.另外注意,看门狗只是解决软件异常,独立看门狗称为硬件看门狗是其。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

STM32 单片机的独立看门狗和窗口看门狗的特点及
用法解析
1.看门狗介绍
看门狗这东西虽然简单,但我相信绝大多程序员没有足够重视它。

使用看门狗保证系统正常地运行是非常有必要的。

我们在设计产品时,代码以及硬
件设计缺陷或是外界电磁干扰都有可能使系统死机,如果不能正常对其进行
复位,系统的可靠性将大打折扣。

看门狗分为软件看门狗和硬件看门狗两
类,其原理都是使用一个独立定时器来计时,超出时间就会产生复位信号,
主要区别看是否具有独立的硬件结构,如果有,就是硬件看门狗,如果是一
个普通定时器实现的那幺就是软件看门狗。

STM32F407 片内有两个看门狗:独立看门狗IWDG 以及窗口看门狗WWDG,下面来讨论各自的特点和用
法。

2.IWDG 的特点以及使用
IWDG 是一个独立看门狗,具有独立于系统的时钟,与片外看门狗更为相似,使用片内独立的阻容时钟发生电路计时,记录时间为=(时钟频率
(40KHz)/ 分频数)*IWDG_SetReload(t),t《0xFFF.也就是说记录的最大设定的复位时间为(1/40K)*256*0xFFF = 26.2 S。

由于IWDG 使用的时钟。

相关文档
最新文档