串口DCB结构详解
成员 |
说明 |
|
DCBlength |
DCB结构大小,即sizeof (DCB),在调用SetConmState来更新DCB前必须作设置 |
|
BaudRate |
指定当前采用的波特率,应与所连接的通讯设备相匹配 |
|
fBinary |
指定是否允许二进制模式。Win32 API不支持非二进制模式传输,应设置为true |
|
fParity |
指定奇偶校验是否允许,在为true时具体采用何种校验看Parity设置 |
|
Parity |
指定端口数据传输的校验方法。以下是可取值及其意义: |
|
取值 |
意义 |
|
EVENPARITY |
偶校验(2) |
|
MARKPARITY |
标记校验,所发信息帧第9位恒为1 (3) |
|
N0PARITY |
无校验(0) |
|
ODDPARITY |
奇校验(1) |
|
StopBits |
指定端口当前使用的停止位数,可取值: |
|
取值 |
意义 |
|
0NEST0PBIT |
1停止位(0) |
|
0NE5ST0PBITS |
1.5停止位(1) |
|
TW0ST0PBITS |
2停止位(2) |
|
fErrorChar |
该值为TRUE,则用ErrorChar指定的字符代替奇偶校验错误的接收字符 |
|
ErrorChar |
指定ErrorChar字符(代替接收到的奇偶校验发生错误时的字节) |
|
EvtChar |
当接收到此字符时,会产生一个EV_RXFLAG事件,如果用SetCommMask函数中指定了 EV_RXFLAG,则可用WaitCommEvent来监测该事件 |
|
EofChar |
指定用于标示数据结束的字符 |
|
fNull |
为TRUE时,接收时自动去掉空(0值)字节 |
|
fAbortOnError |
读写操作发生错误时是否取消操作。若设置为true,则当发生读写错误时,将取消 所有读写操作(错误状态置为ERR0R_I0_AB0RTm)),直到调用ClearConmError函数 后才能重新进行通讯操作 |
|
fOutxCtsFlow |
是否监控CTS(clear-to-send)信号来做输出流控。当设置为true时: 若CTS为低电平,则数据发送将被挂起,直至CTS变为高。 CTS的信号一般由DCE (通常是一个Modem)来控制,而DTE (通常是计算机)发送数 据时监测CTS信号。也就是说DCE通过把CTS置高来表明自己可以接收数据了 |
|
fRtsControl |
设置 RTS (reciiiest-to-send)流控,若为 0 则缺省取值 RTS_CONTROL_HANDSHAKE。以 下是可取值及其意义: |
|
取值 |
意义 |
|
RTS_CONTROL_DISABLE |
打开设备时置RTS信号为低电平,应用程序可通过调用 EscapeCoranFunction函数来改变RTS线电平状态 |
|
RTS_CONTROL_ENABLE |
打开设备时置RTS信号为高电平,应用程序可通过调用 EscapeCoranFunction函数来改变RTS线电平状态 |
|
RTS_CONTROL_HANDSHAKE |
允许RTS信号握手,此时应用程序不能调用 EscapeCoranFunction函数。当输入缓冲区己经有足够空间 接收数据时,驱动程序置RTS为高以便允许DCE来发送; 1之置RTS为低以阻止DCE发送数据。 |
|
RTS_C0NTR0L_T0GGLE |
有字节要发送时RTS变高,当所有缓冲字节己经被发送完 毕后,RTS变低。此时应用程序不能调用 EscapeCoranFunction函数。该值在Windows 95系统被忽略 |
|
fOutxDsrFlow |
是否监控DSR (data-set-ready)信号来做输出流控。当设置为true时: 若DSR为低电平,则数据发送将被挂起,直至DSR变为高。DSR的信号一般由DCE来 控制 |
|
fDtrControl |
DTR (data-terminal-ready)流控,可取值如下: |
|
取值 |
意义 |
|
DTR_CONTROL_DISABLE |
打开设备时置DTR信号为低电平,应用程序可通过调用 EscapeCoranFunction函数来改变DTR线电平状态 |
|
DTR_CONTROL_ENABLE |
打开设备时置DTR信号为高电平,应用程序可通过调用 EscapeCoranFunction函数来改变DTR线电平状态 |
|
DTR_CONTROL_HANDSHAKE |
允许DTR信号握手,此时应用程序不能调用 EscapeCoranFunction 函数 |
|
fDsrSensitivity i 1 |
通讯设备是否对DSR信号敏感。若设置为TRUE,则当DSR为低时将会忽略所有接收 亟字节 |
|
fTXCont inueOnXoff |
当输入缓冲区满且驱动程序己发出XOFF字符时,是否停止发送。当为TRUE时,X0FF 被发送后发送仍然会继续;为FALSE时,发送停止,直至输入缓冲区有XonLim字节 的空余空间、驱动程序己发送X0N字符之后发送继续。 |
|
fOutX |
X0N/X0FF流量控制在发送时是否可用。如果为TRUE,当X0FF值被收到的时候,发 送停止;当X0N值被收到的时候,发送继续 |
|
flnX |
X0N/X0FF流量控制在接收时是否可用。如果为TRUE,当输入缓冲区己接收满 XoffLim字节时,发送X0FF字符;当输入缓冲区己经有XonLim字节的空余容量时, 发送X0N字符 |
|
XonLim |
在X0N字符发送前接收缓冲区内可允许的最小字节数 |
|
XoffLim |
在X0FF字符发送前接收缓冲区内可允许的最大字节数 |
|
XonChar |
指定X0N字符 |
|
XoffChar |
指定X0FF字符 |
|
fDummy2 |
保留,未启用 |
|
wReserved |
未启用,i须设置为0 |
|
wReservedl |
保留,未启用 |