STM32 | 独立看门狗+RTC时间(第八天)

点击上方"蓝字"关注我们

01、独立看门狗

1、独立看门狗概述

    在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系统的陷入停滞状态,发生不可预料的后果,所以出于对单片机运行状态进行实时监测的考虑,便产生了一种专门用于监测单片机程序运行状态的模块或者芯片,俗称“看门狗”(watchdog) 。

    看门狗( watchdog timer),是一个定时器(12位)电路, 一般有一个输入,叫喂狗(kicking the dog or service the dog),一个输出到MCU的RST端,MCU正常工作的时候,每隔一段时间输出一个信号到喂狗端,给WDT清零,如果超过规定的时间不喂狗,(一般在程序跑飞时,不在程序正常的状态),WDT 定时超过,就会给出一个复位信号到MCU,使MCU复位. 防止MCU死机. 看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

02、独立看门狗

独立看门狗(IWDG)

        由专用的低速时钟(LSI)驱动,即使主时钟发生故障它仍有效。

独立看门狗适合应用于需要看门狗作为一个在主程序之外 能够完全独立工作,并且对时间精度要求低的场合。

        STM32F4 的独立看门狗由内部专门的 32Khz 低速时钟 (LSI) 驱动,即使主时钟发生故障,它也仍然有效。这里需要注意独立看门狗的时钟是一个内部RC时钟,所以并不是准 ,而是在15~47Khz 之间的一个可变化的时钟,只是我们在估算的时候,以 32Khz 的频率来计算,独立看门狗对时间的要求不是很精确,所以,时钟有些偏差都是接受的范围。

03、独立看门狗操作步骤

独立看门狗操作步骤需要添加的库函数文件:stm32f4xx_iwdg.c

1、 取消寄存器写保护:

IWDG_WriteAccessCmd();

2、设置独立看门狗的预分频系数,确定时钟:

IWDG_SetPrescaler();

3、设置看门狗重装载值,确定溢出时间:

IWDG_SetReload();

4、使能看门狗

IWDG_Enable();

5、应用程序喂狗:

IWDG_ReloadCounter();

04、RTC

1、RTC时间

    RTC (Real Time Clock):实时时钟

    STM32 的 RTC 外设,实质是一个掉电后还继续运行的定时器。RTC是个独立的BCD定时器/计数器。提供一个日历时钟,两个可编程闹钟中断,以及一个具有中断功能的周期性可编程唤醒标志。RTC还包含用于管理低功耗模式的自动唤醒单元。

两个32位寄存器包含二进码十进制格式(BCD)的秒,分钟,小时(12或24小时制),星期几&#x

相关推荐

  1. STM32 | 看门+RTC源码解析

    2024-07-18 08:44:02       21 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 08:44:02       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 08:44:02       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 08:44:02       57 阅读
  4. Python语言-面向对象

    2024-07-18 08:44:02       68 阅读

热门阅读

  1. vue3中的watch函数

    2024-07-18 08:44:02       22 阅读
  2. 力扣题解(目标和)

    2024-07-18 08:44:02       22 阅读
  3. oracle数据字典详解

    2024-07-18 08:44:02       17 阅读
  4. 自定义异常

    2024-07-18 08:44:02       20 阅读
  5. leetcode-46. 全排列

    2024-07-18 08:44:02       23 阅读
  6. 观察者模式-C#

    2024-07-18 08:44:02       25 阅读
  7. 掌握JVM调优:如何在Gradle中配置JVM参数?

    2024-07-18 08:44:02       19 阅读