Я обнаружил простое, которое включает в себя закрытие и открытие порта при необходимости, а не очистку com-порта буферизованных данных, когда они должны быть прочитаны - это работает при прерывистом чтении.
serial.open()
while (serial.inWaiting()==0): #wait until there is data
pass
valueRead = serial.readline()
serial.close()
Второйрешение было выбросить первое значение.Я обнаружил, что этот метод хорошо работает при чтении с необходимой частотой.Например, когда данные отправляются на ком-порт с частотой 1000 Гц, а порт считывается с частотой 0,1 Гц, 100 выборок считываются за период 1 с.
serial.flushInput()
serial.readline() #do not save this value - throw away
while (serial.inWaiting()==0): #wait until there is data
pass
valueRead = serial.readline() #keep this value