serial port '/dev/ttyACM0': device reports readiness to read but returned no data

  • Ich hab ein seltsames Problem mit einem über USB verbundenen Arduino, in Verbindung mit Python.

    Und zwar lese ich die Ausgaben des Arduino's über USB aus. Das funktioniert soweit auch sehr gut, nur krieg ich nach ein paar Steuerbefehlen die ich auch über USB Sende plötzlich folgende Fehlermeldung:

    Code
    Could not open serial port '/dev/ttyACM0': device reports readiness to read but returned no data (device disconnected?)

    In Python sieht die Anweisung wie folgt aus:

    Die Anweisung zum Senden nutzt die bereits geöffnete USB-Verbindung:

    Code
    #send to Arduino
    def send_serial_data(line):
      output = "%s\r\n" % (line)
      try:
        bytes = ser.write(output)
      except Exception, e3:
        print("Error sending via serial port: " + str(e3))
      # Flush input buffer, if there is still some unprocessed data left
      ser.flush()       # Try to send old message
      ser.flushInput()  # Delete what is still inside the buffer

    Zum öffnen der Verbindung werden folgende Parameter verwendet:

    Spoiler anzeigen

    Woran kann das liegen?
    Sieht jemand meinen Bockmist?
    :helpnew:

  • serial port '/dev/ttyACM0': device reports readiness to read but returned no data? Schau mal ob du hier fündig wirst!

  • Hallöle,
    wieder am tüfteln ;) ...


    ...
    # Flush input buffer, if there is still some unprocessed data left
    ser.flush() # Try to send old message
    ser.flushInput() # Delete what is still inside the buffer


    ich kenne, wie gesagt, Python nicht, aber warum machst Du einen flush auf den Input, wenn Du Daten sendest? Damit schmeisst Du alles weg, was evtl. in der Zwischenzeit eingetrudelt sein könnte. Ist ja eine asynchrone Kommunikation ...

    cu,
    -ds-

  • Das mag schon sein, aber der Fehler könnte durchaus daher kommen, dass Du was schreibst und die empfangenen Zeichen wegschmeisst und anschliessend versuchst Du was zu lesen (das scheint über IO-Signale zu gehen - also das Signal steht ) aber es sind keine Daten (mehr) da ...

    cu,
    -ds-

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!