STM32-窗口看门狗WWDG剖析与实例

这篇具有很好参考价值的文章主要介绍了STM32-窗口看门狗WWDG剖析与实例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

窗口看门狗

窗口看门狗WWDG简介

        窗口看门狗(WWDG)通常被用来监测由外部干扰或不可预见的逻辑条件造成的应用程序背离正常的运行序列而产生的软件故障。除非递减计数器的值在 T6 位(WWDG->CR 的第六位)变成 0 前被刷新,看门狗电路在达到预置的时间周期时,会产生一个 MCU 复位。在递减计数器达到窗口配置寄存器(WWDG->CFR)数值之前,如果 7位的递减计数器数值(在控制寄存器中)被刷新, 那么也将产生一个 MCU 复位。

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

WWDG的特性

可配置的时间窗,用来检测应用程序非预期中的运行流程(过早或过晚)

看门狗复位条件

计数器值=0x40产生早期唤醒中断(EWI)WWDG的特性

①使能了看门狗的情况下,自减计数器值小于0x40

②使能了看门狗的情况下,喂狗时间大于上窗口的值

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

WWDG工作原理框图分析

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

窗口看门狗的时钟

窗口看门狗时钟来自 PCLK1,PCLK1 最大是 42M,由 RCC 时钟控制器开启。

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

计数器的时钟

计数器时钟由 CK计时器时钟经过预分频器分频得到,分频系数由配置寄存器 CFR 的位 8:7 WDGTB[1:0]配置

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

计数器

窗口看门狗的计数器是一个递减计数器,共有 7 位,其值存在控制寄存器 CR 的位6:0,

即 T[6:0],当 7 个位全部为 1时是 0X7F,这个是最大值

当递减到 T6 位变成 0时,即从0X40 变为 0X3F时候,会产生看门狗复位。这个值0X40 是看门狗能够递减到的最小值,

当递减计数器递减到 0X40 的时候,还不会马上产生复位,如果使能了提前唤醒中断:CFR 位 9 EWI 置 1,则产生提前唤醒中断,如果真进入了这个中断的话,就说明程序肯定是出问题了,

那么在提前唤醒中断的处理程序中我们就需要做最重要的工作,比如保存重要数据,或者报警等,这个中断我们也叫它死前中断。

窗口值

窗口值得范围:

        下窗口的值是固定的 0X40,上窗口的值可以改变,具体的由配置寄存器 CFR 的位 6:0 W[6:0]设置。其值必须大于 0X40,如果小于或者等于 0X40就是失去了窗口的价值,而且也不能大于计数器的值,所以必须得小于 0X7F。

如何设置窗口值:

        这个得根据我们需要监控的程序的运行时间来决定。如果我们要监控的程序段 A 运行的时间为Ta,当执行完这段程序之后就要进行喂狗,如果在窗口时间内没有喂狗的话,那程序就肯定是出问题了。一般计数器的值 TR设置成最大 0X7F,窗口值为 WR,计数器减一个数的时间为 T,那么时间:

        (TR-WR)*T 应该稍微小于 Ta即可

STM32-窗口看门狗实例讲解

实验要求:

开启STM32的窗口看门狗,并使能唤醒中断。主程序正常运行时喂狗,用按键中断模拟程序故障死机,此时将触发唤醒中断并产生复位,用LED灯指示唤醒中断的触发。

cubemx配置

注意使能WWDG中断

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

程序部分

我们使用按键中断去模拟程序出错,即:在按键中断中不断延时或死循环使主程序无法喂狗
 

​​​​​​​void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    if(GPIO_Pin == GPIO_PIN_0){
        printf("程序故障\n");
        while(1);            //模拟死机
    }
}

 WWDG唤醒中断

void HAL_WWDG_EarlyWakeupCallback(WWDG_HandleTypeDef *hwwdg)
{
	HAL_GPIO_WritePin(GPIOF, GPIO_PIN_8, GPIO_PIN_RESET);
	printf("WWDG_EarlyWakeupCallback\n");
}

主程序

	printf("this is WWDG test\n");
	HAL_GPIO_WritePin(GPIOF, GPIO_PIN_8, GPIO_PIN_SET);	//先熄灭LED灯
	wr = WWDG->CFR & 0x7f;	//获取上窗口的值
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
		tr = WWDG->CR & 0x7f;
		if(tr < wr){
			HAL_WWDG_Refresh(&hwwdg);
		}
		
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

实验现象

STM32-窗口看门狗WWDG剖析与实例,stm32开发,stm32,嵌入式硬件,单片机

可以发现 WWDG唤醒中断中的printf中的内容并不能完全打印,所以我们要尽可能地把最重要的信息放在 WWDG唤醒中断中保存文章来源地址https://www.toymoban.com/news/detail-806051.html

到了这里,关于STM32-窗口看门狗WWDG剖析与实例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32CubeMX教程24 WDG - 独立窗口看门狗

    开发板(正点原子stm32f407探索者开发板V2.4) STM32CubeMX软件(Version 6.10.0) 野火DAP仿真器 keil µVision5 IDE(MDK-Arm) ST-LINK/V2驱动 XCOM V2.6串口助手 逻辑分析仪nanoDLA 使用STM32CubeMX软件配置STM32F407开发板的 独立看门狗(IWDG)和窗口看门狗(WWDG)并了解其功能实现 STM32F407拥有两个看

    2024年01月25日
    浏览(65)
  • STM32开发——看门狗

    目录 1.独立看门狗 1.1需求 1.2CubeMX设置  1.3函数代码 2.窗口看门狗 2.1需求 ​2.2WWDG配置: 2.3函数代码  3.独立看门狗和窗口看门狗的异同点 监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。  独立看门狗本质 本质是一个 12 位的递减计数器,当计数器的值从

    2024年02月10日
    浏览(135)
  • 【正点原子STM32连载】第十五章 窗口看门狗实验 摘自【正点原子】APM32F407最小系统板使用指南

    1)实验平台:正点原子stm32f103战舰开发板V4 2)平台购买地址:https://detail.tmall.com/item.htm?id=609294757420 3)全套实验源码+手册+视频下载地址: http://www.openedv.com/thread-340252-1-1.html# 本章介绍APM32F407窗口看门狗(WWDT)的使用,窗口看门狗与独立看门狗一样能够帮助CPU在进入错误状

    2024年02月12日
    浏览(46)
  • stm32——hal库学习笔记(WWDG)

    WWDG有什么作用? 控制寄存器 (WWDG_CR) 配置寄存器 (WWDG_CFR) 状态寄存器 (WWDG_SR) WWDG最短最长超时时间(F1为例) 相关HAL库函数介绍 wdg.c wdg.h main.c

    2024年02月22日
    浏览(43)
  • 手把手教你开发stm32——看门狗(基于hal库)

    看门狗定时器(WDT,Watch Dog Timer)是单片机的组成部分,它实际上是一个计数器,一般给看门狗一个数值,程序开始运行后看门狗开始倒计时。如果程序运行正常,过一段时间CPU应发出指令让看门狗复位,重新开始计数,也就是所谓的“喂狗”。如果看门狗减到0就认为程序没

    2024年02月17日
    浏览(75)
  • STM32开发环境搭建&工程创建(嵌入式学习)

    简介 STM32CubeMX是STMicroelectronics公司提供的一款集成开发环境(IDE)工具,用于快速配置和初始化STM32微控制器系列的软件工程。它提供了图形化界面和交互式工具,使开发者能够轻松地生成STM32微控制器的初始化代码和配置文件。 STM32CubeMX具有以下主要功能和特点: 微控制器

    2024年02月11日
    浏览(74)
  • stm32之看门狗

            STM32 有两个看门狗, 独立看门狗 和 窗口看门狗 ,独立看门狗又称宠物狗,窗 口看门狗又称警犬。可用来检测和解决由软件错误引起的故障。两个看门狗的原理都是 当计数器达到给定的超时值时,产生系统复位,对于窗口型看门狗同时会产生一个中断。 独立看

    2024年02月04日
    浏览(64)
  • STM32-WDG看门狗

    目录 简介 独立看门狗  键寄存器 窗口看门狗 特点 STM32内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障,当计数器达到给定的超时值时,触发一个中断(仅适用于窗

    2024年03月15日
    浏览(79)
  • STM32--WDG看门狗

    WDG看门狗(Watchdog Timer)是一种常见的硬件设备,在STM32F10系列中,有两种看门狗,分别是独立看门狗和窗口看门狗,可以 用来监测系统的运行状态,并在系统出现故障或停止运行时采取相应措施 ,以确保系统的稳定性和可靠性。 WDG看门狗一般采用一个 计时器 和一个 喂狗机

    2024年02月08日
    浏览(74)
  • STM32——看门狗WDG

    看门狗全称:WatchDog,简称WDG,本质作用是是自动复位电路; WDG主要是监控程序的运行状态,当程序因为设计漏洞,硬件故障或者电磁干扰等原因时,造成程序出现卡死或者跑飞时,看门狗可以自动复位电路,可以避免程序陷入长时间的罢工状态,保证了系统的可靠性和安全

    2024年01月22日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包