登录/注册

STM32F103 WDT

更多

在STM32F103微控制器中,看门狗定时器(WDT) 是一种用于检测和恢复系统故障的重要机制,主要分为两种类型:独立看门狗(IWDG)窗口看门狗(WWDG)。以下是它们的核心特性和使用要点:


一、独立看门狗(IWDG)

  1. 特性

    • 独立于主时钟,由内部 40kHz RC振荡器 驱动,即使主时钟失效也能工作。
    • 用于检测软件死循环或卡死等故障。
    • 超时时间 可配置,需在超时前“喂狗”,否则触发复位。
  2. 配置步骤(标准库)

    // 1. 解锁IWDG寄存器(允许修改预分频和重载值)
    IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
    
    // 2. 设置预分频系数(如IWDG_Prescaler_32,分频后时钟=40kHz/32=1.25kHz)
    IWDG_SetPrescaler(IWDG_Prescaler_32);
    
    // 3. 设置重载值(超时时间 = 重载值 / 时钟频率)
    IWDG_SetReload(1000); // 超时时间 = 1000 / 1250 ≈ 0.8秒
    
    // 4. 启动看门狗
    IWDG_Enable();
    
    // 5. 定期喂狗(在超时前执行)
    IWDG_ReloadCounter();
  3. 注意事项

    • 超时时间计算:
      [ T_{timeout} = \frac{(重载值 + 1) \times 预分频}{40 \text{kHz}} ]
    • 需在超时前调用 IWDG_ReloadCounter(),否则系统复位。

二、窗口看门狗(WWDG)

  1. 特性

    • 基于APB1时钟(通常36MHz),需主时钟正常工作。
    • 必须在 特定时间窗口内喂狗(早于下限或晚于上限均会复位)。
    • 适合检测程序跑飞或逻辑异常。
  2. 配置步骤(标准库)

    // 1. 使能WWDG时钟
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_WWDG, ENABLE);
    
    // 2. 设置窗口值(0x40~0x7F)
    WWDG_SetWindowValue(0x70);
    
    // 3. 设置计数器初始值(必须 > 窗口值,否则立即复位)
    WWDG_Enable(0x7F); // 启动并设置计数器值
    
    // 4. 开启提前唤醒中断(需配置NVIC)
    WWDG_EnableIT();
    
    // 5. 中断服务函数中喂狗
    void WWDG_IRQHandler(void) {
     WWDG_SetCounter(0x7F); // 重置计数器
     WWDG_ClearFlag();      // 清除中断标志
    }
  3. 注意事项

    • 窗口时间计算:
      [ T_{window} = \frac{(窗口值 - 0x40) \times 4096}{APB1 \text{时钟} / 分频} ]
    • 分频系数默认为 WWDG_Prescaler_1(可通过 WWDG_SetPrescaler() 修改)。
    • 必须在计数器值 小于窗口值且大于0x3F 时喂狗。

三、常见问题

  1. 系统频繁复位

    • 检查喂狗间隔是否超时。
    • 确认预分频和重载值计算正确。
  2. 窗口看门狗不工作

    • 确保APB1时钟正常(默认36MHz)。
    • 喂狗操作是否在允许的时间窗口内。
  3. 调试时看门狗干扰

    • 在调试器连接时,可通过配置 DBGMCU_CR 寄存器暂停看门狗。

四、总结

根据实际需求选择看门狗类型,并确保代码中及时、正确地喂狗。

STM32F103VET6

1970-01-01 08:00:00 至 1970-01-01 08:00:00

ARM系列STM32F103芯片的解密方法

本文介绍ARM系列STM32F103芯片的解密方法,其内核是Cortex-M3,内存从16K-512K都有。

2024-02-28 11:20:34

stm32f103 flash模拟eeprom

STM32F103是意法半导体(STMicroelectronics)推出的一款32位单片机系列,该系列芯片具有高性能和丰富的外设接口,广泛应用于工业控制、消费电子、汽车电子等领域。其中

2024-01-09 11:21:36

基于STM32F103的SVPWM算法实现

基于STM32F103的SVPWM算法实现

资料下载 jinyi7016 2022-03-22 12:12:17

STM32F103用户使用手册

STM32F103用户使用手册

资料下载 倚東聽海 2021-12-06 09:47:21

基于STM32f103的输入捕获测频率和占空比

基于STM32f103的输入捕获测频率和占空比

资料下载 shyshyshy 2021-08-02 10:10:24

基于STM32f103的FFT频率测试程序下载

基于STM32f103的FFT频率测试程序下载

资料下载 shyshyshy 2021-08-02 10:07:20

基于STM32f103使用的DAC正弦波

基于STM32f103使用的DAC正弦波

资料下载 shyshyshy 2021-08-02 10:05:00

学习STM32F103的ADC功能

三勺最近在学习STM32F103的ADC功能,居然连最简单的独立模式的单通道的电压采集都不能实现,这就不能忍了,这是对智商的侮辱。

2023-10-24 16:06:03

学习STM32F103的DAC功能

三勺最近在学习STM32F103的DAC功能,本文主要解释在配置DAC寄存器实现相应功能时遇到的一些问题。

2023-10-24 16:00:10

ARM系列STM32F103芯片的解密方法

破解STM32F103芯片的方法

2023-09-19 09:03:40

ch32v103stm32f103的区别

ch32v103与stm32f103的区别  Ch32v103与STM32f103

2023-08-22 15:49:00

STM32F103 GPIO内部电路图讲解

STM32F103 GPIO内部电路图讲解

2023-02-01 16:32:14

基于STM32F103单片机的矩阵按键设计

本实验使用STM32F103单片机,主题代码通用的。

2022-12-09 17:18:46

stm32f030和stm32f103功能差异

stm32f030和stm32f103功能差异主要表现在哪?

2021-07-22 09:35:47

7天热门专题 换一换
相关标签