gpt4 book ai didi

python - 在Python中使用循环运行两个函数

转载 作者:行者123 更新时间:2023-12-01 04:57:01 25 4
gpt4 key购买 nike

我正在运行 cubieboard 并访问 GPIO 引脚。一个 GPIO 引脚有一个 LED 输出,运行此函数时,LED 每 1000 毫秒打开和关闭一次:

def testRunning():
while 1:
wiringpi2.digitalWrite(pin3,HIGH)
wiringpi2.delay(1000)
wiringpi2.digitalWrite(pin3,LOW)
wiringpi2.delay(1000)

接下来我有一个函数来监听另一个 GPIO 引脚上的按钮按下情况,当它设置为高 (1) 时,它会导致另一个红色 LED 闪烁 20 次(我不确定这是否是最好的方法)继续吧):

def stopButton():
while 1:
wiringpi2.pinMode(52,0)
stopBut = wiringpi2.digitalRead(52)
print (stopBut) # this is just for debugging
wiringpi2.delay(500)
if (stopBut == 1):
break

redBlink = int(0)
while (redBlink < int(20)):
wiringpi2.digitalWrite(pin2,HIGH)
wiringpi2.delay(50)
wiringpi2.digitalWrite(pin2,LOW)
wiringpi2.delay(50)
redBlink += int(1)
print redBlink

当单独运行时,这两个工作都一样。

现在我想同时运行这两个,这样 testRunning LED 就会闪烁,直到按下 stopButton,红色 LED 闪烁并且程序停止。我试过这个:

from multiprocessing import Process
if __name__ == '__main__':
Process(target = stopButton()).start()
Process(target = testRunning()).start()

运行此代码时,将执行 stopButton 并按预期等待按钮按下,但在 stoButton 代码完成运行之前不会执行 testRunning 代码(即,按下按钮,LED 循环 20 次,该函数退出) 。

最佳答案

在 Python 中,您可以将 () 视为调用运算符。 Process(target = stopButton()).start() 调用 stopButton(),等待其完成,然后传递其返回值(None) >) 到 Process 构造函数。

改用Process(target = stopButton).start()

关于python - 在Python中使用循环运行两个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27173437/

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