Wenn es nur um das Senden geht:
// DOS32-Programm zum Senden eines Bytes über COM1 (9600-8N1)
// OS: W95, W98, W98SE, WinME, WinNT, Win2000, WinXP
// Note: Keine Fehlerbehandlung implementiert!
#include <windows.h>
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
// oder:
WriteFile (hCom, &ucMsg, sizeof (ucMsg), &iBytesWritten, NULL); //
Senden von 4 Bytes
//WriteFile (hCom, &ucMsg, 1, &iBytesWritten, NULL); // Senden eines
Bytes
CloseHandle (hCom); // COM1 schließen
return (0);
}
Empfangen von seriellen Daten ist aber auch nicht sooo schwierig zu
programmieren.
Blackbird