Как читать 100 или более строк в секунду через последовательный порт Py

Программа для получения данных от последовательного порта

import serial
import time 

ser = serial.Serial(
    port='/dev/ttyAM0',
    baudrate=57600,
    parity=serial.PARITY_NONE,
    stopbits=serial.STOPBITS_ONE,
    bytesize=serial.EIGHTBITS,
    timeout=1)

while 1:
    BytesToRead = ser.inWaiting()
    x = ser.read(BytesToRead)
    print x

Ввод - @1,12,5,0:0:1# эти типывывода 100 строк в секунду - смешанные данные с некоторыми данными, пропущенными и перемешанными

Примечание. Строки получены от Arduino через zigbee. Что я делаю неправильно? Есть ли проблема задержки, или я неправильно читаю строки через последовательный порт?

1 ответ

Если нет байтов для чтения, не пытайтесь их прочитать или распечатать.

while 1:
    BytesToRead = ser.inWaiting()
    if BytesToRead > 0:
        x = ser.read(BytesToRead)
        print x
Другие вопросы по тегам