当我将端口初始化为serial readline()
并在命令行中使用readline()打印读取的日期时,我正在研究BP传感器序列,并使用serial.Serial('/dev/ttyUSB2',115200,timeout=1)
来读取端口提供的输出。循环如下
for I in range(1,10)
print('integration')
print(ser.readline())
readline()
似乎陷入无限循环,因为该程序一次打印积分,然后变为无限,但是当我尝试与timeout=0
相同时,该程序将积分打印9次,每行后有空白。需要知道我在做什么错,因为相同的代码似乎可以与laser distance sensor
等其他传感器一起正常工作。
已经提到了Reference1 Reference2等。
答案 0 :(得分:0)
ser.readline()
期望找到一个\n
字符,因此它将一直读取数据,直到找到它为止。
您需要确保传感器正在发送此默认EOL字符。如果不是这种情况,则可以指定其他字符。
过去曾经有一种简单的方法可以做到这一点,但是显然,它不再起作用了。解决方法是使用TextIOWrapper
,请参见here。请注意该问题的第一个答案,以确保更改默认的缓冲区大小。