Hallo Zusammen.
Ich versende Daten mit foglgender Routine:
int main (void)
{
DCB dcb;
DWORD iBytesWritten;
unsigned char ucMsg[] = {0x41, 0x42, 0x20, 0x43}; // (4)
//unsigned char ucMsg = 'C'; // zu sendendes Zeichen (1)
HANDLE hCom = CreateFile ("COM1", GENERIC_WRITE, 0, NULL,
OPEN_EXISTING, 0, NULL);
dcb.DCBlength = sizeof(DCB); // Laenge des Blockes MUSS gesetzt
sein!
GetCommState (hCom, &dcb); // COM-Einstellungen holen und aendern
dcb.BaudRate = 9600; // Baudrate
dcb.ByteSize = 8; // Datenbits
dcb.Parity = NOPARITY; // Parität
dcb.StopBits = ONESTOPBIT; // Stopbits
SetCommState (hCom, &dcb); // COM-Einstellungen speichern
//WriteFile (hCom, &ucMsg, 4, &iBytesWritten, NULL); // Senden von 4
Bytes
WriteFile (hCom, &ucMsg, sizeof (ucMsg), &iBytesWritten, NULL); //
Senden von 4 Bytes
// oder:
//WriteFile (hCom, &ucMsg, 1, &iBytesWritten, NULL); // Senden eines
Bytes
CloseHandle (hCom); // COM1 schließen
return (0);
}
Diese Routine wurde mir in diesem Portal hier Empfohlen. Es
funktioniert gut, bis es aufeinmal irgendwann aussetzt und der Computer
nichts mehr versendet. Kann es sein, daß es bei mehrfacher versendung
von Daten irgendwelche Verwaltungsprobleme durch Windows von der RS232
Schnittstelle gibt?
David
Ich würde einfach mal hergehen und den hCom den du von CreateFile zurückbekommst auf Gültigkeit prüfen. Sowas sollte eigentlich selbstverständlich sein. Überhaupt bei einer geshareten Resource wie der Seriellen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.