簡體   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