Forum: PC-Programmierung serielle Schnittstelle in bash / Linux stty


von qwerty (Gast)


Lesenswert?

Hallo,

ich will über ein bash script einen Befehl an einen microcontroller 
übertragen.

Wie geht das denn mit stty? werde da nicht schlau draus.

z.b wenn ich hallo übertragen will

stty -F /dev/ttyS0 ispeed 9600 ospeed 9600 -echo hallo

ist das korrekt so ??

Und wie kann ich was lesen wenn der controller antwortet?

von Markus (Gast)


Lesenswert?

Bei mir gehts so (Ich verwende einen USB-Seriell-Wandler, deshalb 
ttyUSB0)

1.Konfiguration:
stty 9600 -crtscts -echo -ixoff -F /dev/ttyUSB0
Wichtig war glaube ich das crtscts: Damit wird das hardware handshaking 
deaktiviert.

2.Senden:
echo -n 1  >>/dev/ttyUSB0 (sendet 1 ohne linefeed)

von Juergen R. (stumpjumper)


Lesenswert?

Oder so,
1. in eine Textdatei den gewünschten Text schreiben.
2. cat [Datei mit Text] > /dev/ttyUSB0 bzw. bei einer "echten" seriellen 
Schnittstelle ttyS0.

stty dient zum parametrieren der Schnittstelle also zum einstellen der 
Übertragungsgeschwindigkeit und ob ein Paritätsbit etc. gesendet wird.

von Norbert (Gast)


Lesenswert?

und man sollte Mitglied der dialout Gruppe sein.

$ ls -l /dev/ttyUSB0
crw-rw-rw- 1 root dialout 188, 0 21. Mär 09:33 /dev/ttyUSB0
$ ls -l /dev/ttyS0
crw-rw---- 1 root dialout 4, 64 21. Mär 09:33 /dev/ttyS0

von Lukas K. (carrotindustries)


Lesenswert?

Norbert schrieb:
> und man sollte Mitglied der dialout Gruppe sein.

Manchmal heißt diese Gruppe auch uucp

von Tom M. (Gast)


Lesenswert?

Ich verwende screen(1), sitze aber gerade nicht an diesem Rechner. Wenn 
ich mich richtig erinnere, sieht der Aufruf in etwa so aus:
1
screen /dev/ttyUSB12345 115200

Damit ist bi-direktionale Kommunikation kein Problem. Mit stty & co 
musste ich so noch nie rumfummeln.

von Sven W. (Firma: basement industries) (dj8nw)


Lesenswert?

# stty --help

könnte zur Erklärung hilfreich sein?!

von Norbert (Gast)


Lesenswert?

Interessant, kenn' ich eigentlich nur von UNIX.
Allerdings, group uucp habe ich hier in Lenny auch.

Aber keine Devices mit group uucp,
  cd /dev
  grep "uucp" MAKEDEV
  find . -ls|grep "uucp"
sowie
  grep -R "uucp" * in /etc
haben auch keine sinnvollen Treffer gelandet.

Bei welcher Linux Distribution werden Devices mit uucp group angelegt?

von Lukas K. (carrotindustries)


Lesenswert?

Norbert schrieb:
> Bei welcher Linux Distribution werden Devices mit uucp group angelegt?
Dies ist bei Arch Linux der Fall
1
$ ls -lah /dev/ | grep uucp
2
crw-rw----   1 root uucp        4,  64 21. Mär 16:16 ttyS0
3
crw-rw----   1 root uucp        4,  65 21. Mär 16:16 ttyS1
4
crw-rw----   1 root uucp        4,  66 21. Mär 16:16 ttyS2
5
crw-rw----   1 root uucp        4,  67 21. Mär 16:16 ttyS3

von faustian (Gast)


Lesenswert?

Evtl willst Du auch die "raw" Option.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.