RasPi Python UART Abfrage Fehler

Gast #5924385
Lesenswert?

Hallo

ich verwende einen threat im Hintergrund um einen Eingang von Daten auf 
der seriellen Schnittstelle zu überwachen (Interrupt habe ich nicht 
hinbekommen)

1
def check_uart():
2

3
  global uart_data
4
  global uart_data_available
5
  uart_data_available = False
6

7
  while True:
8
    uart_data = ser.readline()
9
    uart_data = ''.join(["{:02X}".format(e) for e in bytearray(uart_data)])
10
    if (uart_data!=""):
11
      uart_data_available = True
12
    else:
13
      uart_data_available = False

1
def main():
2
      ...
3
      start_new_thread(check_uart,())
4
      ...


immer wieder mal (konnte es noch nicht eindeutig reproduzieren) bekomme 
ich folgende Fehlermeldung:

   uart_data = ser.readline()
  File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 
490, in read
    'device reports readiness to read but returned no data '
serial.serialutil.SerialException: device reports readiness to read but 
returned no data (device disconnected or multiple access on port?)


Kann jemand helfen?
#5924411
Lesenswert?

Habe mal meinen Code zum Lesen angehängt.
Hat es denn schon einmal funktioniert?
Denk dran, dass beim Raspi Bluetooth deaktiviert werden muss, damit man 
die serielle Schnittstelle nutzen kann!
1
import serial 
2
port=serial.Serial(port='/dev/ttyAMA0',baudrate=9600, timeout=1.0)
3

4
def receiveCommand(self):
5
        while(port.isOpen()):
6
            if (port.inWaiting()>0): 
7
                rawdata = port.read(port.inWaiting()).decode('ascii')
8
                print(rawdata)
9
            time.sleep(0.01)

Habs aus meinem Programm rauskopiert und schnell umgeschrieben, hoffe 
ist kein Fehler beim Umschreiben passiert, einfach mal testen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren