您可以inWaiting()
用来获取输入队列中可用的字节数。
然后,您可以使用它read()
来读取字节,如下所示:
While True:
bytesToRead = ser.inWaiting()
ser.read(bytesToRead)
为什么不在readline()
使用Docs:
Read a line which is terminated with end-of-line (eol) character (\n by default) or until timeout.
您正在等待每次读取的超时,因为它正在等待eol。串行输入Q保持不变,只是需要很多时间才能到达缓冲区的“末端”,为了更好地理解它:您就像赛车一样写入输入Q,就像旧车一样阅读:)