Serielle Schnittstelle - Input Echo
Hallo,
Ich bin grad dabei mit dem Pi die serielle schnittstelle anzusprechen und habe folgendes Problem:
Wenn ich etwas empfange, wird das Zeichen direkt zurück geschickt, was nicht unbedingt optimal ist ;)
hab bisher in Erfahrung gebracht, dass sich das irgendwie per stty einstellen lässt, nach man page studieren und rumprobieren hab ich es allerdings nicht hinbekommen.
Kann mir da jemand weiterhelfen?
Danke schon mal.
Gruß,
Ivo
Liste der Anhänge anzeigen (Anzahl: 1)
Kopiere mal die Datei nach dem Entpacken auf den Raspi und führe diese mal aus. (Rechte 755, evtl. mit sudo vorneweg)
Diese stellt den Port auf 9600 BAUD ein und schaltet das Echo ab.
Dann gleich Dein Programm testen.
Ist es danach immer noch so, dann liegt das Problem tiefer.
Liste der Anhänge anzeigen (Anzahl: 1)
Der Quellcode ist ein Auszug aus meinen anderen Projekten, wo der Raspbi mit AVRs kommuniziert.
Witzigerweise läuft Dein oben angegebener Befehl (stty -F ttyAMA0 -a) bei meinen beiden Raspbis gar nicht.
Der erste sagt:
Code:
stty: ttyAMA0: Inappropriate ioctl for device
Der zweite sagt:
Code:
stty: ttyAMA0: No such file or directory
Beide "Systeme" arbeiten aber einwandfrei. Evtl. hast Du noch andere Pakete installiert?
Die Ausgabe von
Code:
stty -F /dev/ttyAMA0 -a
Auf dem ersten:
Code:
root@raspberrypi ~ > stty -F /dev/ttyAMA0 -a
speed 19200 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>; flush = <undef>; min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
und auf dem zweiten, welcher von Grund auf neu eingerichtet wurde:
Code:
speed 19200 baud; rows 0; columns 0; line = 0;
intr = <undef>; quit = <undef>; erase = <undef>; kill = <undef>; eof = <undef>; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = <undef>; stop = <undef>; susp = <undef>; rprnt = <undef>; werase = <undef>; lnext = <undef>; flush = <undef>;
min = 1; time = 0;
-parenb -parodd cs8 -hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint ignpar -parmrk -inpck -istrip -inlcr -igncr -icrnl -ixon -ixoff -iuclc -ixany -imaxbel -iutf8
-opost -olcuc -ocrnl -onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
-isig -icanon -iexten -echo -echoe -echok -echonl -noflsh -xcase -tostop -echoprt -echoctl -echoke
Edit:
Also bis auf die Geschwindigkeit, Zeilen und Spalten identisch.
Edit:
Hast du vielleicht einen Kurschluß oder niederohmige Verbindung zwischen TX und RX?
- - - Aktualisiert - - -
Wie ist die Hardware aufgebaut? Die Pegel sind angepasst? Feine Brücken zwischen TX und RX ausgeschlossen? Auch nicht durch zu niedrigohmige Widerstände miteinander verbunden?
Anbei der von mir genutzte Pegelwandler.
Anhang 24932