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