ubuntuusers.de

Abschluss bei serieller Übertragung eines Strings.

Status: Gelöst | Ubuntu-Version: Kubuntu 12.10 (Quantal Quetzal)
Antworten |

lucian

Anmeldungsdatum:
18. Juli 2006

Beiträge: 94

Hallo,

ich hab folgendes Problem und ich finde die Lösung nicht. Dr.Google konnte leider auch nicht helfen.

Problem: Ich habe einen String den ich per seriellen Port übertragen möchte an einen Mikrocontroller. Der String sieht in meinem Falle so aus: <UPDATE>Device0</UPDATE>

Das Problem ist mach ich das aus meinem Programm heraus, reagiert der Mikrokontroller nicht (auch nicht wenn das \r noch dran hängt). Schicke ich den String statt an den Mikrocontroller an minicom erscheint der String so wie er soll. Nehme ich minicom um den String an den Mikrokontroller zu schicken, reagiert dieser sofort.

Was mach minicom bei der Übertragung anders? Die Einstellungen sind in meinem Programm identisch zu miniocom (19600bps, 8N1, keine Flusskontroller)

Jemand eine Idee?

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

lucian schrieb:

...auch nicht wenn das \r noch dran hängt

Hi,

Auch schon ein \n getestet ?

Viele Grüße u1000

lucian

(Themenstarter)

Anmeldungsdatum:
18. Juli 2006

Beiträge: 94

Ja, \n und \r\n und \n\r. Alle Kombinationen schon durch. Leider ☹

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Die serielle Schnittstelle hängt in irgendeiner Form ein EOF oder EOT an die Übertragung an. (wie, das kann man einstellen ! → Handshake)

Das müsstest Du ihr wohl sagen. Versuch mal, ob es ein \x04 am Ende tut, (von der Tastatur aus ein [Ctrl]-D ) oder ein \x13 .
Sonst guck mal, ob Dir solche Tips weiter helfen: http://www.jux-net.info/jux2/docs/sys100/comm_42.html

LG,

track

lucian

(Themenstarter)

Anmeldungsdatum:
18. Juli 2006

Beiträge: 94

Danke,

ich hab den Fehler gefunden. Es lag dran das ich die Baudrate per

options.c_cflag |= B9600; versucht habe zu setzen.

mit

cfsetispeed (&options, B9600); funktioniert nun alles.

Antworten |