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

ESP.wdtFeed();的作用与功能,以及使用方法

ESP.wdtFeed() 的作用、功能及使用方法

ESP.wdtFeed() 是一个用于喂养硬件看门狗(Hardware Watchdog Timer, HWT)的函数。它的主要目的是防止因程序卡死或长时间无响应而导致设备自动重启。下面详细介绍其作用、功能以及具体的使用方法。

1. 函数作用

wdtFeed() 的核心作用是在程序运行过程中定期触发看门狗计数器重置操作,从而避免由于看门狗超时引发的系统复位行为2。对于嵌入式开发而言,这种机制非常关键,尤其是在处理复杂逻辑或者外部传感器交互时,可以有效提升系统的稳定性和可靠性

2. 功能说明
  • 预防意外崩溃:当应用程序进入阻塞状态(如陷入无限循环或等待某个条件永远不成立),如果没有及时调用 wdtFeed() ,则会激活看门狗定时器导致芯片强制重启。
  • 增强健壮性:通过合理安排喂狗位置,即使部分模块出现问题也能保障整体流程继续正常运转而不至于完全停滞。
  • 适用范围广:无论是简单的 LED 控制还是复杂的物联网项目都可以从中受益,尤其适合那些对外界干扰较为敏感的应用场合
3. 使用方法

为了正确地利用好这个工具,开发者需要注意以下几个方面:

(1)启用看门狗服务

在大多数情况下,默认已经启用了基本形式的任务级或其他类型的监视器;但如果想切换至更底层控制,则需手动开启相应选项。例如针对 ESP32 平台可参照如下方式完成初始化工作

#include "soc/timer_group_struct.h"
void setup(){timer_wdt_init(TIMER_GROUP_0,TIMER_0,true); //启动指定组内的WDG
}
(2)适时插入喂食指令

根据业务需求分析可能出现延滞的地方,并在其附近加入 ESP.wdtFeed(); 来保持生命迹象活跃。假设我们正在编写一段读取温湿度传感数据的过程,考虑到 IIC 总线通讯可能会遇到异常状况进而拖慢进度,因此可以在每次采集完成后立即补充一句此类命令作为防护措施之一:

DHT dht(DHTPIN,DHTTYPE);
float humidity=dht.readHumidity();
if(isnan(humidity)){Serial.println("Failed to read from DHT sensor!");
}else{Serial.print("Humidity: ");Serial.println(humidity);
}
ESP.wdtFeed();//确保即便偶尔失败也不会轻易掉线
delay(2000);

http://www.xdnf.cn/news/573841.html

相关文章:

  • 「AR智慧应急」新时代:当AR眼镜遇上智能监控,打造立体化应急指挥系统
  • AskTable 集成 Databend:结构化数据的 AI 查询新体验
  • 项目自启动文件配置
  • quickbi实现关联度分析(复刻PowerBI展示)
  • 【深度学习:理论篇】--Pytorch之nn.Module详解
  • 嵌入式开发学习日志(linux系统编程--文件读写函数(2))Day25
  • 算法——数组代码
  • RECCV检测人脸伪造项目尝试与扩展
  • 深度学习实战108-基于通义千问Qwen2.5-Omni的智能数字人实时对话系统实现
  • 免费使用GPU的探索笔记
  • 采用排除法进行EMC问题定位
  • 采用线性优化改进评估配电网的灵活性范围
  • Linux服务器SOS Report完全指南:收集方法、作用解析与最佳实践
  • git checkout HEAD
  • C++11语言级别的多线程
  • 5月21日
  • 云渲染技术解析与渲酷平台深度测评:如何实现高效3D创作?
  • 为什么可以不重写m1方法
  • Multi-Query Attention:传统自注意力( Self-Attention)优化显存和加速方案
  • IP核警告,Bus Interface ‘AD_clk‘: ASSOCIATED_BUSIF bus parameter is missing.
  • python生成requirements.txt文件
  • ABC 353
  • ROS2 CV_bridge与opencv版本冲突
  • 学习 Pinia 状态管理【Plan - May - Week 2】
  • 创建一个element plus项目
  • [C++入门]类和对象下
  • 东莞一锂离子电池公司IPO终止,客户与供应商重叠,社保缴纳情况引疑
  • GitLab 配置 webhook
  • 越小越优先和越大越优先
  • oracle使用SPM控制执行计划