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

发布者:心灵舞者最新更新时间:2024-06-17 来源: elecfans关键字:stm32  看门狗  时间计算  独立看门狗  窗口看门狗 手机看文章 扫描二维码
随时随地手机看文章

  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位递减的。窗口看门狗是7位递减的

  5)独立看门狗是用的内部的大约40KHZ RC振荡器,窗口看门狗是用的系统时钟APB1ENR

  下面我给你们详细介绍下:

  独立看门狗没有中断功能,只要在计数器减到0(下限)之前,重新装载计数器的值,就不会产生复位,独立看门够有硬件和软件之分,硬件是通过烧写器的“设定选项几节等”配置,一旦开启了硬件看门狗,那么就停不下来了,只能在重新配置“设定选项几节等”才能关掉硬件看门狗,软件看门狗只需要设置IWDG->KR=0XCCCC;就可以启动看门狗了,软件狗可以在系统复位时关掉,如果在在初始化里开启软件看门狗,那就开启了软件看门狗,独立看门狗是12位递减的寄存器,使用片子内部的RC振荡器,这个振荡器是关不掉的。

  窗口看门狗有中断,这个中断的作用是在计数器达到下限0x40的时候,产生中断,让你喂狗,如果你不喂狗,计数器的值变为0x3f的时候,将会产生系统复位,即使是喂狗,也应该在中断里快速喂狗,要不时间长了计数器减一也会变成0x3f产生复位,这个时间根据芯片手册的公式进行计算即可得到,窗口看门狗只有软件开启方式,还有一个上限值,这个值如果大于计数器的初始值,那么就没有任何作用了,这个值小于计数器的初始值得时候,当计数器的值大于上限值时你对计数器进行装载,将会产生复位,只有在计数器减到小于上限值时,你才能重新装载计数器,意思就是说只有计数器的值在上限值和下限值之间你才能装载计数器,否则就会产生系统复位,当上限值小于下限值,也没有意义。

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

  窗口看门狗wwdg——我的理解是系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去作用了。主要用于监视软件错误。

  以下是经过测试发现的:

  //发现1:当窗口值大于等于计数器的值,无论怎么更改配置的顺序,都是正确的运行结果

  //发现2:当窗口值小于计数器的值,顺序一旦改变就运行错误

  经过测试发现,当初始化的顺序不是正常顺序的话,就会把WWDG->SR置一,为什么我也不知道,谁知道片子里面怎么搞的。

  你在开启中断就进入中断的,这时你又进行喂狗,就会复位的,因为这时计数器的值>上限窗口的值,所以会复位,所以就会一直出错下去。

  解决办法是,初始话的时候最后两句是先清除中断标志然后在开启中断,如果你不这么干,那么在初始化的时候很可能把WWDG->SR置位,那么你在开启中断,就会毫不犹豫的进入中断,你在中断重装计数器值得时候,就会产生复位。


关键字:stm32  看门狗  时间计算  独立看门狗  窗口看门狗 引用地址:stm32看门狗时间计算 独立看门狗和窗口看门狗的特性是什么

上一篇:队列的介绍和利用环形队列实现STM32进阶之串口环形缓冲区的概述
下一篇:工程师STM32单片机学习手记(3):修修改改玩串口

推荐阅读最新更新时间:2024-11-06 10:10

采用STM32 单片机的太阳能LED街灯解决方案
  随着化石类能源的日益减少,以及温室气体的过度排放导致全球变暖问题越来越受到重视,人们一方面在积极开发各类可再生 新能源 ,另一方面也在倡导 节能减排 的绿色环保技术。 太阳能 作为取之不尽、用之不竭的 清洁能源 ,成为众多可再生能源的重要代表;而在照明领域,寿命长、节能、安全、绿色环保、色彩丰富、微型化的 LED 固态照明 也已被公认为世界一种节能环保的重要途径。太阳能-LED街灯同时整合了这两者的优势,利用清洁能源以及高效率的LED实现 绿色照明 。   本文介绍的太阳能-LED街灯方案,能自动检测环境光以控制路灯的工作状态,最大 功率 点追踪(MPPT)保证最大 太阳能电池 板效率,恒电流控制LED,并带有蓄电池状态输出
[单片机]
采用<font color='red'>STM32</font> 单片机的太阳能LED街灯解决方案
STM32 USART 串口简单使用
STM32 的库实在强大~!函数长的像句子...... 好了开始了: 使用查询方式的USART: 设置时钟: RCC_APB2Periph_AFIO功能复用IO时钟 RCC_APB2Periph_GPIOAGPIOA时钟 RCC_APB2Periph_USART1 USART1时钟 你可以用 //使能串口1,PA,AFIO总线RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1,ENABLE); 或直接 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AL
[单片机]
<font color='red'>STM32</font> USART 串口简单使用
STM32入门学习笔记之MPU6050传感器解析实验1
19.1 MPU6050简介 19.1.1 芯片概述 MPU6050是InvenSense公司推出的一款6轴运动处理芯片,内置3轴陀螺仪及3轴速度传感器,内置两组I2C接口,其中一组用于通信,另一组则用于连接外部磁力传感器,采用自带的数字运动处理器DMP(Digital Motion Processor),通过主I2C接口,直接读取完整的9轴融合演算数据。MPU6050检测轴及其检测方向如下图所示。 19.1.2 引脚介绍 MPU6050采用QFN-24封装,端口描述如下表所示。 引脚编号 引脚名称 功能 1 CLKIN 外部参考时钟输入,如果不使用直接接地 2 NC 空引脚 3 NC 空引脚 4 NC 空
[单片机]
<font color='red'>STM32</font>入门学习笔记之MPU6050传感器解析实验1
stm32手持设备设计与制作
stm32作为现在最流行的单片机,广泛应用与各个领域。现在的手持设备也经常用stm32作为主控芯片。手持设备一般带有显示器、数据存储单元、按键、蜂鸣器这几个最常见的部分。 以上设备就是把电路板装进去的效果,由于涉嫌本人的项目隐私,给大家打了马赛克。 下面,我把电路板的原理图和电路板PCB一一奉献给大家。 1.stm32主控mcu电路 2.电源电路图 3.液晶屏电路图 4.EEPROM部分 5.FLASH部分 6.矩阵键盘部分 7.蜂鸣器部分 8.无线通信部分(可做远程遥控) 9.完整的原理图 10.制作好的PCB图
[单片机]
<font color='red'>stm32</font>手持设备设计与制作
意法完成STM32微控制器底层软件部署
   意法半导体 (ST)完成了将其免费底层应用程序编程接口(Low-LayerApplicationProgrammingInterface,LLAPI)软件,导入支持所有的 STM32 微控制器(MCU)的 STM32 Cube软件包中。LLAPI软件让专业的开发人员,能够在方便好用的STMCube环境内开发应用,使用ST验证的软件,对最低到寄存器级的代码进行优化,从而缩短产品上市时间。下面就随嵌入式小编一起来了解一下相关内容吧。   在所有的 STM32 Cube组合内,整合LLAPI和硬件抽象层(HardwareAbstractionLayer,HAL)软件,让开发人员能够完全自由地选择外部周边的控制方式。他们可以选择利
[嵌入式]
STM32芯片连接电脑出现的问题与解决方法
当我们使用STM32芯片进行开发时,往往需要将其连接到电脑以进行编程、调试等操作。然而,这个过程中可能会遇到一些让人头疼的问题,比如无法正常连接、连接不稳定等。 这些问题不仅影响了我们的开发效率,还可能让我们卡在关键的调试阶段。那么,遇到这些问题时,我们应该如何解决呢? 1.问题:无法识别芯片。 解决方法:检查芯片是否正确连接,USB线是否完好无损。尝试更换USB线或更换端口。同时,确保芯片的供电正常,供电电压应在3.3V左右。 2.问题:连接不稳定,经常出现断开现象。 解决方法:这可能是由于USB线质量不好或者端口供电不足导致的。尝试更换高质量的USB线或使用供电充足的端口。另外,检查芯片的配置文件是否正确。 3.问题:无法
[单片机]
STM32驱动LCD原理
TFTLCD即薄膜晶体管液晶显示器。它与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个像素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。 ▲驱动流程 01、使用FSMC驱动LCD 关于FSMC,把数据写入相应的地址,FSMC就会把地址从FSMC_A出去,写入的数据会会从FSMC_D发出去。至于片选等信号线都是自动的。读的话,直接读相应的地址,就会拿到改地址上的数据。 FSMC驱动外部SRAM时,外部SRAM的控制一般有: 地址线(如A0~A25) 数据线(如D0~D15) 写信号(WE,即WR) 读信号(OE,即
[单片机]
<font color='red'>STM32</font>驱动LCD原理
STM32使用systick实现精确延时
SYSTICK寄存器初始化 void SysTick_Configuration(void) { if (SysTick_Config(SystemCoreClock / 100)) { while (1); } NVIC_SetPriority(SysTick_IRQn, 0x0); } SysTick_Config默认时钟为SysTick_CLKSource_HCLK,所以在这之前使用SysTick_CLKSourceConfig()选择系统时钟不会改变systick的时钟 static __INLINE uint32_t SysTick_Config(uint32_t ticks) {
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved