|
1)实验平台:正点原子ESP32S3开发板
2)购买链接:https://detail.tmall.com/item.htm?id=768499342659
3)全套实验源码+手册+视频下载地址:http://www.openedv.com/thread-347618-1-1.html
4)正点原子官方B站:https://space.bilibili.com/394620890
5)正点原子手把手教你学ESP32S3快速入门视频教程:https://www.bilibili.com/video/BV1sH4y1W7Tc
6)正点原子FPGA交流群:132780729
第二十四章 看门狗实验
MicroPython 看门狗通常指的是在MicroPython环境中使用看门狗(Watchdog)来确保系统稳定运行的一种技术。看门狗(Watchdog)是一种硬件或软件机制,用于监视系统状态并在出现故障时重置系统。在MicroPython环境中,看门狗可以用来检测和解决系统故障,例如软件死循环、系统资源耗尽等问题。
本章分为如下几个小节:
24.1 WDT类
24.2 硬件设计
24.3 程序设计
24.4 下载验证
24.1 WDT类
在MicroPython中,可以使用machine.WDT类来创建一个看门狗对象,并设置其超时时间。当系统正常运行时,需要在看门狗允许的时间间隔内对计数器进行清零操作,以避免触发系统重启。如果系统出现故障或死机,看门狗计数器溢出,就会产生一个复位信号使系统重启。
1,machine.WDT类的构造方法
- class machine.WDT(id=0, timeout=5000)
复制代码 该构造方法的参数描述,如下表所示。
表8.1.1 Pin类构造方法的参数描述
返回值:看门狗对象。
2,machine.WDT类的方法
①:喂狗
向看门狗提供输入以防止它重置系统。
24.2 硬件设计
1. 例程功能
本章实验功能简介:通过LCD显示模块实时显示RTC时间,包括年、月、日、时、分、秒等信息。
2. 硬件资源
1)XL9555
IIC_INT-IO0(需在P5连接IO0)
IIC_SDA-IO41
IIC_SCL-IO42
3)WDT
3. 原理图
本章实验使用的WDT为ESP32-S3的片上资源,因此并没有相应的连接原理图。
24.3 程序设计
24.3.1 程序流程图
程序流程图能帮助我们更好的理解一个工程的功能和实现的过程,对学习和设计工程有很好的主导作用。下面看看本实验的程序流程图:
图24.3.1.1 程序流程图
18.3.2 程序解析
本书籍的代码都在main.py脚本下编写的,读者可在光盘资料下找到对应的源码。RTC实验main.py源码如下:
- from machine import Pin,I2C,WDT
- import atk_xl9555 as io_ex
- import time
- """
- * @brief 程序入口
- * @param 无
- * @retval 无
- """
- if __name__ == '__main__':
-
- # 初始化LED并输出高电平
- led = Pin(1,Pin.OUT,value = 1)
- time.sleep_ms(100)
- # IIC初始化
- i2c0 = I2C(0, scl = Pin(42), sda = Pin(41), freq = 400000)
- # XL9555初始化
- xl9555 = io_ex.init(i2c0)
- # 看门狗初始化,定时时间为3s
- wdt = WDT(timeout=3000)
- led.value(0)
-
- while True:
-
- # 获取按键值
- key = int(xl9555.key_scan())
-
- if key == io_ex.KEY0:
- # 喂狗
- wdt.feed()
- time.sleep_ms(10) # 延时10ms
复制代码 该示例代码非常简单,当我们在3秒钟内按下KEY0按键,表示喂狗成功,反次,系统复位。
24.4 下载验证
程序下载成功后,首先开启看门狗和点亮LED灯,当3秒钟内按下KEY0按键对看门狗进行喂狗,反次,系统复位操作。
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|