一、包含头文件

#include "stm32f10x_iwdg.h"

二、设置 独立看门狗 的超时时间

  • 1、配置代码

    /** 设置 IWDG 的超时时间* Tout(ms) = prv / 40 * rlv * prv可以是[4,8,16,32,64,128,256]* prv:预分频器值,取值如下:*     @arg IWDG_Prescaler_4: IWDG prescaler set to 4*  @arg IWDG_Prescaler_8: IWDG prescaler set to 8*  @arg IWDG_Prescaler_16: IWDG prescaler set to 16*  @arg IWDG_Prescaler_32: IWDG prescaler set to 32*  @arg IWDG_Prescaler_64: IWDG prescaler set to 64*  @arg IWDG_Prescaler_128: IWDG prescaler set to 128*  @arg IWDG_Prescaler_256: IWDG prescaler set to 256** rlv:预分频器值,取值范围为:0-0XFFF* 函数调用举例:* IWDG_Config(IWDG_Prescaler_64 ,625);  // IWDG 1s 超时溢出*/void IWDG_Config(uint8_t prv, uint16_t rlv)
    {   // 使能 预分频寄存器PR和重装载寄存器RLR可写IWDG_WriteAccessCmd( IWDG_WriteAccess_Enable );// 设置预分频器值IWDG_SetPrescaler( prv );// 设置重装载寄存器值IWDG_SetReload( rlv );// 把重装载寄存器的值放到计数器中IWDG_ReloadCounter();// 使能 IWDGIWDG_Enable();
    }
    
  • 2、超时时间计算举例:

    • 若配置: IWDG_Config(IWDG_Prescaler_64 , 625);
    • 则超时时间为: Tout(ms) = prv / 40 * rlv = 64 / 40 * 625 = 1000 (ms) = 1 (s)
  • 3、注意事项:

    • 在设置 rlv 值的时候,踩了一个大坑 ╥﹏╥…

    • 想设置独立看门狗的超时时间大一些,就把 rlv 设置成6250,这样子 Tout(ms) = 10s。

    • 美滋滋跑去运行,可是发现总是超时1s没喂狗,就溢出复位了!!Σ(っ °Д °;)っ

    • 我居然忘了最重要的一点(重要的事情说三遍!!!):

      rlv:预分频器值,取值范围为:0-0xFFF
      rlv:预分频器值,取值范围为:0-0xFFF
      rlv:预分频器值,取值范围为:0-0xFFF

    • 所以设置 rlv 值的时候,小心不要超出最大值啦~~

三、喂狗函数

  • 代码

    // 喂狗
    void IWDG_Feed(void)
    {// 把重装载寄存器的值放到计数器中,喂狗,防止IWDG复位// 当计数器的值减到0的时候会产生系统复位IWDG_ReloadCounter();
    }
    

四、怎么关闭 独立看门狗

  • 独立看门狗一旦启用,就不能再被关闭!! ! ! ! ! ! !

  • 关闭方法1:使用软件复位单片机,复位后独立看门狗就会被关闭,这时候不要再打开独立看门狗就可以了。

  • 你们有什么其他好方法吗?欢迎评论探讨~

STM32 - 独立看门狗IWDG - 使用注意事项+代码相关推荐

  1. STM32—独立看门狗(IWDG)

    STM32-独立看门狗(IWDG) 独立看门狗(IWDG) STM32-独立看门狗(IWDG) 独立看门狗(IWDG) IWDG 简介 IWDG 功能框图剖析 独立看门狗时钟 计数器 重装载寄存器 键 ...

  2. cubeIDE开发, stm32独立看门狗IWDG的CubeMX配置及HAL库底层实现分析

    一.STM32 的IWDG简介 2.1 看门狗原理 看门狗本质上就是一种计数器,和我们现实生活中一炷香现象.沙漏现象等是同理的,计数器一般有两种做法,一种是递增,超过固定阀值报警:一种是递减,通常值降 ...

  3. 【STM32】stm32独立看门狗(IWDG)

    stm32独立看门狗(IWDG) 0x01 IWDG简介 0x02 IWDG主要性能 0x03 IWDG寄存器配置 0x01 IWDG简介 STM32F10xxx内置两个看门狗,(独立看门狗和窗口看门 ...

  4. stm32专题三十四:独立看门狗 IWDG

    独立看门狗简介 IWDG结构框图 (1)独立看门狗时钟 独立看门狗的时钟由独立的 RC 振荡器 LSI 提供, 即使主时钟发生故障它仍然有效,非常独立. LSI 的频率一般在 30~60KHZ 之间, ...

  5. STM32F103五分钟入门系列(十三)独立看门狗IWDG

    参考:STM32F103五分钟入门系列(十三)独立看门狗IWDG 作者:自信且爱笑' 发布时间:2021-07-31 19:50:28 网址:https://blog.csdn.net/Curnane ...

  6. STM32F1笔记(六)独立看门狗IWDG

    STM32F1内置了两个看门狗,独立看门狗IWDG和窗口看门狗WWDG,可以用来检测和解决由软件错误引起的故障. IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精 ...

  7. STM32独立看门狗(宠物狗)

    一.前言 ······在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系 ...

  8. stm32独立看门狗和rtc闹钟

    独立看门狗 1.独立看门狗概述 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会 ...

  9. STM32 独立看门狗实验

    一.STM32 独立看门狗简介 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效.这里需要注意独立看门狗的时钟是一个内部 RC 时钟,所以并不是准确的 ...

最新文章

  1. 美团分布式ID生成服务LeafCode
  2. 如何在Angular.js选择框中使用默认选项
  3. Maven多模块项目使用MyBatis Generator
  4. go 公众号 关注 监听_荐号丨推荐五个适合法学院关注公众号
  5. sdut 3333 数据结构实验之栈与队列六:下一较大值(二)
  6. git conifg
  7. scanner java重新输入_如何使用Scanner Java重复读取用户输入
  8. 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
  9. 针对文字加密的简单 JS 加密算法 --进制乱序法改良版
  10. Serverless 实战 —— Serverless + Egg.js 后台管理系统实战
  11. Pytorch《DCGAN模型》
  12. SpringBoot--springboot启动类和controller的配置
  13. 【笔记】Java数据结构与算法
  14. 学生成绩互帮互助分组C语言,C语言实现—学生成绩管理系统(Linux下运行)
  15. function 自定义函数、函数调用
  16. 代码随想录第一天 leetcode 704、35、34、27
  17. uniapp之app自动更新
  18. 《Python语言程序设计》实验二
  19. 大数据多维分析常用操作图解 OLAP Operations
  20. RHCE(四)SAMBA协议

热门文章

  1. Windows窗口与消息
  2. 世界是平的-信息交换趋向于无障碍发展带来的影响(全球化)
  3. jupyter多次运行问题
  4. 未来5G物联网的安全形态,看英飞凌eSIM
  5. 五十条比较经典的爱情观
  6. vue+element-tiptap
  7. 星淘惠跨境:跨境卖家必看攻略,亚马逊广告费用问题
  8. Android GPS应用:动态获取位置信息
  9. fork函数与vfork函数的区别
  10. 北邮计算机学院导师组,北京邮电大学考研信通院各导师组介绍.pdf