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 – 引脚号5GPIO3 – 引脚号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
表示获取到的引脚电平为高电平。