繁体   English   中英

PySerail Readline进入无限循环

[英]PySerail Readline enters infinite loop

当我将端口初始化为serial.Serial('/dev/ttyUSB2',115200,timeout=1)并打印时,我正在处理BP传感器串行,并使用serial readline()读取端口提供的输出。在循环中使用readline()读取日期,如下所示

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM