分享

STM32 基础系列教程 18 – IWDG

 JunleDoc 2020-08-09

前言

学习stm32 独立看门狗(IWDG)接口使用,学会用STM32内部独立看门狗(IWDG)实现程序异常时自复位功能。

STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备(独立看门狗和窗口看门狗)可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。

IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。 WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。关于窗口看门狗的使用,将在第19讲介绍。

示例详解

基于硬件平台: STM32F10C8T6最小系统板, MCU 的型号是 STM32F103c8t6, 使用stm32cubemx 工具自动产生的配置工程,使用KEIL5编译代码。

本示例所用的最小系统板原理图:

    1. 从本节开始,关于CUBEMX工具及KEIL工具的操作将不再细讲,如果还有不熟悉的可以查看之前的教程文档。下面直接介绍工程配置:

    1. 系统时钟树

    1. IWDG配置(50ms)  40000*0.05 = 2000 = 4*500

    1. 引脚配置

    1. 中断配置(保持默认即可)

    1. 在main.c 中加入如下图所示代码(不带喂狗操作):

    1. 工程代码

和带喂狗操作

    1. 到此,我们就完成了IWDG的学习与使用,上面的程序中,不带喂狗操作的程序会定期复位,可从PA0引看到复位后对该引脚的操作波形:

加上喂狗操作后,程序能按原先预设的逻辑长时间运行,PA0脚看有脉冲输出,PA1上的波形变得更加有序和统一:


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多