当我发送 “1” 每隔3分钟无限时间连续播放一次。我需要一个线程脚本 因为 这将不得不与其他功能集成在一起串行。 这个 串口连接到带传感器的arduino,但我不确定程序 是 正式更正。有人能帮我吗?谢谢
#!/usr/bin/python
import time
import serial
import threading
import time
import io
ser=serial.Serial('/dev/ttyUSB0', 57600, timeout=3)
def printit():
threading.Timer(180.0, printit).start()
ser.write(b'1\n')
lettura=ser.readline()
print lettura
try:
printit()
except:
print "Error: unable to start thread"
while 1:
pass
您定义
printit
函数的递归方式将创建一个无限循环,然而,该定义使得控制线程的执行有点复杂。您可能需要考虑编写一个自定义的Thread
类,该类接受您希望在给定时间间隔运行的函数,以及您希望等待的时间间隔(类似于传递给Timer
)的函数。在然后你可以像这样使用这个类
^{pr2}$另外,这个question的答案提供了很多关于如何在python中构建无限循环线程的有用信息。您可能还需要遵循他们关于访问串行设备时锁定的说明(如果多个线程可能同时使用它)。在
相关问题 更多 >
编程相关推荐