Forum: PC-Programmierung Daten über UART zum PC übertragen


von gggg (Gast)


Lesenswert?

Hallo

wie oben schon geschrieben, würde ich gerne Daten vom uC zum PC 
übertragen. Kennt ihr eine Seite wo das in C beschrieben ist.


MfG

von Klaus W. (mfgkw)


Lesenswert?

Das hiesige Tutorial, Stichwort UART?

von gggg (Gast)


Lesenswert?

Mich interessiert das Programm von PC Seite. Würde gerne die Daten in 
der Konsole anzeigen und vielleicht später eine GUI daraus machen.

von Michael U. (amiga)


Lesenswert?

Hallo,

Terminalprogramm beliebiger Wahl?

Gruß aus Berlin
Michael

von gggg (Gast)


Lesenswert?

Wie oben beschrieben wollte ich das nicht über ein Terminalprogramm 
machen sondern selber eine Konsolenanwendung schreiben.

Mein Problem ist jetzt, wie kann ich in C die serielle Schnittstelle 
ansprechen.

von Micha (Gast)


Lesenswert?


von Thomas E. (thomase)


Lesenswert?

gggg schrieb:
> Mein Problem ist jetzt, wie kann ich in C die serielle Schnittstelle
>
> ansprechen.

C, C++, C#?
Windows, Linux?

mfg.

von gggg (Gast)


Lesenswert?

Ich programmiere in C. Mein BS ist Windows 7.

von Thomas E. (thomase)


Lesenswert?

gggg schrieb:
> Ich programmiere in C.

Welcher Compiler?

mfg.

von Micha (Gast)


Lesenswert?

gggg schrieb:
> Mein BS ist Windows 7.

Na selber Schuld!!!
Grüsse Micha

( im Link bis nach unten scrollen -> siehe auch )

von gggg (Gast)


Lesenswert?

Codeblocks nützt angeblich den GCC-Compiler.

von Ned (Gast)


Lesenswert?

Hi,

hab mir mal einige Zeilen aus einem meiner Programme für XP. Sollte sich 
aber kaum was geändert haben. Einfach mal die MSDN nach den 
entsprechenden Funktionen und Datentypen durchsuchen.

Source ist nicht komplett, ein bisschen was musst Du noch selbst machen. 
;)
1
    //COM Port initialisieren
2
    DCB           dcb;
3
    HANDLE hCom = CreateFile ("COM1", GENERIC_READ|GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
4
    dcb.DCBlength = sizeof(DCB);
5
    GetCommState  (hCom, &dcb);
6
    dcb.BaudRate  = 9600;
7
    dcb.ByteSize  = 8;
8
    dcb.Parity    = NOPARITY;
9
    dcb.StopBits  = ONESTOPBIT;
10
    SetCommState (hCom, &dcb);
11
    DWORD iBytesReceived;
12
13
    ReadFile (hCom, nachricht, 25, &iBytesReceived, NULL);
14
15
    //COM Port schliessen
16
    CloseHandle (hCom);

von gggg (Gast)


Lesenswert?

Habe mir jetzt diesen Code angeschaut. Es steht dass der für Visual C++ 
ist, ist das ein Problem oder sollte es auch so funktionieren.

http://www.codeproject.com/KB/system/chaiyasit_t.aspx

Socketprogrammierungen benötigen ja socket(), connect(), listen(), 
bind(). In der Beschreibung war davon nicht die rede. Wird das doch 
nicht benötigt.

von Ned (Gast)


Lesenswert?

Also ich programmier mit dem Borland C++ Builder, ist also kein VC++ 
spezifischer Code.
Könnte aber sein das Du den PDSK (Plattform Software Development Kit) 
brauchst, weil das alles Windows-Funktionen sind.
Die von Dir genannten Funktionen hören sich eher nach 
Netzwerkprogrammierung an und die serielle Schnittstelle hat mit 
Netzwerken nix zu tun.

Gruß

Ned

von Ned (Gast)


Lesenswert?

Hab mir gerade noch die von Dir verlinkte Seite angeschaut, der Autor 
verwendet zusätzlich noch die MFC (Microsoft Foundation Class) ist sowas 
ähnliches wie der PSDK aber eben VC++.

Gruß

Cheba

von gggg (Gast)


Lesenswert?

D.h. der GCC Compiler reicht nicht aus, ich brauche also noch den PSDK

von Ned (Gast)


Lesenswert?

Schau mal in dein Compiler-Verzeichniss, unter: include oder so ähnlich.
Da sollten jede Menge .h Dateien drin sein, unter anderem auch eine 
"windows.h", "winbase.h" usw. Wenn die da drin sind, müsste es auch ohne 
PSDK gehen und zwar mit dem Code den ich oben gepostet habe.

Gruß

Ned

von Heinrich Schliemann (Gast)


Lesenswert?

gggg schrieb:
> Mein Problem ist jetzt, wie kann ich in C die serielle Schnittstelle
> ansprechen.

Programmierst Du unter Windows oder Linux? Unter Windows schau Dich mal 
schlau mit dem Out-Befehl unter c und unter Linux brauchst Du nur ein 
Verzeichnis öffnen, dann bist du in der seriellen Schnittstelle drinnen, 
denn Unix/Linux ist ein verzeichnisbasiertes Betriebssystem derart, dass 
auch die Kommunikation mit Ports über die Verzeichnisstruktur erfolgt 
und nicht wie bei Dos/Windows über das Betriebssystem.

von Heinrich Schliemann (Gast)


Lesenswert?

gggg schrieb:
> Codeblocks nützt angeblich den GCC-Compiler.

Du kannst mit Codeblocks verschiedene Compiler nutzen, Du musst sie nur 
entsprechend einstellen.

von Ned (Gast)


Lesenswert?

Ich möchte Dir an dieser Stelle evtl. zum MinGW Packet raten!
Da ist der GCC-Compiler dabei einigen Bibliotheken.

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.