独立看门狗应用实例|学习笔记

简介: 快速学习独立看门狗应用实例

开发者学堂课程【嵌入式之RFID开发与应用2020版独立看门狗应用实例】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/665/detail/11164


独立看门狗应用实例


一、独立看门狗应用实例

将基础代码有关看门狗的代码复制在app文件夹下

image.png

然后在source insight-reload file 中打开,在key.h中选择Add and Remove project Files 中添加app中的文件。

image.png

在工程里面,除了需要添加app里面看门狗的应用程序wgd.c,还需要在lib中找到有关独立看门狗的库的支持。Iwdg就可以,wwdg属于窗口看门狗,本节课主要介绍独立看门狗。(lib-libraries-stm32f10x_stdperiph_driver-src-stm32f10x_iwdg.c )

对于看门狗只添加了iwdg_init 并且是放在初始化的最前面。

image.png

如果放在后面,问题出在前面就无法解决,所以看门狗越早初始化越好。

接下来结合公式分析函数

image.png

这个函数iwdg_init 是官方提供的库,Prer代表分频系数,r1r代表计数周期。

image.png

对于分频系数,下图中iwdg_init(4,625)的4不是计数频率,而是代码预分频的设定值为4,分频为4*24 ,代表64分频。以

40khz除以64得到的频率计数,计625个数,得到1000ms,表示看门狗1s之内必须喂一次,若没有喂,则会复位。

image.png

可以看到,在while循环里面,每次循环都需要喂狗,喂狗调用iweg_feed 。

观察它超时的情况需要在在按键里面添加循环while(1); ,只要按键不会退出,不退出主事件循环就没有继续执行,因为它是单任务事件。当主事件不执行,喂狗动作就无法执行,系统就会复位,所以通过这个来观察情况。

image.png

其中存在问题就是按键蜂鸣器它会不会响,需要看定时器的优先级高不高,如果基数低则不会响,因为处于同一个优先级的话,定时器无法打断按键的中断。

按键执行后发现时间停了但并未复位,说明刚才的操作看不到这个现象,复位的优先级比中断低。

image.png

所以我们需要在主程序里面添加while(1),一旦检测到按键就让它停留在此

image.png

接下来按键就发现会复位,出现了booting,它只有开机时出现。

image.png

看门狗计数是正常的计数,看门狗正常运行时需要有计数值,进入中断时无法减数,退出中断又会继续减数,所以不要把阻塞的事情放在中断上,因为会阻塞看门狗定时器计数工作,所以放在外面。放在外面中断后就会重新开始。

image.png

以上就是看门狗在产品里面发挥的真正价值,所以把看门狗事情放在基础课程,它是保障正常运行的重要手段。

相关文章
|
数据采集 存储
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频
本文介绍了如何使用SwiftSoup库和爬虫代理技术抓取网站视频资源。通过安装SwiftSoup、获取HTML内容、解析HTML以提取视频链接,以及设置爬虫代理来绕过访问限制,可以实现高效、灵活的视频资源获取。示例代码展示了一个完整的过程,包括下载并存储视频文件到设备。结合这两种技术,可以有效应对网站访问挑战,方便地获取互联网视频资源。
498 3
4个步骤:如何使用 SwiftSoup 和爬虫代理获取网站视频
|
11月前
|
Java 容器
springboot自动配置原理
启动类@SpringbootApplication注解下,有三个关键注解 (1)@springbootConfiguration:表示启动类是一个自动配置类 (2)@CompontScan:扫描启动类所在包外的组件到容器中 (3)@EnableConfigutarion:最关键的一个注解,他拥有两个子注解,其中@AutoConfigurationpackageu会将启动类所在包下的所有组件到容器中,@Import会导入一个自动配置文件选择器,他会去加载META_INF目录下的spring.factories文件,这个文件中存放很大自动配置类的全类名,这些类会根据元注解的装配条件生效,生效
|
人工智能 物联网 测试技术
以小博大,微软开源27亿参数模型Phi-2,魔搭最佳实践来啦!
近日,微软公布了在 Microsoft Ignite 2023大会上宣布开源的 Phi-2 模型的更多细节,“打破传统语言模型缩放定律,可PK比自己大25倍的模型”、“以小博大”等评价,让Phi-2一时间在开源社区中引发关注。
|
机器学习/深度学习 人工智能 供应链
AI在各行业的具体应用与未来展望
人工智能(Artificial Intelligence, AI)作为一项颠覆性技术,正在逐步改变我们的生活和工作方式。从语音助手到自动驾驶汽车,AI的应用已经深入到各个领域。本文将详细探讨AI在不同行业中的具体应用,以及未来可能的发展方向。
3162 6
|
Java API 开发者
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
381 0
JDK8到JDK17版本升级的新特性问题之SpringBoot选择JDK17作为最小支持的Java lts版本意味着什么
|
Kubernetes 监控 Perl
在K8S中,如何具体实现Pod被删除后,还能被自动拉起功能?
在K8S中,如何具体实现Pod被删除后,还能被自动拉起功能?
|
物联网 网络性能优化 开发工具
MQTT常见问题之MqttException 提示128如何解决
MQTT(Message Queuing Telemetry Transport)是一个轻量级的、基于发布/订阅模式的消息协议,广泛用于物联网(IoT)中设备间的通信。以下是MQTT使用过程中可能遇到的一些常见问题及其答案的汇总:
|
NoSQL Redis
进行主从复制时出现的异常FATAL CONFIG FILE ERROR (Redis 6.2.6)Reading the configuration file
进行主从复制时出现的异常FATAL CONFIG FILE ERROR (Redis 6.2.6)Reading the configuration file
688 0
[Qt5] 鼠标中心为基准缩放图像(halcon实现)
[Qt5] 鼠标中心为基准缩放图像(halcon实现)
432 0