我刚刚开始玩raspberry pi,无法理解使用GPIO.add_event_detect功能发生了什么 .
基本程序检测到GPIO16因按下按钮而下降,打印消息,休眠1秒钟然后打印另一条消息 . 我在回调期间关闭并打开event_detect,以避免交换机反弹导致额外的回调 . 然而问题是只有两个按钮按下程序崩溃?每次运行程序时都会发生这种情况 . GPIO.VERSION'0.6.2'
这是程序:
import RPi.GPIO as GPIO
from time import sleep
GPIO.setmode(GPIO.BCM)
GPIO.setup(16, GPIO.IN, pull_up_down=GPIO.PUD_UP)
def pressButton(channel):
GPIO.remove_event_detect(channel)
print("Button Pressed")
sleep(1)
print("Button Released")
GPIO.add_event_detect(channel, GPIO.FALLING, callback=pressButton, bouncetime=5)
GPIO.add_event_detect(16, GPIO.FALLING, callback=pressButton, bouncetime=5)
try:
while True:
sleep(1)
finally:
GPIO.cleanup()
按下2个按钮后输出显示崩溃:
Python 3.4.2 (default, Oct 19 2014, 13:31:11)
[GCC 4.9.1] on linux
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Button Pressed
Button Released
Button Pressed
Button Released
>>> ================================ RESTART ================================
>>>
任何帮助赞赏!