0
这里是我的代码:树莓丕使用线程回调暂停主循环
#import the GPIO and time package
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(2, GPIO.IN, pull_up_down = GPIO.PUD_UP)
GPIO.setup(3, GPIO.OUT)
def hold(channel):
GPIO.output(3, True)
time.sleep(5)
GPIO.output(3, False)
GPIO.add_event_detect(2, GPIO.FALLING, callback=hold, bouncetime=300)
try:
while True:
GPIO.output(3, True)
time.sleep(1)
GPIO.output(3, False)
time.sleep(1)
except KeyboardInterrupt:
GPIO.cleanup()
所以,我想要做的是有一个指示灯闪烁,但只要按下按钮,它会立即切换打开5秒钟,然后继续停止。我尝试使用if语句进行普通事件检测,但由于我主循环中的sleep()函数,直到时间过去后才会发生任何事情,而且我希望它立即发生。我的问题是,有没有办法暂停主循环的执行(否则LED会像平常一样闪烁),还是有另一种方法来实现这种使用事件检测?
编辑:在情况下,它是不明确的,按钮连接到管脚2,LED针脚3