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.