【发布时间】:2014-02-24 22:29:33
【问题描述】:
我被 Python 包中的 wait_for_edge 函数卡住了 RPi。 我为下降的 gpio 添加了多个事件检测,只要回调函数不包含类似的命令,一切都可以正常工作
os.system("mpc pause")
然后脚本崩溃并显示错误消息:“RunetimeError: Error #5 waiting for edge” 有谁知道,这个错误信息想说什么?或者我在哪里可以查到这样的东西?
具体来说,此代码有效:
def next(channel):
print "In next"
GPIO.add_event_detect(buttonnext,GP.FALLING,callback=next,bouncetime=200)
os.system("mpc play")
try:
GPIO.wait_for_edge(buttonstop, GP.FALLING)
os.system("mpc stop")
except KeyboardInterrupt:
GPIO.cleanup()
os.system("mpc stop")
GPIO.cleanup()
但是这段代码没有:
def next(channel):
print "In next"
os.system("mpc next")
GPIO.add_event_detect(buttonnext,GP.FALLING,callback=next,bouncetime=200)
os.system("mpc play")
try:
GPIO.wait_for_edge(buttonstop, GP.FALLING)
os.system("mpc stop")
except KeyboardInterrupt:
GPIO.cleanup()
os.system("mpc stop")
GPIO.cleanup()
按下连接到端口 buttonstop 的按钮后崩溃。
【问题讨论】:
-
这听起来可能很愚蠢,但请尝试重新启动 Pi。几次 GPIO 引脚对我来说都有类似这样的奇怪错误,并且重新启动修复了它
-
不幸的是,重新启动并没有帮助。我注意到 os 命令是在脚本崩溃之前完成的。
标签: python raspberry-pi gpio