首页 > 解决方案 > RaspberryPi 在 Python 中循环定义 GPIO 回调

问题描述

我为每个 GPIO 明确定义了回调函数,它工作正常。然而,这对我来说有点像样板代码。因此,我只是有了在 for 循环中实现这个初始化的想法:

# Configure Switches:
T = [4,17,18,27,22,23,24,25,5,6]
for i in range(0,10):
    GPIO.setup(T[i], GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
    GPIO.add_event_detect(T[i], GPIO.BOTH, callback=lambda x: OnButtonPress(i+1), bouncetime=300)

对于我按下的所有按钮,都会调用回调函数 OnButtonPress,但总是使用按钮 ID 10,与我按下的按钮无关。它接缝始终以 10 作为参数调用 lambda。我在这里做错了什么?

标签: pythonraspberry-piraspberry-pi3

解决方案


推荐阅读