STM32F103C8T6引脚看门狗配置指南:系统可靠性利器,保障嵌入式系统稳定运行
发布时间: 2024-07-20 08:01:43 阅读量: 105 订阅数: 74
STM32F103C8T6 例程正点原子 :模板+串口实验+滴答定时器 +独立看门狗+窗口看门狗
5星 · 资源好评率100%
![STM32F103C8T6引脚看门狗配置指南:系统可靠性利器,保障嵌入式系统稳定运行](https://img-blog.csdnimg.cn/direct/12a20229633841b6aed1be8288f45359.png)
# 1. STM32F103C8T6引脚看门狗简介
STM32F103C8T6是一款功能强大的微控制器,它配备了一个引脚看门狗(WWDG),用于监控微控制器系统。引脚看门狗是一个独立于CPU的硬件定时器,它可以检测系统故障并自动复位微控制器。
引脚看门狗具有以下特点:
* 可编程窗口期和溢出时间
* 可选的看门狗中断
* 可通过外部引脚或软件刷新
* 低功耗模式
# 2. 引脚看门狗配置原理**
引脚看门狗是STM32F103C8T6微控制器中一种专门用于监控外部引脚状态的看门狗定时器。它可以检测外部引脚上的信号变化,并在检测到异常时触发复位。本章节将详细介绍引脚看门狗的配置原理,包括寄存器概述、配置步骤以及具体配置方法。
## 2.1 看门狗寄存器概述
引脚看门狗的寄存器位于STM32F103C8T6微控制器的IWDG外设中。主要寄存器包括:
- **IWDG_KR:**控制寄存器,用于使能和复位看门狗。
- **IWDG_PR:**预分频寄存器,用于设置看门狗时钟分频系数。
- **IWDG_RLR:**重装载寄存器,用于设置看门狗溢出时间。
- **IWDG_SR:**状态寄存器,用于指示看门狗的状态。
## 2.2 看门狗配置步骤
引脚看门狗的配置主要包括以下步骤:
### 2.2.1 看门狗时钟选择
看门狗时钟可以从内部时钟(LSI)或外部时钟(LSE)中选择。内部时钟频率为40kHz,外部时钟频率为32.768kHz。通过设置IWDG_PR寄存器中的PR位来选择时钟源。
```c
/* 选择内部时钟 */
IWDG_PR = IWDG_PR_PR_0;
/* 选择外部时钟 */
IWDG_PR = IWDG_PR_PR_1;
```
### 2.2.2 看门狗窗口期设置
窗口期是指看门狗在溢出前必须被刷新的时间范围。通过设置IWDG_RLR寄存器中的WIN位来设置窗口期。窗口期可以设置为4096个时钟周期或8192个时钟周期。
```c
/* 设置窗口期为4096个时钟周期 */
IWDG_RLR = IWDG_RLR_WIN_0;
/* 设置窗口期为8192个时钟周期 */
IWDG_RLR = IWDG_RLR_WIN_1;
```
### 2.2.3 看门狗溢出时间设置
溢出时间是指看门狗从被使能到溢出所需要的时间。通过设置IWDG_RLR寄存器中的RL位来设置溢出时间。溢出时间可以从64个时钟周期到4096个时钟周期不等。
```c
/* 设置溢出时间为64个时钟周期 */
IWDG_RLR = IWDG_RLR_RL_0;
/* 设置溢出时间为4096个时钟周期 */
IWDG_RLR = IWDG_RLR_RL_15;
```
### 2.2.4 看门狗使能与中断配置
通过设置IWDG_KR寄存器中的KEY和KR位来使能看门狗。KEY位用于解锁看门狗,KR位用于启动看门狗。看门狗溢出时会触发中断,可以通过设置IWDG_KR寄存器中的IE位来使能中断。
```c
/* 解锁看门狗 */
IWDG_KR = IWDG_KR_KEY_ENABLE;
/* 启动看门狗 */
IWDG_KR = IWDG_KR_KR_START;
/* 使能中断 */
IWDG_KR = IWDG_KR_IE_ENABLE;
```
# 3. 引脚看门狗配置实践
### 3.1 硬件连接与代码框架
**硬件连接**
* STM32F103C8T6开发板
* LED灯(用于指示看门狗状态)
* 按键(用于触发看门狗复位)
**代码框架**
```c
#include "stm32f10x.h"
// LED端口和引脚定义
#define LED_PORT GPIOC
#define LED_PIN GPIO_Pin_13
// 按键端口和引脚定义
#define KEY_PORT GPIOA
#define KEY_PIN GPIO_Pin_0
// 看门狗寄存器基地址
#define IWDG_BASE 0x40003000
// 看门狗寄
```
0
0