C++ unter Windows und ser. Schnittstelle
Geizhals » Forum » Programmierung » C++ unter Windows und ser. Schnittstelle (4 Beiträge, 207 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Re: C++ unter Windows und ser. Schnittstelle
22.07.2003, 00:14:56
Zum Thema: "Serial Communications in Win32"

zu finden in der MSDN Library:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp

Ich hab damit schon die ersten Erfahrungen gemacht:

Zum öffnen verwendest du z.B.:

HANDLE mComPort = CreateFile ("COM2:", GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);



Port initialisieren/einstellen geht zB. so:


DCB dcb;

memset(&dcb, sizeof(dcb), 0);

dcb.DCBlength = sizeof(dcb);
dcb.BaudRate = CBR_9600;
dcb.fBinary = TRUE;
dcb.fParity = TRUE; // enable parity checking
dcb.fOutxCtsFlow = FALSE; // CTS output flow control
dcb.fOutxDsrFlow = FALSE; // DSR output flow control
dcb.fDtrControl = DTR_CONTROL_ENABLE;   // DTR flow control type
dcb.fDsrSensitivity = FALSE; // DSR sensitivity
dcb.fTXContinueOnXoff = FALSE; // XOFF continues Tx
dcb.fOutX = FALSE; // XON/XOFF out flow control
dcb.fInX = FALSE; // XON/XOFF in flow control
dcb.fErrorChar = FALSE;     // enable error replacement
dcb.fNull = NULL; // enable null stripping
dcb.fRtsControl = RTS_CONTROL_ENABLE;    // RTS flow control
dcb.fAbortOnError = FALSE; // abort on error
dcb.fDummy2 = 0; // reserved
dcb.wReserved = 0; // not currently used
dcb.XonLim = 0;             // transmit XON threshold
dcb.XoffLim =0;            // transmit XOFF threshold
dcb.ByteSize = 8;           // number of bits/byte, 4-8
    dcb.Parity = NOPARITY;                  // 0-4=no,odd,even,mark,space
dcb.StopBits = ONESTOPBIT;           // 0,1,2 = 1, 1.5, 2
dcb.XonChar = 0;            // Tx and Rx XON character
dcb.XoffChar = NULL;           // Tx and Rx XOFF character
dcb.ErrorChar = 0;          // error replacement character
dcb.EofChar = 0;            // end of input character
dcb.EvtChar = 0;            // received event character
dcb.wReserved1 =0;         // reserved; do not use

BOOL succ= SetCommState(mComPort, &dcb);



Rausschreiben von Daten kann man so machen:

ULONG writtenBytes;

WriteFile(mComPort, "Hallo", 1, &writtenBytes, NULL);

(hierbei wird "Hallo" an die Schnittstelle geschickt)


Zum schliessen des Ports sollte man:

CloseHandle(mComPort);

...verwenden.


Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung