概述
在应用WIN32 API 对串口进行编程时, 必定会使用到DCB 结构. 下面的DCB 结构的一些介绍.
首先是DCB 结构.
typedef
struct
_DCB {
DWORD DCBlength;
DWORD BaudRate;
DWORD fBinary:
1
;
DWORD fParity:
1
;
DWORD fOutxCtsFlow:
1
;
DWORD fOutxDsrFlow:
1
;
DWORD fDtrControl:
2
;
DWORD fDsrSensitivity:
1
;
DWORD fTXContinueOnXoff:
1
;
DWORD fOutX:
1
;
DWORD fInX:
1
;
DWORD fErrorChar:
1
;
DWORD fNull:
1
;
DWORD fRtsControl:
2
;
DWORD fAbortOnError:
1
;
DWORD fDummy2:
17
;
WORD wReserved;
WORD XonLim;
WORD XoffLim;
BYTE ByteSize;
BYTE Parity;
BYTE StopBits;
char
XonChar;
char
XoffChar;
char
ErrorChar;
char
EofChar;
char
EvtChar;
WORD wReserved1;
} DCB;
在这个结构中, 共有28个变量, 我把这些成员归类为几种.
1. 串口的基本设置
1) DWORD BaudRate; 波特率设置。
2) BYTE ByteSize; 数据位设置。
3) DWORD fParity: 1; TRUE时, 支持奇偶检验。
4) BYTE Parity; 奇偶检验位的设置
5) BYTE StopBits; 停止位的设置
2. 流控制(Flow Control) 的设置
流控制分为硬件流控制和软件流控制。 而硬件流控制又分为RTS/CTS和DTR/DSR两种。而软件流控制, 则是Xon/Xoff。
DTR/DSR 硬件流控制:
1) DWORD fOutxDsrFlow:1; TRUE时,支持DSR流控制。 当DSR为OFF时,停止发送。
2) DWORD fDtrControl:2; DTR设置。 (置高/置低...)
3) DWORD fDsrSensitivity:1; TRUE时,当DSR为OFF,则接收端忽略所有字符。
RTS/CTS 硬件流控制:
4) DWORD fOutxCtsFlow:1; TRUE时,支持CTS流控制。 当CTS为OFF时,停止发送。
5) DWORD fRtsControl:2; RTS设置。 (置高/置低...)
Xon/Xoff 软件流控制:
6) DWORD fOutX: 1; 发送端支持Xon/Xoff。
7) DWORD fInX: 1; 接收端支持Xon/Xoff。
8) WORD XonLim; 当接收Buffer中的字符减少小XonLim规定的字符数, 就发送Xon字符,让对方继续发送。
9) WORD XoffLim; 接收Buffer达到XoffLim规定的字符数, 就发送Xoff字符, 让对方停止发送。
10)char XonChar; Xon 字符。
11)char XoffChar; Xoff 字符。
12)DWORD fTXContinueOnXoff:1; TRUE时,不管接收端是否Xoff, 本方发送端持续发送。 (也就是本方的发送端, 与本方接收端Xon/Xoff是相互独立的)。若为False 时,则当接收端buffer 达到XoffLim时,发送端发送完Xoff字符后,就停止发送。
3. Error 情况处理
1) DWORD fErrorChar: 1; TRUE时,若fParity为TRUE, 则用ErrorChar替换Parity Check错误的字符。
2) DWORD fAbortOnError:1; TRUE时,发生错误时停止读写操作。
3) char ErrorChar; Parity Check 错误时,替换的字符。
4. 其他参数
1) DWORD DCBlength; DCB结构的长度(以字节为单位)
2) DWORD fBinary: 1; 二进制模式。(必须为1 )
3) DWORD fNull: 1; TRUE时,接收时去掉空字节(0x0)
4) char EofChar; EOF替代字符
5) char EvtChar; 事件触发字符
6) DWORD fDummy2:17; 保留
7) WORD wReserved; 保留
8) WORD wReserved1; 保留
最后
以上就是活力月饼为你收集整理的串口编程之一: WIN32 API 中串口DCB 结构的介绍的全部内容,希望文章能够帮你解决串口编程之一: WIN32 API 中串口DCB 结构的介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复