The*_*uff 5 python raspberry-pi
我有一个python程序,我想在后台运行(在Raspberry Pi上)等待GPIO输入然后执行操作并继续等待输入,直到进程被终止.
实现这一目标的最有效方法是什么.我的理解是,使用while true并不是那么有效.理想情况下它会使用中断 - 我可以使用GPIO.wait_for_edge - 但这需要在某个循环中或在处理程序完成后继续操作的方式.
谢谢
据此: http: //raspi.tv/2013/how-to-use-interrupts-with-python-on-the-raspberry-pi-and-rpi-gpio GPIO.wait_for_edge(23, GPIO.FALLING) 将使用中断而不是轮询等待引脚 23 上的转换。仅当触发时才会继续。您可以将其括在 try: / except KeyboardInterrupt 中以捕获 ctrl-c。
如果您想继续处理,那么您应该为中断注册一个回调函数。请参阅: http ://sourceforge.net/p/raspberry-gpio-python/wiki/Inputs/
def callback(channel):
do something here
GPIO.add_event_detect(channel, GPIO.RISING, callback=my_callback)
continue your program here, likely in some sort of state machine
Run Code Online (Sandbox Code Playgroud)