Die serielle Schnittstelle hat nicht nur RxD (pin2) und TxD (pin3), sondern auch noch DSR (pin6), DCD (pin1), CTS (pin, RI(pin9) (alles Eingänge) und DTR (pin4), RTS (pin7) (alles Ausgänge). Masse ist Pin 5.
Diese Leitungen dien(t)en der Flußsteuerung mit Modems, Terminals usw.
Die kann man per Software (von 16bit-DOS bis WinXP!) permanet setzten und abfragen. Ohne irgendwelche Verrenkungen mit Treibern und so.
Erforderlich ist nur ein MAX232, wenn man TTL-Pegel (+5V) haben will. Wer mit der Spannung -10V (eingeschaltet) und +10V (ausgeschaltet) bei einer Stromergiebigkeit von ca. 5mA zufrieden ist, kann direkt an die Pins ran.
Unter C lautet der Befehl zum Setzten: EscapeCommFunktion ().
Hier ein kleines Beispiel, wie man über COM 1 das Pin 7 zwei Sekunden einschaltet, 2 Sekunden ausschaltet und danach dauerhaft einschaltet. Nach weiteren 2 Sekunden beendet sich das Programm. Läuft unter allen Microsoft-OS.
Code:
#include <windows.h>
int main (void)
{
HANDLE hPort;
hPort = CreateFile ("COM1",
GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
0,
0);
EscapeCommFunction (hPort, SETRTS); // RTS setzten
Sleep (2000);
EscapeCommFunction (hPort, CLRRTS); // RTS rücksetzten
Sleep (2000);
EscapeCommFunction (hPort, SETRTS); // RTS setzten
Sleep (2000);
CloseHandle (hPort);
return (0);
}
Blackbird
Lesezeichen