【发布时间】:2019-11-28 18:55:03
【问题描述】:
我正在尝试从串行端口获得响应,但有时会出现无。这使我的脚本等待永远,因此我必须杀死它。
是否有一种简单的方法可以让我的代码等待 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,直到我收到runtime error。
在here 和here 上,我尝试了严格的答案,也没有成功。
编辑:我想知道是否有可能有类似的东西:
ser.serialReplyAvailable()
这对我也有用。
感谢您的建议。
【问题讨论】:
-
我认为 asyncio 模块(特别是
Task类)是您正在寻找的。这可以提供帮助:stackoverflow.com/questions/34710835/… -
我认为
SIGNAL只能在 unix 上正常工作。由于我在 Windows 上,不幸的是这不起作用。我收到错误signal has no attribute SIGHUP。
标签: python serial-port wait