Gast
#417574
Hallo zusammen,
Folgendes Problem: Habe eine Routine zum Versenden und Empfangen von
Daten mit einer RS232 Schnittstelle an einem COM-Anschluss welche wie
folgt aussieht:
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);
}
Muß ich falls ich öffters was verschicke das CreateFile und ClosHandle
Ausführen oder kann ich es einmal aufrufen und mehrmals durch WriteFile
und ReadFile Daten Senden und Empfangen und ganz am Schluss des Progrmms
das CLOSE Handle Ausführen?
David