从 arduino 流式传输到 python 时丢失了一些数据

Some data missing when streaming from arduino to python

当我尝试从 Arduino nano 接收数据并将其读取到 Python(在 raspberry pi 中)时,我遇到了一个问题,其中一些数据似乎丢失了,例如:

b',972.63,0,10.00\n'
b'0.00,0,10.00\n'
b'\n'
b'2.62,2150.54,0,10.00\n'
b'\n'
b'61.88,2600.20,0,10.00\n'
b'\n'
b'\n'
b'13.29,1422.29,0,10.00\n'
b'50.24,3396.87,0,10.00\n'

我的python代码是

import serial
serial_port = '/dev/ttyUSB0'
baud_rate = 1000000
while True:
    ser = serial.Serial(serial_port, baud_rate, timeout=1)
    data = ser.readline()
    print(data)

并且我检查了 Arduino IDE 中的串口监视器,并没有发现任何问题。 请问这个问题是常见的情况还是我怎样才能避免这种情况?提前谢谢你。

你不需要在循环中每次都初始化串行对象, 尝试将 ser = serial.Serial(...) 移出 while 循环,例如

ser = serial.Serial(...)
while True:
  data = ser.readline()
  print(data)