tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von MCoder
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
3453
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Templorials Templorials ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Ort
    Österreich
    Beiträge
    169
    Hallo!

    Habe mit C noch nicht allzu viel erfahrung.. Aber schreibe gerade ein kleines Programm (für einen PIC) das unter anderen Wörter und Zahlen von der seriellen Schnittstelle auslesen sollte () .. Die Strings werden von einem anderen Programm einfach auf die serielle Schnittstelle geschrieben..

    Hab dazu zwar gets() gefunden aber das klappt nicht..


    Bitte um Hilfe.. Über die Suche habe ich auch nichts gefunden
     

  2. #2
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Falls das Ganze unter Windows stattfindet, gibt es ein allgemeines Verfahren, um Daten von der seriellen Schnittstelle zu lesen:
    • Port öffnen -> CreateFile()
    • Port konfigurieren (DCB-Struktur füllen)-> SetCommState()
    • Timeouts festlegen (evt. verzichtbar, wenn die Standardeinstellungen passen)-> SetCommTimeouts()
    • Lesen der Bytes -> ReadFile()
    • Port schließen -> CloseHandle()

    Möglicherweise kommt vor dem Lesen noch eine Schreiben ( WriteFile() ) dazu, falls ein Kommando gesendet werden muss, um das Übertragen der Daten anzustoßen. Außerdem muss wahrscheinlich auch ein Protokollrahmen beachtet werden, der z.B. regelt, mit welchen Bytefolgen Anfang und Ende einer Übertragung gekennzeichnet werden.

    Gruß
    MCoder
    CodeFlatter bedankt sich. 
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

  3. #3
    Templorials Templorials ist offline Mitglied Gold
    Registriert seit
    Aug 2004
    Ort
    Österreich
    Beiträge
    169
    Aha vielen Dank, ich denk das hilft mir schon viel weiter..

    Also es kommt auch vor das ich einzelne Zahlen übergeben will.. zb 5 kann ich ja dann mit getc erwischen.. aber bei zahlen über 9 geht das nicht oder? gibs bei zahlen eine bessere möglichkeit die einzulesen
     

  4. #4
    MCoder MCoder ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jul 2005
    Ort
    München
    Beiträge
    2.448
    Das hängt auch davon ab, wie die Zahlen übergeben werden. Entweder werden die einzelnen Ziffern als ASCII-Zeichen
    übergeben (sozusagen in Textform) oder die Zahl wird in binärer Form mit der dem Datentyp entsprechenden Anzahl von
    Bytes übergeben.
    Am besten erscheint mir, mit ReadFile den Port byteweise auszulesen und alles in einen Puffer schreiben und diesen dann
    anschließend entsprechend der übertragenen Daten auszuwerten.

    Gruß
    MCoder
     
    "The three chief virtues of a programmer are: Laziness, Impatience and Hubris."
    --- Larry Wall

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 20.09.10, 16:38
  2. serielle Schnittstelle: mehrer Bytes einlesen
    Von PariX im Forum VisualStudio & MFC
    Antworten: 7
    Letzter Beitrag: 20.03.07, 10:02
  3. Antworten: 0
    Letzter Beitrag: 20.04.06, 11:43
  4. Terminal über Serielle Schnittstelle
    Von knackpunkt83 im Forum Linux & Unix
    Antworten: 2
    Letzter Beitrag: 05.01.05, 21:16
  5. Antworten: 3
    Letzter Beitrag: 03.03.03, 15:50