您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页C++串口之DCB结构详解

C++串口之DCB结构详解

来源:爱go旅游网
C++串口之DCB结构详解

串口之DCB结构体详解 标签:串口DCB

2015-08-18 09:03 1943人阅读评论(0) 收藏举报 分类:

MFC(16) C++(259)

版权声明:本文为博主原创文章,未经博主允许不得转载。 DCB结构详细说明: typedefstruct _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;

DCBlength DCB结构大小,即sizeof(DCB),在调用SetCommState来更新DCB前必须作设置

BaudRate 指定当前采用的波特率,应与所连接的通讯设备相匹配

fBinary 指定是否允许二进制模式。Win32 API不支持非二进制模式传输,应设置为true

fParity 指定奇偶校验是否允许,在为true时具体采用何种校验看Parity 设置

Parity 指定端口数据传输的校验方法。以下是可取值及其意义: 取值意义

EVENPARITY 偶校验

MARKPARITY 标记校验,所发信息帧第9位恒为1 NOPARITY 无校验 ODDPARITY 奇校验

StopBits指定端口当前使用的停止位数,可取值: 取值意义

ONESTOPBIT 1停止位 ONE5STOPBITS 1.5停止位 TWOSTOPBITS 2停止位

fErrorChar该值为TRUE,则用ErrorChar指定的字符代替奇偶校验错误的接收字符

ErrorChar 指定ErrorChar字符(代替接收到的奇偶校验发生错误时的字节)

EvtChar 当接收到此字符时,会产生一个EV_RXFLAG事件,如果用SetCommMask函数中指定了EV_RXFLAG ,

则可用WaitCommEvent 来监测该事件 EofChar 指定用于标示数据结束的字符

fNull 为TRUE时,接收时自动去掉空(0值)字节

fAbortOnError读写操作发生错误时是否取消操作。若设置为true,则当发生读写错误时,将取消所有读写操作

(错误状态置为ERROR_IO_ABORTED),直到调用ClearCommError函数后才能重新进行通讯操作

fOutxCtsFlow是否监控CTS(clear-to-send)信号来做输出流控。当设置为true 时:

若CTS为低电平,则数据发送将被挂起,直至CTS变为高。 CTS的信号一般由DCE(通常是一个Modem)控制,DTE (通常是计算机)发送数据时监测CTS信号。

也就是说DCE通过把CTS置高来表明自己可以接收数据了 fRtsControl设置RTS (request-to-send)流控,若为0则缺省取 RTS_CONTROL_HANDSHAKE。可取值及其意义: 取值意义

RTS_CONTROL_DISABLE 打开设备时置RTS信号为低电平,应用程序可通过调用

EscapeCommFunction函数来改变RTS线电平状态

RTS_CONTROL_ENABLE 打开设备时置RTS信号为高电平,应用程序可通过调用

EscapeCommFunction函数来改变RTS线电平状态

RTS_CONTROL_HANDSHAKE 允许RTS信号握手,此时应用程序不能调用EscapeCommFunction函数。

当输入缓冲区已经有足够空间接收数据时,驱动程序置RTS 为高以允许

DCE来发送;反之置RTS为低以阻止DCE发送数据。

RTS_CONTROL_TOGGLE 有字节要发送时RTS变高,当所有缓冲字节已被发送完毕后,RTS变低。

fOutxDsrFlow是否监控DSR (data-set-ready) 信号来做输出流控。当设置为true时:

若DSR为低电平,则数据发送将被挂起,直至DSR变为高。DSR的信号一般由DCE来控制

fDtrControl DTR (data-terminal-ready)流控,可取值如下: 取值意义

DTR_CONTROL_DISABLE 打开设备时置DTR信号为低电平,应用程序可通过调用

EscapeCommFunction 函数来改变DTR线电平状态 DTR_CONTROL_ENABLE 打开设备时置DTR信号为高电平, 应用程序可通过调用

EscapeCommFunction 函数来改变DTR线电平状态

DTR_CONTROL_HANDSHAKE 允许DTR信号握手,此时应用程序不能调用EscapeCommFunction函数

fDsrSensitivity 通讯设备是否对DSR信号敏感。若设置为TRUE,则当DSR

为低时将会忽略所有接收的字节

fTXContinueOnXoff当输入缓冲区满且驱动程序已发出XOFF字符时,是否停止

发送。

当为TRUE时,XOFF被发送后发送仍然会继续;为FALSE时,则发送会停止,

直至输入缓冲区有XonLim字节的空余空间、驱动程序已发送XON字符之后发送继续。

fOutX XON/XOFF 流量控制在发送时是否可用。 如果为TRUE, 当 XOFF 值被收到的时候, 发送停止;当 XON 值被收到的时候,发送继续

fInX XON/XOFF 流量控制在接收时是否可用。

如果为TRUE, 当输入缓冲区已接收满XoffLim 字节时,发送XOFF字符;

当输入缓冲区已经有XonLim 字节的空余 容量时,发送XON字符

XonLim 在XON字符发送前接收缓冲区内可允许的最小字 节数

XoffLim 在XOFF字符发送前接收缓冲区内可允许的最大字节数 XonChar 指定XON字符 XoffChar 指定XOFF字符 fDummy2 保留,未启用

wReserved未启用,必须设置为0 wReserved1 保留,未启用

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务