我试图从串行端口获得响应,但有时会没有。这使得我的脚本永远等待,因此我必须杀死它。
是否有一种简单方法让我的代码等待例如 5 秒,如果没有响应则继续执行脚本?
我的代码如下所示:
import serial
ser = serial.Serial('COM3', 9600)
test = '2ho0'
ser.write(str.encode(test))
data = ser.readline()
print(data)
我已经尝试过this解决方案,但在打印 5 次 Hello world
后它并没有停止。相反,它会继续写入 Hello World
,直到我收到运行时错误
。
编辑:我想知道是否可以有类似的东西:
ser.serialReplyAvailable()
这也适合我。
感谢您的建议。
最佳答案
您可以指定一个读取超时,这将使 ser.readline()
要么在请求的数据可用时立即返回,要么返回超时之前读取的任何内容。检查 pySerial 文档,那里有更多内容。
ser = serial.Serial('COM3', 9600, timeout=5)
关于python - 在 Python 中 5 秒后停止等待串行响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59085969/