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ß