Read() Funktion hängt sich auf oder gibt nichts zurück

  • Heyho,

    ein Kumpel und ich sind gerade dabei ein Raspberry Pi über die serielle Schnittstelle mit dem RS485 zu verbinden.

    Wir arbeiten mit: Raspberry Pi 3 Modul B.

    Bei der Konfiguration der seriellen Schnittstelle bin ich mir nicht sicher 100 pro sicher, ob ich da alles richtig gemacht habe, weil in den meisten Foren etwas davon steht, dass man die Datei /etc/inittab bearbeiten soll. Die Datei habe ich nicht.

    Ich beschreibe mal kurz, wie ich das konfiguriert habe:

    - unter raspi-config habe ich Advanced Options -> Seriel -> No gewählt

    - in der Datei /boot/cmdline.txt steht:
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
    dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

    - in der Datei /boot/config.txt steht: enable_uart=1


    Beim Schreiben des Programmes haben wir uns an dieser Seite orientiert:

    http://www.netzmafia.de/skripten/hardw…sPi_Serial.html


    Wir wollen bis jetzt nur, dass unser Raspberry die Daten vom RS485 einliest. Und zwar ein Byte.

    Wir haben den Filedeskriptor (int fd) global gesetzt, weil wir fd in unserer Funktion zum Einlesen brauchen.
    Nach der Ausgabe von fd wissen wir, dass dieser 3 ist. Also scheint die serielle Schnittstelle zu funktionieren!?

    Zusätzlich hat mein Kumpel ein Header und Cpp-Datei für das RS485 ein Protokoll geschrieben. Das haben wir in das Programm mit eingebunden.

    Alles klappt soweit wunderbar. Bis auf die read() Funktion.
    Erst hat sich das Programm immer in dieser Funktion aufgehängt, jetzt sind wir soweit, dass es eine Fehlermeldung zurück gibt.

    Und zwar gibt die read() Funktion nun eine 0 zurück und als Ausgabe haben wir:

    No Data
    : Success

    oder

    No Data
    : Invalid Argument


    Hat jemand Tipps? Braucht ihr noch Infos?

    Danke schon mal im Vorraus

    Gruß

  • Read() Funktion hängt sich auf oder gibt nichts zurück? Schau mal ob du hier fündig wirst!

Jetzt mitmachen!

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