用户工具

站点工具


icore3_micropython_7
银杏科技有限公司旗下技术文档发布平台
技术支持电话0379-69926675-801
技术支持邮件Gingko@vip.163.com
版本 日期 作者 修改内容
V1.0 2020-06-15 gingko 初次建立

例程七:【micropython】看门狗实验

一、实验目的

掌握micropython的独立看门狗用法,控制iCore3的异常自动复位。

二、实验设备及平台

  1. iCore3双核心板点击购买
  2. Micro USB线
  3. 电脑

三、实验原理

STM32内部包含独立看门狗,通过看门狗可以监控程序运行,程序运行错误时,未在规定时间内喂狗,自动复位ARM,本实验通过按键按下,停止喂狗,制造程序运行错误,从而产生复位。

四、实验步骤

  1. 用数据线将iCore3的USB-OTG口与电脑相连;
  2. 打开PYBFLASH磁盘,将代码包中的main.py文件替换到PYBFLASH的main.py;
  3. 弹出磁盘,将iCore3重新上电,代码运行;

五、实验现象

iCore3双核心板三色LED交替闪烁,当按键按下超过1s,看门狗复位ARM。 注意:若按键按下时间太长,导致ARM多次复位,程序会崩溃,需要断电重启。目前micropython只支持独立看门狗,不支持窗口看门狗,且只能复位RAM,不会产生中断。

六、实验程序

# -*- coding: utf-8-*-
# main.py -- put your code here!
from machine import WDT  #导入看门狗
from pyb import Pin    #导入引脚库
 
#定义看门狗对象,超时1s未喂狗,则重置系统
wdt = WDT(timeout=1000)
#创建按键对象,输入上拉,默认高电平
key = Pin('H15', Pin.IN, Pin.PULL_UP) 
 
 
while True:
    if key() == 0:       #如果按键按下
        pyb.delay(50)    #等待
    else:
        wdt.feed()       #喂狗
 
        pyb.LED(1).on()  #红灯亮
        pyb.LED(2).off()
        pyb.LED(3).off()
        pyb.delay(300)   #延时300ms
 
        pyb.LED(1).off()
        pyb.LED(2).on()  #绿灯亮
        pyb.LED(3).off()
        pyb.delay(300)   #延时300ms
 
        pyb.LED(1).off()
        pyb.LED(2).off()
        pyb.LED(3).on()  #蓝灯亮
        pyb.delay(300)   #延时300ms
icore3_micropython_7.txt · 最后更改: 2022/03/18 15:16 由 sean