serielle Schnittstelle unter C++ - WaitCommEvents
Vinci 03.03.2011 - 15:32 1785 0
Vinci
hatin' on summer
|
Hallo allerseits Mein 1.Post im include nach 8 Jahren in diesem Forum... Ok, folgendes. Ich plag mich grad mit der Programmierung einer seriellen Schnittstelle unter C++ herum und brauch ein WaitCommEvent um auf die Antwort eines µC zu warten. Mein Code ist prinzipiell 1:1 von MSDN kopiert: while (hComm != INVALID_HANDLE_VALUE)
{WaitCommEvent (hComm, &dwCommModemStatus, NULL);
SetCommMask (hComm, EV_RXCHAR);
Sleep(500);
if (dwCommModemStatus & EV_RXCHAR)
{do
{ReadFile (hComm, InBuffer, 1, &BytesRead, NULL);
} while (BytesRead==1);
SetCommMask für eingehende Daten in den "Buffer" WaitCommEvent aufgerufen und die stetige Abfrage, ob was da is... -> Wieso geht das nicht? Das Problem is, dass die Schleife endlos läuft und sich mein Programm trotz des "Sleep" komplett aufhängt. Das dürfte aber eigentlich nicht der Fall sein, weil nebenbei ein Timer läuft, der gänzlich andere Dinge tut... (auslesen von Daten, Berechnungen, etc.) Wieso bleib ich in dieser Schleife hängen? Der Laptop, auf dem das Programm aktuell läuft hat übrigens "keinen echten" COM-Port. Der Port, den ich hier öffne und bearbeite, ist in Wirklichkeit irgendein integriertes Modem... Aber ich glaub nicht, dass da der Fehler liegt? Irgendwelche Ideen? tia Vinci
|