STM32 - 独立看门狗IWDG - 使用注意事项+代码
一、包含头文件
#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 - 使用注意事项+代码相关推荐
- STM32—独立看门狗(IWDG)
STM32-独立看门狗(IWDG) 独立看门狗(IWDG) STM32-独立看门狗(IWDG) 独立看门狗(IWDG) IWDG 简介 IWDG 功能框图剖析 独立看门狗时钟 计数器 重装载寄存器 键 ...
- cubeIDE开发, stm32独立看门狗IWDG的CubeMX配置及HAL库底层实现分析
一.STM32 的IWDG简介 2.1 看门狗原理 看门狗本质上就是一种计数器,和我们现实生活中一炷香现象.沙漏现象等是同理的,计数器一般有两种做法,一种是递增,超过固定阀值报警:一种是递减,通常值降 ...
- 【STM32】stm32独立看门狗(IWDG)
stm32独立看门狗(IWDG) 0x01 IWDG简介 0x02 IWDG主要性能 0x03 IWDG寄存器配置 0x01 IWDG简介 STM32F10xxx内置两个看门狗,(独立看门狗和窗口看门 ...
- stm32专题三十四:独立看门狗 IWDG
独立看门狗简介 IWDG结构框图 (1)独立看门狗时钟 独立看门狗的时钟由独立的 RC 振荡器 LSI 提供, 即使主时钟发生故障它仍然有效,非常独立. LSI 的频率一般在 30~60KHZ 之间, ...
- STM32F103五分钟入门系列(十三)独立看门狗IWDG
参考:STM32F103五分钟入门系列(十三)独立看门狗IWDG 作者:自信且爱笑' 发布时间:2021-07-31 19:50:28 网址:https://blog.csdn.net/Curnane ...
- STM32F1笔记(六)独立看门狗IWDG
STM32F1内置了两个看门狗,独立看门狗IWDG和窗口看门狗WWDG,可以用来检测和解决由软件错误引起的故障. IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精 ...
- STM32独立看门狗(宠物狗)
一.前言 ······在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会造成整个系 ...
- stm32独立看门狗和rtc闹钟
独立看门狗 1.独立看门狗概述 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断,由单片机控制的系统无法继续工作,会 ...
- STM32 独立看门狗实验
一.STM32 独立看门狗简介 STM32 的独立看门狗由内部专门的 40Khz 低速时钟驱动,即使主时钟发生故障,它也仍然有效.这里需要注意独立看门狗的时钟是一个内部 RC 时钟,所以并不是准确的 ...
最新文章
- 美团分布式ID生成服务LeafCode
- 如何在Angular.js选择框中使用默认选项
- Maven多模块项目使用MyBatis Generator
- go 公众号 关注 监听_荐号丨推荐五个适合法学院关注公众号
- sdut 3333 数据结构实验之栈与队列六:下一较大值(二)
- git conifg
- scanner java重新输入_如何使用Scanner Java重复读取用户输入
- 【干货】JS版汉字与拼音互转终极方案,附简单的JS拼音输入法
- 针对文字加密的简单 JS 加密算法 --进制乱序法改良版
- Serverless 实战 —— Serverless + Egg.js 后台管理系统实战
- Pytorch《DCGAN模型》
- SpringBoot--springboot启动类和controller的配置
- 【笔记】Java数据结构与算法
- 学生成绩互帮互助分组C语言,C语言实现—学生成绩管理系统(Linux下运行)
- function 自定义函数、函数调用
- 代码随想录第一天 leetcode 704、35、34、27
- uniapp之app自动更新
- 《Python语言程序设计》实验二
- 大数据多维分析常用操作图解 OLAP Operations
- RHCE(四)SAMBA协议