串口通訊中的DCB結(jié)構(gòu)
typedef struct _DCB {// dcb
DWORD DCBlength; // sizeof(DCB)
DORD BaudRate; // current baud rate 指定當(dāng)前的波特率
DWORD fBinary: 1; // binary mode, no EOF check 指定是否允許二進(jìn)制模式WIN95中須為TRUE
DWORD fParity: 1; // enable parity checking 指定奇偶校驗(yàn)是否允許
DWORD fOutxCtsFlow:1; // CTS output flow control 指定CTS是否用于檢測(cè)發(fā)送控制。當(dāng)為TRUE是CTS為OFF,發(fā)送將被掛起。
DWORD fOutxDsrFlow:1; // DSR output flow control 指定CTS是否用于檢測(cè)發(fā)送控制。當(dāng)為TRUE是CTS為OFF,發(fā)送將被掛起。
DWORD fDtrControl:2; // DTR flow control type
DTR_CONTROL_DISABLE 值將DTR置為OFF,DTR_CONTROL_ENABLE值將DTR置為ON,
DTR_CONTROL_HANDSHAKE 允許DTR"握手",
DWORD fDsrSensitivity:1;// DSR sensitivity 當(dāng)該值為TRUE時(shí)DSR為OFF時(shí)接收的字節(jié)被忽略
DWORD fTXContinueOnXoff:1; // XOFF continues Tx
指定當(dāng)接收緩沖區(qū)已滿,并且驅(qū)動(dòng)程序已經(jīng)發(fā)送出XoffChar字符時(shí)發(fā)送是否停止。
TRUE時(shí),在接收緩沖區(qū)接收到緩沖區(qū)已滿的字節(jié)XoffLim且驅(qū)動(dòng)程序已經(jīng)發(fā)送出XoffChar字 符中止接收字節(jié)之后,發(fā)送繼續(xù)進(jìn)行。
FALSE時(shí),在接收緩沖區(qū)接收到代表緩沖區(qū)已空的字節(jié)XonChar且驅(qū)動(dòng)程序已經(jīng)發(fā)送出恢復(fù)發(fā)送的XonChar之后,發(fā)送繼續(xù)進(jìn)行。
DWORD fOutX: 1; // XON/XOFF out flow control TRUE時(shí),接收到XoffChar之后便停止發(fā)送接收到XonChar之后將重新開(kāi)始
DWORD fInX: 1; // XON/XOFF in flow control
TRUE時(shí),接收緩沖區(qū)接收到代表緩沖區(qū)滿的XoffLim之后,XoffChar發(fā)送出去接收緩沖區(qū)接收到代表緩沖區(qū)空的XonLim之后,XonChar發(fā)送出去
DWORD fErrorChar: 1; // enable error replacement
該值為TRUE且fParity為TRUE時(shí),用ErrorChar 成員指定的字符代替奇偶校驗(yàn)錯(cuò)誤的接收字符
DWORD fNull: 1; // enable null stripping TRUE時(shí),接收時(shí)去掉空(0值)字節(jié)
DWORD fRtsControl:2; // RTS flow control
DWORD fAbortOnError:1; // abort reads/writes on error TRUE時(shí),有錯(cuò)誤發(fā)生時(shí)中止讀和寫操作RTS_CONTROL_DISABLE時(shí),RTS置為OFFRTS_CONTROL_ENABLE時(shí), RTS置為ON
RTS_CONTROL_HANDSHAKE時(shí),當(dāng)接收緩沖區(qū)小于半滿時(shí)RTS為ON當(dāng)接收緩沖區(qū)超過(guò)四分之三滿時(shí)RTS為OFF
RTS_CONTROL_TOGGLE時(shí),當(dāng)接收緩沖區(qū)仍有剩余字節(jié)時(shí)RTS為ON ,否則缺省為OFF
DWORD fDummy2:17; // reserved 未使用
WORD wReserved; // not currently used 未使用,必須為0
WORD XonLim; // transmit XON threshold 指定在XON字符發(fā)送這前接收緩沖區(qū)中可允許的最小字節(jié)數(shù)
WORD XoffLim; // transmit XOFF threshold 指定在XOFF字符發(fā)送這前接收緩沖區(qū)中可允許的最小字節(jié)數(shù)
BYTE ByteSize; // number of bits/byte, 4-8 指定端口當(dāng)前使用的數(shù)據(jù)位
BYTE Parity; // 0-4=no,odd,even,mark,space 指定端口當(dāng)前使用的奇偶校驗(yàn)方法,可能為:
EVENPARITY,MARKPARITY,NOPARITY,ODDPARITY BYTE
StopBits; 0,1,2 = 1, 1.5, 2 指定端口當(dāng)前使用的停止位數(shù),可能為:
ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITS
char XonChar; // Tx and Rx XON character 指定用于發(fā)送和接收字符XON的值
char XoffChar; // Tx and Rx XOFF character 指定用于發(fā)送和接收字符XOFF值
char ErrorChar; // error replacement character本字符用來(lái)代替接收到的奇偶校驗(yàn)發(fā)生錯(cuò)誤時(shí)的值
char EofChar; // end of input character 當(dāng)沒(méi)有使用二進(jìn)制模式時(shí),本字符可用來(lái)指示數(shù)據(jù)的結(jié)束
char EvtChar; // received event character 當(dāng)接收到此字符時(shí),會(huì)產(chǎn)生一個(gè)事件
WORD wReserved1; // reserved; do not use 未使用
} DCB;