STM32复习笔记(四):独立看门狗IWDG

目录

(一)简介

(二)CUBEMX工程配置

(三)相关函数

总结:


(一)简介

独立看门狗本质是一种定时器,其作用是监视系统的运行,当系统发生错误(如程序卡死,程序跑飞)时,能自动让系统复位;观察cubemx中的时钟树可以发现,IWDG是由LSI提供32KHz的时钟,而IWDG内部可以对LSI时钟进行分频,预分频系数从4~256(须为2的次幂);并且系统复位时,IWDG的12位递减计数器初值为4095,在启动IWDG后,计数器递减计数,当计数值为0时,系统复位;所以如果程序正常运行的话,必须在规定时间里刷新IWDG内递减计数器的值(这就是大家说的“喂狗”),以防止系统复位;另外,根据预分频系数可以算出IWDG的最长超时,如下表所示;计算方法为:T = 1 / (32KHz / 预分频系数)* 4096(注意K表示10e3,k才是2e10);

重载值为4095时IWDG的超时
预分频系数 超时/ms
/4 512
/8 1024
/16 2048
/32 4096
/64 8192
/128 16384
/256 32768

STM32复习笔记(四):独立看门狗IWDG_第1张图片


(二)CUBEMX工程配置

在cubemx中,只需要开启IWDG,并配置预分频系数和递减计数值即可:

STM32复习笔记(四):独立看门狗IWDG_第2张图片


(三)相关函数

IWDG相关函数(非常少,所以直接贴上来):

1、初始化:HAL_StatusTypeDef    HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg);初始化之后自动启动;

2、喂狗:HAL_StatusTypeDef    HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg);

3、宏:__HAL_IWDG_START(__HANDLE__) ;启动iwdg,启动后不可关闭;

4、宏:__HAL_IWDG_RELOAD_COUNTER(__HANDLE__);重置计数值,也就是喂狗;

5、宏:IWDG_ENABLE_WRITE_ACCESS(__HANDLE__);使预分频reg和重载reg可写入;

6、宏:IWDG_DISABLE_WRITE_ACCESS(__HANDLE__);使预分频reg和重载reg不可写入;

IWDG使用方法非常简单,只需要在计数值减为0之前,按时喂狗即可,否则就会重启系统(常称为“狗叫”);


总结:

其实相关内容有许多,比如说定时器(基本、通用、高级)、RTC时钟、ADC、DAC、SPI、I2C、CAN等等等等,但是感觉没有必要全部再来一遍,当需要用到的时候,再重新捡起来(因为具体内容确实有点忘了,,,),毕竟时间、精力有限;其实自我感觉学习这些知识最重要的是去学会了如何发现问题->找相关资料->学习->解决问题,一条龙服务     :D

Fighting!~~~

完~


以上均为个人学习心得,如有错误,请不吝赐教~

THE END

你可能感兴趣的:(STM32复习笔记,stm32,笔记,嵌入式硬件)