Forum: PC-Programmierung ANSI C serielle Schnittstelle


von Steffen K. (steffen3)


Lesenswert?

Hallo,

ich habe folgendes Problem ich muss für ein Projekt die serielle 
Schnittstelle des PC benutzen, d.h. Daten an einen µC senden und Daten 
vom µC empfangen können. Das Betriebssystem des PC's ist XP. Das 
Programm im µC ist schon fertig und funktioniert.
Ich habe schon gegoogelt aber nur Codes in C++ gefunden und die kann ich 
nicht nachvollziehen.
Daher meine Frage hat jemand eine Beschreibung wie ich vorgehen muss um 
eine Lösung in ANSI C zu finden?

Gruss Steffen

von Marcus (Gast)


Lesenswert?

Hallo,
in Ansi C wirst du nicht wirklich was finden.

Das ist leider unter Windows und Linux verschieden. In der MSDN steht 
wie es unter window geht.
Die schnittstelle öffnen geht mit openfile.
http://msdn2.microsoft.com/en-us/library/aa363858(VS.85).aspx

die Parameter kannst du mit SetCommState machen

von Steffen K. (steffen3)


Lesenswert?

Ist es denn möglich sowas in java zu realisieren ?

von Marcus (Gast)


Lesenswert?

Hallo,
also ich bin leider kein Freund von java. Vermute aber das es dort geht. 
Bei .Net kann ich aber sagen das es recht einfach geht, da steht extra 
ein Klasse dafür bereit.

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

In Java bist du mit der seriellen Schnittstelle auf Windows übelst 
gef*ckt.

Sun hat mit JavaComm zwar ein API für die Schnittstelle definiert, nur 
die Windows-Implementierung des APIs vor über einem Jahr unangekündigt 
und ersatzlos gestrichen. Sun-Implementierungen gibt es nur noch für 
Linux und Solaris.

Es gibt eine freie Software, RXTX, die auch auf Windows läuft. Wenn man 
sie denn zusammencompiliert bekommt. Eigentlich ist die Software für 
Unix Systeme, Linux, Mac OS X, geschrieben. Die ist in C geschrieben und 
implementiert  ein serielles API für Java.

Dann finden sich noch diverse kommerzielle Anbieter.

Insgesamt ist das Thema Schnittstellen- und Desktop-Integration bei Java 
sehr unerfreulich.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Du kannst dich entweder durch

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/createfile.asp

durcharbeiten oder lernst Google richtig zu benutzen.

PS: In Ansi C kann es nicht gehen, ist eine OS Sache, also WinAPI 
benutzen.

von Bobby (Gast)


Lesenswert?

Ich benutze gerne MinGW, um Linux-Programme unter
Windows zum Laufen zu bekommen. Leider haben
die enthaltenen Bibliotheken den Mangel, dass sie
den Zugriff auf die serielle Schnittstelle nicht
implementieren (bis jetzt?). Ihr wisst ja alle,
dass oft nur implementiert wird, was auch fast jeder
braucht.


Also bleibt nichts anderes übrig, als das WinAPI
zu verwenden. Leider.

von lippoliv (Gast)


Lesenswert?

Es gibt noch Menschen die MinGW nutzen AUSSER MIR?

Wahnsinn... Hast du nen Debugger?

btt: WinAPI ist auch nicht unbedingt schwer.
Du kannst mit Festplatten z.B. oder anderen Devicec über 
DeviceIoControl(...) komunizieren; Großer nachteil: Windoof findet du 
musst dafür Admin sein.

PS: was ist "µC"?

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Ich verwende neuerdings auch MinGW. Leider hat sich meine 
Cygwin-Installation nicht nachvollziehbar verabschiedet und kann nicht 
mehr repariert/neu installiert werden, die war mir noch lieber.

Schnell ein C Programm ausprobieren, da ist es mir oft zu mühsam eine 
fette IDE anzuschmeissen. Das wird dann auf der Kommandozeile gemacht.

Als Debugger verwende ich wenn überhaupt GDB. So gross/komplex sind díe 
Progrämmchen dann doch nicht, als dass ein Debugger ran muss.

von mik (Gast)


Lesenswert?

Zufällig hab ich gerade diesen Artikel im Wiki geschrieben

http://www.mikrocontroller.net/articles/Serielle_Schnittstelle_unter_Java

Java ist nicht ganz einfach (wie alles im Leben). Ein bisschen Erfahrung 
sollte man schon haben, bevor man damit ein Projekt realisiert.

von gast (Gast)


Lesenswert?

Hallo,

ich habe in nächster Zeit auch vor mit MinGw (per CodeBlocks 8.02) eine 
kleines Progrämmchen zu erstellen, welches die serielle Schnittstelle 
schreiben und lesen soll. Nun meine Frage :

Geht dieses mit MinGw generell nicht oder kann ich per WinApi über MinGw 
dennoch die Schnittstelle ansprechen ????

von Bobby (Gast)


Lesenswert?

Ja per WinAPI geht es

von Steffen K. (steffen3)


Lesenswert?

danke für das wiki Serielle Schnittstelle unter Java. java hat für mich 
persönlich den vorteil, dass ich einfach eine GUI erstellen kann.

von lippoliv (Gast)


Lesenswert?

Das kannst du mit jedem "Visual" ding.

Microsoft Visual C++
Microsoft Visual Studio (C# C++ und Java glaub ich auch)
Broland [Turbo](Pascal, Delphi, C++ und evtl auch C#)

Die können alle GUIs per Drag'n'Drop erzeugen.
In C muss man die halt ausm Quellcode erzeugen :-)
Dann haste für ne Application halt mindestens 300 - 800 Zeilen allein 
wegen dem Form, und ca. 2 - 5h arbeit alles einzurücken.

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.