class ExtInt - 外部中断

该类用于配置I/O引脚在发生外部事件时中断。

构造函数

machine.ExtInt

class machine.ExtInt(GPIOn, mode, pull, callback, [filter_time])

参数描述:

  • GPIOn - 需要控制的GPIO引脚号,int类型,参照Pin模块的引脚定义(除BG95M3外),点此查看BG95M3平台引脚对应关系

  • mode - 触发方式,int类型,说明如下:
    IRQ_RISING – 上升沿触发
    IRQ_FALLING – 下降沿触发
    IRQ_RISING_FALLING – 上升和下降沿触发(EC600E/EC800E不支持)

  • pull - 上下拉模式,int类型,说明如下:
    PULL_PU – 上拉模式
    PULL_PD – 下拉模式
    PULL_DISABLE – 浮空模式

  • callback - 中断触发回调函数,int类型,说明如下:
    返回参数为长度为2的元组
    args[0]: gpio号
    args[1]: 触发沿(0:上升沿 1:下降沿)

  • [filter_time] - 滤波时间,int类型,单位ms,缺省为0即不滤波,不为0时按设置的滤波时间进行滤波,支持设置的非零值为10的倍数。

    [filter_time]目前 EG912N/EG915N/EC600M/EC800M/EG810M/EC600K/EC800K/EG800P/EC200A/UC200A/EC600E/EC800E/EC800Z支持。

BG95M3平台引脚对应关系
GPIO2 – 引脚号5
GPIO3 – 引脚号6
GPIO6 – 引脚号19
GPIO7 – 引脚号22
GPIO8 – 引脚号23
GPIO9 – 引脚号25
GPIO11 – 引脚号27
GPIO12 – 引脚号28
GPIO14 – 引脚号41
GPIO16 – 引脚号65
GPIO17 – 引脚号66
GPIO18 – 引脚号85
GPIO19 – 引脚号86
GPIO22 – 引脚号20
GPIO23 – 引脚号21
GPIO24 – 引脚号30
GPIO25 – 引脚号34
GPIO26 – 引脚号35
GPIO29 – 引脚号38
GPIO30 – 引脚号39

示例:

# 创建ExtInt对象
from machine import ExtInt
def fun(args):
    print('### interrupt  {} ###'.format(args)) # args[0]:gpio号 args[1]:上升沿或下降沿
extint = ExtInt(ExtInt.GPIO1, ExtInt.IRQ_FALLING, ExtInt.PULL_PU, fun)
extint = ExtInt(ExtInt.GPIO1, ExtInt.IRQ_FALLING, ExtInt.PULL_PU, fun,filter_time=50)#使能滤波,滤波时间为50ms

方法

extint.enable

extint.enable()

该方法用于使能中断,使能extint对象外部中断,当中断引脚收到上升沿或者下降沿信号时,会调用callback执行。

返回值描述:

使能成功返回整型值0,使能失败返回整型值-1

extint.disable

extint.disable()

该方法用于关闭中断,禁用与extint对象关联的中断 。

返回值描述:

使能成功返回整型值0,使能失败返回整型值-1

extint.line

extint.line()

该方法用于读取引脚映射行号。

返回值描述:

返回引脚映射的行号。

示例:

>>> extint = ExtInt(ExtInt.GPIO1, ExtInt.IRQ_FALLING, ExtInt.PULL_PU, fun)
>>> extint.line()
1

extint.read_count

extint.read_count(is_reset)

该方法用于返回触发中断的次数。

参数描述:

  • is_reset - 读取后是否重置计数,int类型,0表示不重置,1表示重置。

返回值描述:

返回列表 [rising_count, falling_count]
rising_count:上升沿触发中断的次数
falling_count:下降沿触发中断的次数

extint.count_reset

extint.count_reset()

该方法用于清空触发中断的次数。

返回值描述:

返回0表示成功,返回其他表示失败。

extint.read_level

extint.read_level()

该方法用于读取当前引脚电平。

返回值描述:

返回引脚电平,0表示获取到的引脚电平为低电平,1 表示获取到的引脚电平为高电平。