dcb 结构 (winbase.h)

定义串行通信设备的控制设置。

语法

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, *LPDCB;

成员

DCBlength

结构的长度(以字节为单位)。 调用方必须将此成员设置为 sizeof(DCB)

BaudRate

通信设备运行的波特率。 此成员可以是实际的波特率值,也可以是以下索引之一。

含义
CBR_110
110
110 bps
CBR_300
300
300 bps
CBR_600
600
600 bps
CBR_1200
1200
1200 bps
CBR_2400
2400
2400 bps
CBR_4800
4800
4800 bps
CBR_9600
9600
9600 bps
CBR_14400
14400
14400 bps
CBR_19200
19200
19200 bps
CBR_38400
38400
38400 bps
CBR_57600
57600
57600 bps
CBR_115200
115200
115200 bps
CBR_128000
128000
128000 bps
CBR_256000
256000
256000 bps

fBinary

如果此成员为 TRUE,则启用二进制模式。 Windows 不支持非二元模式传输,因此此成员必须为 TRUE

fParity

如果此成员为 TRUE,则执行奇偶校验并报告错误。

fOutxCtsFlow

如果此成员为 TRUE,则监视 CTS (明确发送) 信号以用于输出流控制。 如果此成员为 TRUE 且 CTS 已关闭,则输出将暂停,直到再次发送 CTS。

fOutxDsrFlow

如果此成员为 TRUE,则会监视 DSR (数据集就绪) 信号的输出流控制。 如果此成员为 TRUE 且 DSR 已关闭,则输出将暂停,直到再次发送 DSR。

fDtrControl

DTR (数据终端就绪) 流控制。 此成员可以是以下值之一。

含义
DTR_CONTROL_DISABLE
0x00
打开设备时禁用 DTR 线路,并使其保持禁用状态。
DTR_CONTROL_ENABLE
0x01
在打开设备时启用 DTR 行并将其保留为打开状态。
DTR_CONTROL_HANDSHAKE
0x02
启用 DTR 握手。 如果启用了握手,则应用程序使用 EscapeCommFunction 函数调整行是错误的。

fDsrSensitivity

如果此成员为 TRUE,则通信驱动程序对 DSR 信号的状态敏感。 驱动程序将忽略收到的任何字节,除非 DSR 调制解调器输入线很高。

fTXContinueOnXoff

如果此成员为 TRUE,则传输在输入缓冲区已满的 XoffLim 字节内,驱动程序传输 XoffChar 字符以停止接收字节后继续传输。 如果此成员为 FALSE,则在输入缓冲区为空且驱动程序传输 XonChar 字符以恢复接收之前,传输不会继续。

fOutX

指示传输期间是否使用 XON/XOFF 流控制。 如果此成员为 TRUE,则传输在收到 XoffChar 字符时停止,并在收到 XonChar 字符时再次启动。

fInX

指示是否在接收期间使用 XON/XOFF 流控制。 如果此成员为 TRUE,则当输入缓冲区位于已满的 XoffLim 字节内时发送 XoffChar 字符,当输入缓冲区位于空的 XonLim 字节内时,将发送 XonChar 字符。

fErrorChar

指示是否将收到具有奇偶校验错误的字节替换为 ErrorChar 成员指定的字符。 如果此成员为 TRUEfParity 成员为 TRUE,则会发生替换。

fNull

如果此成员为 TRUE,则接收时将丢弃空字节。

fRtsControl

RTS (请求发送) 流控制。 此成员可以是以下值之一。

含义
RTS_CONTROL_DISABLE
0x00
打开设备时禁用 RTS 线路,使其保持禁用状态。
RTS_CONTROL_ENABLE
0x01
在打开设备时启用 RTS 线,并使其保持打开状态。
RTS_CONTROL_HANDSHAKE
0x02
启用 RTS 握手。 当“预先键入” (输入) 缓冲区小于一半满时,驱动程序将引发 RTS 线;当缓冲区超过四分之三时,驱动程序将降低 RTS 线。 如果启用了握手,则应用程序使用 EscapeCommFunction 函数调整行是错误的。
RTS_CONTROL_TOGGLE
0x03
指定如果字节可用于传输,则 RTS 行将很高。 发送所有缓冲字节后,RTS 行将处于低位。

fAbortOnError

如果此成员为 TRUE,则发生错误时,驱动程序将终止所有读取和写入操作并处于错误状态。 在应用程序通过调用 ClearCommError 函数确认错误之前,驱动程序不会接受任何进一步的通信操作。

fDummy2

保留值;请勿使用。

wReserved

保留;必须为零。

XonLim

激活流控制以允许发送方传输之前,输入缓冲区中允许使用的最小字节数。 这假定在 fInXfRtsControlfDtrControl 成员中指定了 XON/XOFF、RTS 或 DTR 输入流控制。

XoffLim

激活流控制以禁止发送方之前,输入缓冲区中允许的最小可用字节数。 请注意,发送方可能会在激活流控制信号后传输字符,因此此值不应为零。 这假定在 fInXfRtsControlfDtrControl 成员中指定了 XON/XOFF、RTS 或 DTR 输入流控制。 允许的最大使用字节数是通过从输入缓冲区的大小(以字节为单位)中减去此值来计算的。

ByteSize

传输和接收的字节数。

Parity

要使用的奇偶校验方案。 此成员可以是以下值之一。

含义
EVENPARITY
2
偶数奇偶校验。
MARKPARITY
3
标记奇偶校验。
NOPARITY
0
无奇偶校验。
ODDPARITY
1
奇数奇偶校验。
SPACEPARITY
4
空间奇偶校验。

StopBits

要使用的停止位数。 此成员可以是以下值之一。

含义
ONESTOPBIT
0
1 个停止位。
ONE5STOPBITS
1
1.5 个停止位。
TWOSTOPBITS
2
2 个停止位。

XonChar

传输和接收的 XON 字符的值。

XoffChar

传输和接收的 XOFF 字符的值。

ErrorChar

用于替换收到奇偶校验错误的字节的字符的值。

EofChar

用于向数据结束发出信号的字符的值。

EvtChar

用于向事件发出信号的字符的值。

wReserved1

保留值;请勿使用。

注解

使用 DCB 结构配置 8250 时,以下限制适用于为 ByteSizeStopBits 成员指定的值:

  • 数据位数必须为 5 到 8 位。
  • 使用 5 个数据位和 2 个停止位是无效的组合,因为 6、7 或 8 个数据位具有 1.5 个停止位。

要求

要求
最低受支持的客户端 Windows XP
最低受支持的服务器 Windows Server 2003
标头 winbase.h (包括 Windows.h)

另请参阅

BuildCommDCB

ClearCommError

EscapeCommFunction

GetCommState

SetCommState