Serielle Schnittstelle für Anfänger

O

Olti

Mitglied
Hallo erstmal!!

Ich bin ziemlich neu in C/C++, zumindest was die Systemnahe programmierung angeht und ich möchte nun ein paar Bytes an die Serielle Schnittstelle schicken und evtl. auch ein paar wieder empfangen und auswerten. Kann mir irgendjemand ein gutes Tutorial empfehlen (am besten in deutsch und für C++), in dem nicht nur steht wies geht, sondern auch etwas erklärt ist, wie es geht?? Ich will nämlich nicht nur abschreiben sondern auch verstehen, was ich da tu!

MFG Olti
 
Ich kenne kein Tutorium. Unter Linux ist die Schnittstelle eine einfache Datei, die Du mit fopen("/dev/ttyS0", "rw") oeffnen kannst und dann mit fscanf und fprintf bearbeiten.
 
Des hab ich auch schon öfter gelesen, nur blick ich bei der ganzen Sache mit der Baudrate usw. noch net ganz durch und ich find immer nur Beispielee wo einem alles hingeknallt wird aber nicht gescheid erklärt.
Weißt du zufällig ob das theoretisch auch über die Streams in C+ funktioniert, also über ifstream und ofstream??

MFG Olti
 
hi!
olti du hast ganz recht das mit dem durchblicken ist schwaer da man nirgends eine wirklich gescheite doku findet ich. ich hab vor ner zeit nen infrarot transresiver programmiert der ueber die serielle schnittstelle angeschlossen war. waenn du willst kann ich dir den code per mail schicken! eins ist vielleicht sehr wichtig und zwar: die konsole selbst(tty) ist auch so aehnlich einer serielle schnittstelle da frueher die terminals auch alle ueber ne serielle schnittstelle angeschlossen waren! d.h. eine serielle schnittstelle stellst auch so ein wie ne tty! http://www.pronix.de/pronix-27.html da findest viel uber das thema! waenn du das mal begriffen hast is die serielle schnittstelle nicht mehr schwaer zu programmieren!

mfg hazelnoot
 
@hazelnoot: Danke für den Link. Schaut ganz interessant aus. Wäre nicht schlecht wenn du mir den Code mal schicken könntest (christian@oltenburger.de). Interessant ist fr mich v.a. der Teil mit der Konfiguration der Schnittstelle. Werde mich mal einlesen wenn ich meinen Rechner wieder zum laufen gebracht hab!

MFG Olti
 
Hallo also mit dem Link komm ich ganz gut zurecht.
Nochmal danke dafür.
Womit ich aber noch Probleme hab, ist wie ich nun was auf die Serielle Schnittstelle schreiben kann.
Ich hatte zwar irgendwo mal was mit write() aber da ich in C nicht so fit bin sondern eher C++ mach komm ich damit irgendwie nicht zurecht.
Welche Argumente muss ich den nun genau an write() übergeben!

MFG Olti
 
hi!

also write sieht so aus:
ssize_t write(int fileDeskriptor, void *dasWasteSchreibenWillst, size_t anzahlDerBytesDieDuSchreibenWillst); zurueckbekommen tust -1 bei fehlschlag oder die anzahl der tatsaslich geschriebenen bytes!

mfg hazelnoot!
 
naja kommt immer drauf an was er machen möchte bin auch grade bei was um zusetzten wirklich schwer wird es wen man low_signale setzen möchte ist unter linux net ganz leicht
 
Naja ganz einfach ist es wirklich nicht aber dank dem Link von hazelnoot und dem ein oder anderem Quelltext komm ich ganz gut zurecht nur da ich normalerweise eher C++ als C Programmier bin ich bei einigem nicht so ganz fit.
Allerdings hab ich noch nicht rausgefunden, wozu folgende Zeile gut ist:
Code:
fcntl(input, F_SETFL, FNDELAY);

Trotz der Schwierigkeiten find ich des Thema ganz interessant, da es mal ne Herausforderung ist, die wohl noch lange nicht zu ende ist und man auch mal dabei lernt was man tut und nicht wie in meiner Zeit als Delphie Programmierer unter Windows ein paar Zeilen hingeknallt kriegt und dann nur noch copy&pasten muss!!

MFG Olti
 
Hallo ,

ich versuche auch mit c auf die serielle schnittstelle zuzugreifen und dann die daten die dort ankommen auszulesen, bekomme das auch nach tage langer forschung nicht so richtig hin.

Vielleicht könnte mir dein quelltext weiterhelfen hazelnoot, wäre nett wenn du ihn mir zuschicken würdest (martin8310@freenet.de).

danke!!
 

Ähnliche Themen

Server-Monitoring mit RRDTool

Zurück
Oben