Mikrocontroller mit RS 232 ansteuern(C++)

#2870171
Lesenswert?

Hallo zusammen,

ich arbeite mich gerade durch das von Euch angebotene AVR Tutorial. Ich 
steh jetzt beim UART. Dazu möcht ich gerne eine Konsolenanwendung 
schreiben, die per RS 232 meine externe Schaltung( Mikrocontroller, der 
eine LCD Anzeige steuert )ansteuert. Ich gebe eine Zeichenkette, oder am 
Anfang auch ein Zeichen ein, dieses wird per RS 232 an meinen 
Mikrocontroller geschickt und der sendet es dann ans LCD Display. Der 
zweite Teil steht bereits in der Form dass ich eine feste Zeichenfolge 
in nem Assemblerprogramm vorgebe, den Mikrocontroller dann damit 
bespiele(per STK 500), auf mein Steckbrett setze und die gewünschten 
Zeichen dann auf meinem Display erscheinen(nicht elegant seh ich ein -> 
Anfänger).

Die Konsolenanwendung möchte ich mit C++ schreiben. Nun zu meinen 
Fragen:

Was für Möglichkeiten hab ich auf meine Hardware von meinem PC 
zuzugreifen per Konsolenanwendung? C++ nutzt in ein paar Fällen streams( 
iostreams, filestreams). Gibt es son ein Konzept auch für 
Schnittstellen?
Mein zweites Problem sehe ich darin dass die RS 232 Schnittstelle nicht 
real existiert, ich also über ne USB Schnittstelle gehen muss und dann 
auf einen RS 232 Adapter. Wie sieht die Programmierung dann aus?

Freue mich über jede Antwort und bedanke mich schonmal im Voraus. Falls 
das ganze zu kompliziert wird, wäre ich auch schon über 
Literaturhinweise oder entsprechende Internetquellen dankbar.

Beste Grüße,

Flocean
Gast #2870212
Lesenswert?

Hallo Florian,
wenn ich das richtig verstehe geht es dir erstmal um einen Test per 
Hand.
Das Einfachste wäre in diesem Fall wohl, die Zeichen mit einem einfachen 
Terminalprogramm (z.B. Hyperterminal, das ist bei Windows-XP glaube ich 
noch dabei, ob auch danach noch weiß ich leider nicht).
Falls du unter Linux arbeitest gibt es so etwas (nur viel besser) sicher 
dort auch.

Dort einfach die COM Schnittstelle direkt öffnen, also nicht über Modem 
eine Verbindung aufbauen was normalerweise der Zweck eines solchen Tools 
ist. Dann die Baudrate, Parity, kein Handshake, kein Echo, usw. 
einstellen. Die Zeichen die du dann an der Tastatur eintippst müssten an 
der Sendeleitung der ausgewählen seriellen Schnittstelle zu sehen sein 
(Oszilloskop). Falls kein Oszi zur Hand ist kannst du auch (ohne deine 
Hardware angeschlossen zu haben) TxD und RxD die vom PC kommen brücken 
(müssten die Pins 2 und 3 des 9 poligen sub D sein). Dann müssten die 
Zeichen die du eingibst auch wieder am Bildchirm zu sehen sein.

Ich hoffe das hilft dir etwas weiter.

Viel Glück

Helmut
#2870237
Lesenswert?

Hallo und danke für die Antworten;-).

Die Idee mit dem Hyperterminal hatte ich auch, da ich aber Windows 7 
nutze hab ich keins zur Verfügung(Im Internet stehen aber anscheinend 
Anleitungen wie man doch noch eins bekommen kann). Für den Hardwaretest 
wäre das sicher eine gute Lösung. Prinzipiell möchte ich die 
Konsolenanwendung aufjedenfall schreiben. Seh das ganze als Übung zum 
ersten um meine C++ Kenntnisse mal um etwas Sinnvolles zu erweitern( ein 
Semester Taschenrechner und irgendwelche anderen Programme die niemand 
braucht) und zum anderen, möchte ich dieses Konzept in späteren 
Schaltungen weiterverwenden. Ne Verbindung zum Daten auslesen Befehle 
senden usw. kann sicher nicht schaden. Mir gehts in vorderster Linie um 
Üben und vorallem Erlernen von Grundlagen.

Beste Grüße,

Florian
Gast #2870249
Lesenswert?

Hallo,

wenn du dir etwas solides aufbauen willst um deinen µC mit dem Computer 
zu steuern kann ich dir die Boost Library sehr empfelen. Die ist erstmal 
dafür da, dass du auf die Serielle Schnittstelle zu greifen kannst (auch 
mit USB-RS232 Adaptern.
Genau genommen brauchst du den Boost Asio Teil. hier ist ein sehr gutes 
Tutorial:

http://www.webalice.it/fede.tft/serial_port/serial_port.html#download

Dann kannst du wenn du möchtest noch eine Grafische Oberfläche mit 
QT-Creator aufbauen. Falls du schon mit C++ vertraut bist, hast du dich 
schnell in QT eingearbeitet.

Als einfaches Terminal Programm, ist Hterm für Windows sehr gut.

Viel Erfolg
Gast #2870973
Lesenswert?

232 schrieb:
> die einfachste Möglichkeit die ich kenne:
> RS-232 for Linux and Windows

hab den Text nur überflogen, aber klingt interessant.

Ist das so ne Art Wrapper für die Systemcalls (zB termios unter linux) 
um den Code zwischen Linux und WIndows portabel zu halten?
An sowas bin ich nämlich momentan auch dran :-)

@ TE:
für dein Vorhaben würde ich erstmal HTerm empfehlen. Ein sehr gutes 
Terminalprogramm (das leider nicht mehr gepflegt wird, closed source ist 
und bei mir nicht mehr läuft :/ ).
Damit kannst du schonmal testen ob dein LCD die Zeichen darstellt die du 
am PC raussendet. Diesen Schritt solltest du nicht überspringen, damit 
kannst du schonmal dein uC Programm Testen/Debuggen.

Ein eigenes Programm zu schreiben ist dann der nächste Schritt.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren