一共有22个中断行,其中16个来自GPIO,另外6个来自内部中断。
中断行0到15,可以映射到对应行的任意端口。中断行0可以映射到Px0,x可以是A/B/C;中断行1可以映射到Px1,x可以是A/B/C,依次类推。
使用外中断时,GPIO自动配置为输入。
基本用法
- 定义中断
pyb.ExtInt(pin, mode, pull, callback)
- pin,中断使用的GPIO,可以是pin对象或者已经定义GPIO的名称
- mode
- ExtInt.IRQ_RISING 上升沿
- ExtInt.IRQ_FALLING 下降沿
- ExtInt.IRQ_RISING_FALLING 上升下降沿
- pull
- pyb.Pin.PULL_NONE 无
- pyb.Pin.PULL_UP 上拉
- pyb.Pin.PULL_DOWN 下拉
- callback,回调函数
- extint.disable(),禁止中断
- extint.enable(),允许中断
- extint.line(),返回中断映射的行号
- extint.swint(),软件触发中断
- ExtInt.regs(),中断寄存器值
例子,设置用户按键下降沿中断
- from pyb import Pin, ExtInt
- def callback(line):
- print("line =", line)
- extint = pyb.ExtInt(Pin("X17"), pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
复制代码
【MicroPython】教程