前言
某些时候按键扫描并不能满足实时性,就需要开启外部中断功能。
关于K210 GPIO外部中断API可以参考MaixPy官方文档
代码
1.载入相关的库
from Maix import FPIOA, GPIO
import gc
from fpioa_manager import fm
from board import board_info
import utime
2.引脚注册并配置成输入模式
fm.register(15, fm.fpioa.GPIOHS0)
fm.register(16, fm.fpioa.GPIOHS1)
fm.register(17, fm.fpioa.GPIOHS2)
key_gpio_press = GPIO(GPIO.GPIOHS0, GPIO.IN)
key_gpio_up = GPIO(GPIO.GPIOHS1, GPIO.IN)
key_gpio_down = GPIO(GPIO.GPIOHS2, GPIO.IN)
3.配置外部中断及中断回调函数
BOUNCE_PROTECTION = 50
def set_key_state_press(*_):
flag = 0
print(flag)
utime.sleep_ms(BOUNCE_PROTECTION)
def set_key_state_up(*_):
flag = 1
print(flag)
utime.sleep_ms(BOUNCE_PROTECTION)
def set_key_state_down(*_):
flag = 2
print(flag)
utime.sleep_ms(BOUNCE_PROTECTION)
key_gpio_press.irq(set_key_state_press, GPIO.IRQ_RISING, GPIO.WAKEUP_NOT_SUPPORT)
key_gpio_up.irq(set_key_state_up, GPIO.IRQ_RISING, GPIO.WAKEUP_NOT_SUPPORT)
key_gpio_down.irq(set_key_state_down, GPIO.IRQ_RISING, GPIO.WAKEUP_NOT_SUPPORT)
主函数里不需要进行相关配置,当按键按下后会自动进入中断函数。