PySerail Readline进入无限循环

时间:2019-07-12 16:17:27

标签: python serial-port pyserial

当我将端口初始化为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等。

1 个答案:

答案 0 :(得分:0)

ser.readline()期望找到一个\n字符,因此它将一直读取数据,直到找到它为止。

您需要确保传感器正在发送此默认EOL字符。如果不是这种情况,则可以指定其他字符。

过去曾经有一种简单的方法可以做到这一点,但是显然,它不再起作用了。解决方法是使用TextIOWrapper,请参见here。请注意该问题的第一个答案,以确保更改默认的缓冲区大小。

相关问题