Pin.irq(handler=None, trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING,
*, priority=1, wake=None, hard=False)
-
handler:中断的回调函数,中断函数的参数为Pin的一个实例对象 -
trigger:配置触发中断的方式。 -
Pin.IRQ_FALLING表示下降沿触发 -
Pin.IRQ_RISING表示上升沿触发 -
Pin.IRQ_LOW_LEVEL表示低电平触发 -
Pin.IRQ_HIGH_LEVEL表示高电平触发 -
也可以通过“或”运算来表示多个事件都可以触发。 -
比如trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING,表示下降沿和上升沿都可以触发中断。
-
-
priority:表示中断的优先级别。数字越大,优先级别越高。 -
wake:中断可以唤醒系统的电源模式。可以是machine.IDLE,machine.SLEEP和machine.DEEPSLEEP。这些值也可以进行或运算。 -
hard:如果为true,则使用硬件中断。
from machine import Pin
import time
led = Pin(12, Pin.OUT)
button = Pin(9, Pin.IN, Pin.PULL_UP)
def button_handler(b):
time.sleep_ms(20)
global led
led.value(not led.value())
button.irq(handler=button_handler, trigger=Pin.IRQ_FALLING)
while True:
# 这里什么也不做处理。实际应用中,这里可以处理一些事情
pass
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/82331.html