Raspberry Pi GPIO中断回调变量

时间:2015-12-09 09:53:44

标签: python-3.x raspberry-pi interrupt gpio

所以我有一个非常简单的问题,我无法在这里找到答案。简单地说,我定义了一个需要变量的回调函数,并且该变量可能会发生变化。我是否需要删除该引脚上的事件检测,然后再次添加以获取与事件关联的回调以在下一个事件中使用新变量值?

def t_doSomething(var):
    print(var)
var = 'foo'
channel = 17
GPIO.add_event_detect(channel, GPIO.RISING, callback=t_doSomething(var) bouncetime=200)
#Event called by rising edge prints 'foo'
#Change the variable.
var = 'bar'
#Event called a second time prints...?

1 个答案:

答案 0 :(得分:0)

当你说我假设变量的值可能会改变时。还假设环境是raspbian Linux而不是(Windows 10物联网核心等)你应该做的工作。更改变量后,再次调用该函数或将其置于某种循环中时。新的打印值应该是" var"的新值。因此,下面的#1应该打印" foo"和#2应打印" bar"。

def t_doSomething(var):
print(var)
GPIO.add_event_detect(channel, GPIO.RISING, callback=t_doSomething(var)bouncetime=200)

var = 'foo'
channel = 17
    #Change the variable.
var = 'bar'
 do_something()
if GPIO.event_detected(channel):
print(var)

希望这有帮助!