【问题标题】:PySerail Readline enters infinite loopPySerial Readline 进入无限循环
【发布时间】:2019-07-13 03:07:19
【问题描述】:

我正在研究 BP 传感器串行并使用 serial readline() 读取端口提供的输出,当我将端口启动为 serial.Serial('/dev/ttyUSB2',115200,timeout=1) 并在循环中使用 readline() 打印读取的日期如下

for I in range(1,10)
  print('integration')
  print(ser.readline())

readline() 似乎进入了无限循环,因为程序打印了一次积分然后进入无限期,但是当我尝试使用 timeout=0 进行相同操作时,程序打印积分 9 次,每行后有空格。需要知道我做错了什么,因为相同的代码似乎可以与 laser distance sensor 等其他传感器一起正常工作。 已经提到了Reference1Reference2 等等。

【问题讨论】:

    标签: python serial-port pyserial


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多