mikrocontroller.net

Forum: PC-Programmierung Linux serielle Schnittstelle


Autor: Horst (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich versuche unter Linux mithilfe des angefügten Programms
Daten von einem Micro zu empfangen.

Der Micro uebertraegt zunaechst die Laenge (### llll\n) und danach 
binaer
die llll Bytes. Leider emfange ich stets zuwenig Daten.

Was auffaellt ist, dass in den uebertragenen Daten alle
Bytes 0x0d,0x11 und 0x13 fehlen.

Mit jedem Terminalprogramm (seyon, oder Win-Hyperterminal) klappt die
Uebertragung problemlos.

Daher denke ich, dass ich bein den Einstellungen der Schnittstelle einen
Feher mach, kann jemand bitte einmal einen Blick darauf werfen ?

Gruss
       horst.

Autor: Joerg Wolfram (joergwolfram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
0x0d ist Carriage return, 0x11 ist XON und 0x13 ist XOFF. Bei letzteren 
beiden muss man das Software-Handshaking abschalten, damit sie mit 
übertragen werden.
Generell ist es aber besser, die Übertragung per X-Modem etc. zu 
realisieren oder die Daten in Hex-Chars zu konvertieren und dann zu 
übertragen. Ich bevorzuge letztere Methode, da so die Daten zwecks 
Fehlersuche noch einigermassen lesbar sind.

Gruß Jörg

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

da ich im raw-Modus empfange, ging ich davon aus, das cr,lf
?? >options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG);<
uebertragen wird.

Welche option schaltet das xon/xoff ab ?

Gruss
       horst.

Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Probier mal folgendes nach tcgetattr:

options.c_iflag = 0;
options.c_oflag = 0;
options.c_lflag = 0;

Ich hoffe das hilft Dir weiter.
Ansonsten mal auf die man-pages schauen...

Autor: Horst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo  Bobby,

 dein Vorschlag hat's gebracht - dank fuer eure Hilfe.

 Gruss
     horst.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.