Hallo,
ich arbeite gerade an einem Mini-Projekt, bei ein PC mittels RS232- Schnittstelle mit einem Embedded-Computer kommuniziert. Das ist an sich nicht weiter schlimm. Aber das Problem daran ist, dass es unter Windows laufen muß. Einmal Windows XP und speziell Windows CE 5.0. (Deswegen auch das "OT" im Betreff...)
Der erste Schritt ist vom WinCE-Computer aus an den PC eine Zeichenkette zu verschicken, die ich mir mittels Hyperterminal anzeigen lasse. Hier hapert's leider schon, es kommt immer nur ein "Zeichen" an. Ich weiß nicht mal, ob's sich wirklich um ein Zeichen handelt, da das Oszilloskop auch nur eine einzige Flanke zeigt, die ja fehlinterpretiert werden könnte.
Hier nun mein bisheriger Programmcode:
#include "stdafx.h" #include <string.h>
HANDLE hComPort; DCB sComDCB; DWORD dwCount; char cData[17] = "Das ist ein Test";
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { memset(&sComDCB,0,sizeof(sComDCB)); sComDCB.DCBlength = sizeof(sComDCB); sComDCB.BaudRate = 9600; sComDCB.StopBits = ONESTOPBIT; sComDCB.fParity = FALSE; sComDCB.Parity = NOPARITY; sComDCB.Binary = TRUE; sComDCB.fInX = FALSE; sComDCB.fOutX = FALSE; sComDCB.fDtrControl = DTR_CONTROL_DISABLE; sComDCB.fRtsControl = RTS_CONTROL_DISABLE; sComDCB.fOutxCtsFlow = FALSE; sComDCB.fOutxDsrFlow = FALSE; sComDCB.fDsrSensitivity = TRUE;
hComPort = CreateFile( _T("COM3:"), GENERIC_READ | GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, 0))
SetCommState(hComPort, &sComDCB);
WriteFile(hComPort, &cData, 16, &dwCount, 0);
CloseHandle(hComPort);
return 0; }
Der Quelltext läßt sich einwandfrei auf der Zielplattform übersetzen und ausführen. Nur kommt beim Senden nichts Gescheites raus. Kann mir hier jemand von Euch weiterhelfen? Vielen Dank.
MfG
Carsten
On Monday 20 August 2007 18:23, Carsten Friede wrote:
Hallo,
ich arbeite gerade an einem Mini-Projekt, bei ein PC mittels RS232- Schnittstelle mit einem Embedded-Computer kommuniziert. Das ist an sich nicht weiter schlimm. Aber das Problem daran ist, dass es unter Windows laufen muß. Einmal Windows XP und speziell Windows CE 5.0. (Deswegen auch das "OT" im Betreff...)
MSDN?
Der erste Schritt ist vom WinCE-Computer aus an den PC eine Zeichenkette zu verschicken, die ich mir mittels Hyperterminal anzeigen lasse.
Hyperterminal als zuverlässiger Logger entspricht _keinesfalls_ meiner Erfahrung
Hier hapert's leider schon, es kommt immer nur ein "Zeichen" an. Ich weiß nicht mal, ob's sich wirklich um ein Zeichen handelt, da das Oszilloskop auch nur eine einzige Flanke zeigt, die ja fehlinterpretiert werden könnte.
Hier nun mein bisheriger Programmcode:
...
SetCommState(hComPort, &sComDCB);
WriteFile(hComPort, &cData, 16, &dwCount, 0);
CloseHandle(hComPort);
return 0;
Unter Linux wirkt flush beim Öffnen (Altlasten beseitigen) und Schließen (Reste übertragen) Wunder. Das könnte die nur 1 Byte-Sache u.U. erklären.
MfG
Carsten
Bernhard
(MSDN???)
Am 20.08.2007 um 19:50 schrieb Bernhard Schiffner:
On Monday 20 August 2007 18:23, Carsten Friede wrote:
Hallo,
ich arbeite gerade an einem Mini-Projekt, bei ein PC mittels RS232- Schnittstelle mit einem Embedded-Computer kommuniziert. Das ist an sich nicht weiter schlimm. Aber das Problem daran ist, dass es unter Windows laufen muß. Einmal Windows XP und speziell Windows CE 5.0. (Deswegen auch das "OT" im Betreff...)
MSDN?
Ja, da habe ich mich schon eingelesen, das Programm entstand nach dem Studium der Lektüre dort unter "Serial Communications". Allerdings komme ich damit auch nicht weiter. Bin sonst ja auch nicht mit Windows unterwegs...
Der erste Schritt ist vom WinCE-Computer aus an den PC eine Zeichenkette zu verschicken, die ich mir mittels Hyperterminal anzeigen lasse.
Hyperterminal als zuverlässiger Logger entspricht _keinesfalls_ meiner Erfahrung
Hier hapert's leider schon, es kommt immer nur ein "Zeichen" an. Ich weiß nicht mal, ob's sich wirklich um ein Zeichen handelt, da das Oszilloskop auch nur eine einzige Flanke zeigt, die ja fehlinterpretiert werden könnte.
Hier nun mein bisheriger Programmcode:
...
SetCommState(hComPort, &sComDCB);
WriteFile(hComPort, &cData, 16, &dwCount, 0);
CloseHandle(hComPort);
return 0;
Unter Linux wirkt flush beim Öffnen (Altlasten beseitigen) und Schließen (Reste übertragen) Wunder. Das könnte die nur 1 Byte-Sache u.U. erklären.
Hm, muß ich doch gleich mal schauen, ob's sowas auch unter Windows gibt.
MfG
Carsten
Am Montag, 20. August 2007 18:23 schrieb Carsten Friede: Moin Carsten,
Der erste Schritt ist vom WinCE-Computer aus an den PC eine Zeichenkette zu verschicken, die ich mir mittels Hyperterminal anzeigen lasse.
Hyperterminal....oha Da ich mich mit µC's beschäftige war ich auch gezwungen mich nach einem Fenster-Proggi zum Überprüfen der ser. Kommunikation umzusehen. Bin dabei auf HTERM gestoßen und kann es nur wärmstens empfehelen. Wenn es sowas auch unter Linux gäbe, wäre ich im Himmel....
Hier hapert's leider schon, es kommt immer nur ein "Zeichen" an. Ich weiß nicht mal, ob's sich wirklich um ein Zeichen handelt, da das Oszilloskop auch nur eine einzige Flanke zeigt, die ja fehlinterpretiert werden könnte.
Hmmmmm
Hardware-Fluß-Kontrolle????
Gruß... Ingolf G.
lug-dd@mailman.schlittermann.de