在这个示例中,我们首先定义了一个LED引脚,并使用Pin
类初始化它。然后,我们定义了一个中断处理函数**on_interrupt
** ,当GPIO引脚2的电平从低变高时触发中断。在中断处理函数中,我们切换LED的状态并翻转LED的输出。接下来,我们使用Pin
类初始化GPIO引脚2,并将其配置为输入模式,启用内部上拉电阻。最后,我们使用**attach_interrupt
**函数将中断处理函数与GPIO引脚2关联起来,并设置触发模式为下降沿触发。在主循环中,我们简单地延时1秒,以便观察LED的状态变化。
当GPIO引脚2的电平从高变低时,MicroPython会自动调用中断处理函数on_interrupt
,从而触发LED状态的切换。通过这种方式,我们可以使用ESP32的GPIO引脚实现简单的中断IO触发功能。
python
from machine import Pin
import time
led_state = 0
# 定义LED引脚
led = Pin(4, Pin.OUT)
# 定义IO口中断引脚
pin = Pin(2, Pin.IN, pull=Pin.PULL_UP)
help(Pin)
# 定义中断处理函数,接受一个参数event
def on_interrupt(event):
global led_state
led_state = not led_state # 切换LED状态
led.value(led_state) # 翻转LED状态
print("Interrupt triggered!")
# 在这里编写中断处理逻辑
# 配置IO口中断,触发条件为下降沿触发
pin.irq(trigger=Pin.IRQ_RISING, handler=on_interrupt)
# 主循环
while True:
time.sleep(1) # 延时1秒
print("LED状态:",led_state)