STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

发布时间:2023-09-28  

  stm32自带两个看门狗模块,独立看门狗IWDG和窗口看门狗WWDG。

  看门狗的原理:单片机系统在外界的干扰下会出现程序跑飞的现象导致出现死循环,看门狗电路就是为了避免这种情况的发生。看门狗的作用就是在一定时间内(通过定时计数器实现)没有接收喂狗信号(表示 MCU 已经挂了),便实现处理器的自动复位重启(发送复位信号) 。


  看门狗主要作用是可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。


  具体的实现步骤:开启看门狗,设置减计数的初始值,当计数值达到超时值时,产生MCU复位,此时本来运行的程序终止重新启动单片机(发生了故障)。在使用了看门狗之后,在正常运行的程序中加入喂狗的程序,即采用定时器的方式每隔一段时间进行一次喂狗重置计数装载值,这样,只要程序正常运行,没有出现故障或软件错误,就会不断的定时喂狗,从而不会使计数值达到超时值产生复位。


  一、独立看门狗IWDG:

  1、IWDG主要性能

  1)自由运行的递减计数器

  2)时钟由独立的RC振荡器提供(可在停止和待机模式下工作)

  3)看门狗被激活后,则在计数器计数至0x000时产生复位

  2、IWDG功能描述

  在键寄存器(IWDG_KR)中写入0xCCCC,开始启用独立看门狗;此时计数器开始从其复位值0xFFF递减计数。当计数器计数到末尾0x000时,会产生一个复位信号(IWDG_RESET)。

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

  void IWDG_Configuration(void)

  {

  写入0x5555,用于允许狗狗寄存器写入功能

  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);

  狗狗时钟分频,40K/256=156HZ(6.4ms)

  IWDG_SetPrescaler(IWDG_Prescaler_256);

  喂狗时间 5s/6.4MS=781 。注意不能大于0xfff

  IWDG_SetReload(781);

  喂狗

  IWDG_ReloadCounter();

  使能狗狗

  IWDG_Enable();

  }

  二、窗口看门狗WWDG:

  STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)

  1、WWDG主要特性

  1)可编程的自由运行递减计数器

  2)条件复位

  ─当递减计数器的值小于0x40,(若看门狗被启动)则产生复位。

  ─当递减计数器在窗口外被重新装载,(若看门狗被启动)则产生复位。见图155。

  3)如果启动了看门狗并且允许中断,当递减计数器等于0x40时产生早期唤醒中断(EWI),它可以被用于重装载计数器以避免WWDG复位。

  如果看门狗被启动(WWDG_CR寄存器中的WDGA位被置’1’),并且当7位(T[6:0])递减计数器从0x40翻转到0x3F(T6位清零)时,则产生一个复位。如果软件在计数器值大于窗口寄存器中的数值时重新装载计数器,也将产生一个复位。应用程序在正常运行过程中必须定期地写入WWDG_CR寄存器以防止MCU发生复位。只有当计数器值小于窗口寄存器的值时,才能进行写操作。储存在WWDG_CR寄存器中的数值必须在0xFF和0xC0之间:

  4)启动看门狗在系统复位后,看门狗总是处于关闭状态,设置WWDG_CR寄存器的WDGA位能够开启看门狗,随后它不能再被关闭,除非发生复位。

  5)控制递减计数器递减计数器处于自由运行状态,即使看门狗被禁止,递减计数器仍继续递减计数。当看门狗被启用时,T6位必须被设置,以防止立即产生一个复位。 T[5:0]位包含了看门狗产生复位之前的计时数目;复位前的延时时间在一个最小值和一个最大值之间变化,这是因为写入WWDG_CR寄存器时,预分频值是未知的。配置寄存器(WWDG_CFR) 中包含窗口的上限值:要避免产生复位,递减计数器必须在其值小于窗口寄存器的数值并且大于0x3F时被重新装载,图155描述了窗口寄存器的工作过程。另一个重装载计数器的方法是利用早期唤醒中断(EWI)。设置WWDG_CFR寄存器中的WEI位开启该中断。当递减计数器到达0x40时,则产生此中断,相应的中断服务程序(ISR)可以用来加载计数器以防止WWDG复位。在WWDG_SR寄存器中写’0’可以清除该中断。

  void WWDG_Configuration(void)

  {

  窗口看门狗时钟允许

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);

  看门狗节拍 = (36M/4096)/8 = 1098 Hz就是说一秒钟计数器减1098下

  WWDG_SetPrescaler(WWDG_Prescaler_8);

  窗口值用0x42就是说计数器满是0x7f在减到0x42之前喂狗了就算喂早了-复位

  WWDG_SetWindowValue(0x42);

  看门狗使能并初始化定时器为0x7f最大就是0x7f计数器减到到0x3F(T6位清零)时,则产生一个复位

  WWDG_Enable(0x7F);

  Clear EWI flag 清中断标记

  WWDG_ClearFlag();

  使能 EW interrupt这个会在计数器减到0x40的时候产生一个“死前”中断 当然你也可以在这个中断里赶紧

  喂狗-省的狗咬你(复位)

  WWDG_EnableIT();

  }

  STM32看门狗配置(独立看门狗IWDG和窗口看门狗WWDG)


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    PLC编程的方式 PLC编程的电脑配置要求;  PLC是控制和自动化工业和制造过程。它主要用于监控、控制和优化实现各种功能的机器设备和过程,例如控制生产线上的机器和设备、监测产品及材料的流动、监测......
    为什么 Windows 10 的 AR、VR 电脑配置要求如此之低?; 在微软近期的一个 Windows 10......
    ADC_AnalogWatchdogThresholdsConfig设置触发看门狗的上下限 使用ADC_AnalogWatchdogSingleChannelConfig配置要使用模拟看门狗的通道 配置......
    复位。 IWDG独立看门狗实例 实验要求:开启STM32的独立看门狗,按键按下即喂狗,如果超时未喂狗,则看门狗复位系统,用指示灯指示系统复位。 步骤: 1.配置RCC 2......
    有效的。   配置步骤:   1)取消寄存器写保护(向IWDG_KR写入0X5555)   2)设置独立看门狗的预分频系数和重装载值   3)重载计数值喂狗(向IWDG_KR写入0XAAAA)   4)启动看门狗......
    重装载值; 使能看门狗; 应用程序喂狗; 配置代码如下所示: /**  * 初始化独立看门狗  * prer:分频数:0~7(只有低 3 位有效!)  * 分频因子=4*2^prer.但最大值只能是 256......
    重装载值; 使能看门狗; 应用程序喂狗; 配置代码如下所示: /**  * 初始化独立看门狗  * prer:分频数:0~7(只有低 3 位有效!)  * 分频因子=4*2^prer.但最大值只能是 256......
    (IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。 IWDG最适合应用于那些需要看门狗......
    计数时钟,2 位分频,7位计数,需要定期喂狗(更新计数值),如果计数值减为0x40了,还未更新计数值,则会响应复位事件。 Ⅴ、代码描述 今天提供两种看门狗软件工程,下面分别来总结一下,主要讲解配置......
    STM32独立看门狗详解;本文将介绍STM32的看门狗中的独立看门狗,并通过实例来喂狗、体验喂狗与不喂狗的区别。 ①STM32看门狗介绍之独立看门狗 ②使用STM32CUBEMX来配置......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>