为了节省cpu的资源,使用外部中断是必不可少的操作,对于k210的外部中断使用也是很简单的,废话不多少了,直接上代码吧!
'''按下按键后,led灯如果是亮的就关闭,如果是关闭的就打开,每次按下led灯的状态都取反'''
from Maix import GPIO # 导入GPIO模块
from fpioa_manager import fm # 导入fm模块
import utime as t # 导入时间模块取名为t
fm.register(12, fm.fpioa.GPIO0) # 注册外部12口为内部低速GPIO0口
fm.register(16,fm.fpioa.GPIOHS0) # 注册外部16口为内部高速GPIOHS0口
led = GPIO(GPIO.GPIO0, GPIO.OUT) # 创建led对象为内部低速GPIO0,输出模式
key1 = GPIO(GPIO.GPIOHS0, GPIO.IN, GPIO.PULL_DOWN) # 创建key对象为内部高速GPIOHS0端口,输入模式,下降沿触发
state = 1 # led灯的状态值
# 创建外部中断回调函数
def ZhongDuan(key):
global state # led灯的状态值 声明为全局变量
t.sleep_ms(10) # 延时10毫秒
if key.value()==0: # 如果按键的值为0:
state=not state # 就把led的状态值取反
led.value(state) # led的值设为led的状态值
key1.irq(ZhongDuan, GPIO.IRQ_FALLING) # 创建外部中断(回调函数为fun, 下降沿触发方式)
关于代码的解释如下:如果我的解释有什么不对的地方希望路过的大佬给与指正,谢谢!
下面就是相关函数的介绍了:
如果我的分享对您来说有那么丁点的用处,愿您把免费的小爱心给与我,谢谢!您的肯定是对我最大的支持!