首页 > 其他 > 详细

STM32外设:看门狗定时器 IWDG、WWDG

时间:2021-05-29 17:52:31      阅读:20      评论:0      收藏:0      [点我收藏+]

主要外设:

  • IWDG:独立看门狗
  • WWDG:窗口看门狗

IWDG

主要功能:监控MCU的程序,当程序发生故障或超时,使MCU自动重启
LSI(内部RC振荡器~40KHz)→8位预分频系数PR→装值RLR、12位递减计数器→IWDG复位

  • 递减计数器:计数值从RLR减到0,IWDG会产生一个复位信号,系统复位重新启动
  • 避免产生看门狗复位,则需在计数值减到0之前将重装值写入到计数器即“喂狗”
  • 当程序出错时没有刷新计数器,计数器递减到0,系统复位重新启动
  • 使用"独立"的内部RC振荡器作为时钟源,CM内核使用主时钟,在停机和待机模式可工作
  • 最多PR/40KHZ*RLR时间不刷新IWDG则系统复位

硬件设计

32分频/40kHz*1000=800ms 不刷新IWDG则系统复位

CubeMX的配置

  1. 引脚分配:无

  2. 外设配置:

  • System Core-IWDG →模式→ 勾选Actived
  • System Core-IWDG →参数设置(时钟)→IWDG计数器时钟预分频系数=32、IWDG递减计数器重载值1000

用户代码

//USBR CODE3:后台程序(无限循环)
HAL_IWDG_Refresh(&hiwdg);//喂狗

WWDG

主要作用:保证MCU运行时间是否精准
PCLK1→4096分频→分频器系数CFR→重载值CR (TR)、窗口值CFR(WR)、7位递减计数器
技术分享图片

  • 递减计数器:从TR→WR→0x40:在IWDG的基础上画了一道线WR
  • 只能在WR→0x40窗口上限和窗口下限之间可以"喂狗"(从而保证在一定时间内执行)
  • TR→WR之间"喂狗"会产生复位
  • 最小超时时间为WR→0x40:4096预分频值(TR-WR)/APB1时钟
  • 最大超时时间为TR→0x40:4096预分频值(TR-0x39)/APB1时钟
  • 早期预警中断:WWDG复位并不代表程序出错或死机,在MCU复位前,进行收尾工作(eg.保存数据)、
  • 与CM内核共用主时钟

硬件设计

TR=127、WR=84、APB1=50MHz
(4096 * 8)(127-63)/ 50MHz =41.94ms
(4096 * 8)
(127-84)/ 50MHz =28.18ms

CubeMX的配置

  1. 引脚分配:无

  2. 外设配置:

  • System Core-WWDG →模式→ 勾选Actived
  • System Core-WWDG →参数设置(看门狗时钟)→WWDG计数器时钟预分频系数=8、WWDG窗口值84、WWDG自运行递减计数器值127

//USBR CODE3:后台程序(无限循环)
HAL_Delay(35);//等待29ms~40ms喂狗的窗口时间
HAL_WWDG_Refresh(&hwwdg);//喂狗

STM32外设:看门狗定时器 IWDG、WWDG

原文:https://www.cnblogs.com/rayoli/p/14825231.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!