gpt4 book ai didi

python - 带有树莓派 GPIO 回调函数的共享变量

转载 作者:太空狗 更新时间:2023-10-30 03:00:19 25 4
gpt4 key购买 nike

我用 python 编写了这个简单的测试程序来检查当我按下 Raspberry Pi 中的按钮时是否发生了什么:

import RPi.GPIO as GPIO
from time import sleep

GPIO.setmode(GPIO.BCM)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)

testVar=0

def my_callback(channel):
print "Pressed!"
testVar= 32

GPIO.add_event_detect(24, GPIO.FALLING, callback=my_callback, bouncetime=200)
while True:
print str(testVar)
sleep(0.5)

我只读取了 0 个值,当我按下按钮时,我看到“已按下!”但变量没有改变。据我了解,原因是因为回调函数作为新线程使用,当然无法正确设置变量。有没有办法以某种方式将共享变量发送到回调函数?

非常感谢任何好的建议。

最佳答案

您好,找到解决方案,我将其发布,也许它会有用。使用 global 这个词让它发挥作用。

所以回调函数变成:

def my_callback(channel):
global testVar
print "Pressed!"
testVar= 32

关于python - 带有树莓派 GPIO 回调函数的共享变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29825408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com