当前位置: 首页 > news >正文

嵌入式系统---看门狗

        在嵌入式系统中,看门狗定时器(Watchdog Timer,WDT)是一种常用的机制,用于检测和恢复系统在异常情况下的故障。如果系统因为某种原因(如软件死循环)而变得无响应,看门狗定时器可以自动重启系统,从而防止系统长时间处于不可用状态。

        看门狗定时器通常需要定期“喂狗”(即写入特定的值以重置计时器),来防止它触发系统重启。如果系统正常工作,它会在看门狗定时器超时之前喂狗;如果系统出现问题,没有及时喂狗,看门狗定时器就会超时并触发重启。

演示例子如下 :

#include "stm32f4xx_hal.h"void StartWatchdog(void) {// 启用独立看门狗HAL_IWDG_Start(&hiwdg);
}void FeedWatchdog(void) {// 喂狗,重置看门狗的计数器HAL_IWDG_Refresh(&hiwdg);
}int main(void) {// HAL库初始化HAL_Init();// 配置系统时钟SystemClock_Config();// 看门狗初始化配置IWDG_HandleTypeDef hiwdg;hiwdg.Instance = IWDG;hiwdg.Init.Prescaler = IWDG_PRESCALER_4;hiwdg.Init.Reload = 4095;HAL_IWDG_Init(&hiwdg);// 开启看门狗StartWatchdog();while (1) {// 正常工作时,定期喂狗FeedWatchdog();// 执行其他任务}
}void SystemClock_Config(void) {// 系统时钟配置代码,根据具体硬件配置
}void Error_Handler(void) {// 错误处理代码while(1) {}
}

在这个例子中:

1.使用HAL_IWDG_Init()函数初始化看门狗定时器,设置预分频器和重载值。

2.使用HAL_IWDG_Start()函数启动看门狗定时器。

 3.使用HAL_IWDG_Refresh()函数喂狗,重置看门狗的计数器

总结:

        具体问题具体分析,有些场景下可能对看门狗的配置更加复杂,需要根据硬件手册以及库函数文档进行操作配置。

        要“关闭”看门狗定时器,通常意味着停止喂狗,让看门狗定时器超时并触发重启。在某些系统中,可能需要特殊的操作或权限来完全禁用看门狗定时器,这通常不推荐在正常运行的系统中进行,因为它会降低系统的可靠性和稳定性。

 

http://www.lryc.cn/news/462284.html

相关文章:

  • 从MySQL5.7迁移到8.0时,有哪些重要的参数调整或新参数需要注意?
  • 完整发布/上传uniapp Ios应用到App Store流程
  • CodeActAgent :Executable Code Actions Elicit Better LLM Agents解读
  • 中小型医院网站开发:Spring Boot入门
  • Java读取PDF后做知识库问答_SpringAI实现
  • 打开exe程序显示没有适当的访问权限
  • Python异步编程:使用`create_task`并发执行协程
  • 从零开始搭建你的DolphinScheduler分布式任务调度平台实战指南
  • 第五课:Python学习之if语句
  • 群晖前面加了雷池社区版,安装失败,然后无法识别出用户真实访问IP
  • 【秋招笔试】10.13拼多多(已改编)秋招-三语言题解
  • 50个JAVA常见代码大全:学完这篇从Java小白到架构师(附带讲解)
  • Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.0 SP1升级到SP3操作方法(x64)
  • Centos7安装Git及配置Github
  • MobileNet v3(相比于MobileNet v2)
  • 短视频剪辑入门指南:这四大软件值得推荐!
  • 网络编程(22)——通过beast库快速实现websocket服务器
  • 从视频截取每一帧作为图像
  • 终端 数据表格
  • 2.4.ReactOS系统运行级别降低IRQL级别KfLowerIrql 函数
  • 数字后端实现静态时序分析STA Timing Signoff之min period violation
  • phpstorm+phpstudy 配置xdebug(无需开启浏览器扩展)
  • AI赋能安全运营 | 赛宁网安深度参与四川省网络安全沙龙
  • R语言中,.RData 和 .rds 的区别
  • python实现录屏功能
  • 酷克数据出席2024金融业数据库技术大会
  • find_library、pkg_check_modules、pkg_search_module的区别
  • 多jdk版本环境下,jenkins系统设置需指定JAVA_HOME环境变量
  • Java mybatis day1015
  • 音乐播放器项目专栏介绍​