【MCU】基于STM32CubeMX 实现独立看门狗 IWDG

本文详细介绍STM32F10X独立看门狗IWDG的工作原理及性能,并通过STM32CubeMX进行配置,实现了一个基础的IWDG实验。实验中,开发板上的LED将在看门狗时间溢出时闪烁,当按键按下时,系统通过重装载值更新避免重置。

基于STM32CubeMX 实现STM32F10X 独立看门狗 IWDG

本文将介绍 STM32F10X 独立看门狗 IWDG 的基础知识,主要参考STM32F10x参考手册。并且实现一个简单的 IWDG 实验。实验主要效果:没有喂狗时,LED保持闪烁,完成喂狗后,LED 状态保持。

基于STM32CubeMX 实现STM32F10X 独立看门狗 IWDG

第一部分 基础理论

1. IWDG 简介

2. IWDG 主要性能

3. IWDG 功能描述

3.1 硬件看门狗 

3.2 寄存器访问保护 

4. IWDG 寄存器

4.1 键值寄存器(IWDG_KR)

4.2 预分频寄存器(IWDG_PR)

4.3 重装载寄存器(IWDG_RLR)

4.4 状态寄存器(IWDG_SR)

4.5 IWDG 寄存器映像

5. 溢出时间计算 

第二部分 基础实验

1. 软件与硬件

1.1 硬件要求

1.2 软件要求

2. STM32CubeMX配置开发板

3. 程序代码

3.1 usart.c

3.2 main.c

4. 程序分析 

4.1 主要功能

4.2 主要函数


第一部分 基础理论

1. IWDG 简介

(1)STM32F10X内置了独立看门狗 IWDG,其可用来检查和解决由软件错误而引起的故障。当其递减计数器到达给定的超时的值时,产生系统复位。

(2)IWDG 由专用的低速时钟(LSI)驱动,在主时钟发生故障时,其也能保持运行状态。

(3)IWDG 最适用于那些需要看门狗完全独立运行于主程序之外并且对时间准确性要求较低的程序应用中。

2. IWDG 主要性能

(1)独立运行的递减计数器

(2)时钟由独立的RC振荡器提供(可在停止和待机模式下工作)

(3)看门狗被激活后,则在计数器计数至0x000时产生复位

3. IWDG 功能描述

当 Key Register(IWDG_KR) 寄存器写入 0xCCCC 时,独立看门狗将被启动,计数器将从 0xFFF 开始递减,但到达计数器末端 0x000 时将产生复位信号(IWDG RESET),无论何时 IWDG_KR register 写入键值 0xAAAA, IWDG_RLR中的值都会被重新被加载到计数器,从而避免产生看门狗复位。以下为 IWDG 模块的功能框图。

注:看门狗功能处于VDD供电区,即在停机和待机模式时仍能正常工作。 

3.1 硬件看门狗 

如果通过设备选项位中使能 “Hardware watchdog”功能,在系统上电复位后,看门狗自动开始运行;如果计数器到达计数终点之前,若 Key register 没有由软件向其写入相应的值,则系统将会产生复位。

3.2 寄存器访问保护 

(1)IWDG_PR 和 IWDG_RLR寄存器具有写保护功能。

(2)要修改这两个寄存器的值,必须先向 IWDG_KR 寄存器中写入0x5555。

(3)将其他值(除0x5555之外)写入这个寄存器将会打乱操作顺序,IWDG_PR和IWDG_RLR 寄存器将重新被保护。

(4)重装载操作(即写入0xAAAA)也会启动写保护功能。

(5)状态寄存器指示预分频值和递减计数器是否正在被更新。

4. IWDG 寄存器

4.1 键值寄存器(IWDG_KR)

4.2 预分频寄存器(IWDG_PR)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值