串口编程DCB结构体参数配置详细说明_第1页
串口编程DCB结构体参数配置详细说明_第2页
串口编程DCB结构体参数配置详细说明_第3页
串口编程DCB结构体参数配置详细说明_第4页
串口编程DCB结构体参数配置详细说明_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DWORD DCBlengthSizeof(DCB)DWORD BaudRateCurrent baud rate指定当前波特率DWORD fbinary : 1;Binary mode,no EOF check二进制模式指定是否允许WIN95为TRUEDWORD f parity : 1;Enable parity checking指定是否允许奇偶校验DWORD fOutxCtsFlow:1CTS输出流控制指定CTS是否用于检测传输控制。如果为TRUE,则CTS为/OFF,传输中止。(明确发送)DWORD fOutxDsrFlow:1Dsr输出流控制指定CTS是否用于检测传输控制。(数据就绪)如果CTS关闭,传输将中止。DWORD fDtrControl:2DTR flow control type/DTR_CONTROL_DISABLE值将DTR设置为OFF。/DTR_CONTROL_ENABLE值将DTR设置为ON。/DTR_CONTROL_HANDSHAKE允许DTR 握手DWORD fDsrSensitivity:1当DSR sensitivity的值为TRUE时,如果DSR为OFF,则接收的字节将被忽略DWORD fTXContinueOnXoff:1XOFF continues Tx指定当接收缓冲区已满,驱动程序发送XoffChar字符时是否停止发送。如果为TRUE,接收缓冲区接收缓冲区已满的字节XoffLim,驱动程序发送XoffChar字符中断字节,然后发送继续。如果为FALSE,则接收表示缓冲区为空的字节XonChar,发送驱动程序发送的用于恢复的XonChar,然后继续发送。DWORD foutx : 1;XON/XOFF out flow control/如果为TRUE,则在收到XoffChar时停止发送/FALSE,则在收到XonChar后重新启动DWORD finx 3360 1;/XON/XOFF in flow control如果为TRUE,当接收缓冲区收到指示缓冲区已满的XoffLim时,将发送XoffChar当接收到表示接收缓冲区为空的XonLim时,将发送XonChardword ferr : 1;/enable error replacement如果此值为TRUE,fParity为TRUE,则使用ErrorChar成员指定的字符,而不是奇偶校验错误中的接收字符DWORD fnull : 1;/enable null如果为strippingTRUE,则在接收时删除空(0值)字节DWORD fRtsControl:2RTS flow controlDWORD fAbortOnError:1如果Abort reads/writes on errorTRUE出错,则停止读写操作如果RTS_CONTROL_DISABLE,则RTS设置为OFFRTS_CONTROL_ENABLE将RTS设置为ONRTS_CONTROL_HANDSHAKE时,如果接收缓冲区小于一半,则RTS为ON如果接收缓冲区超过四分之三,RTS将关闭如果是RTS_CONTROL_TOGGLE,如果接收缓冲区中还有剩馀字节,则RTS为ON,否则默认值为OFFDWORD fDummy2:17未使用ReservedWORD wReservedNot currently used已过时,必须为零WORD XonLim/transmit XON threshold指定发送XON字符之前接收缓冲区中允许的最小字节数WORD XoffLim/transmit XOFF threshold指定发送XOFF字符之前接收缓冲区中允许的最小字节数BYTE ByteSizeNumber of bits/byte,4-8指定端口当前使用的数据位BYTE Parity/0-4=no、odd、even、mark、space指定当前端口使用的奇偶校验方法。可以是:Even parity、mark parity、no parity、odd parityBYTE StopBits0,1,2=1、1.5、2指定当前端口使用的停止位数,可以是:One stop bit、one 5 stop bits、two stop bitsChar XonChar/Tx and Rx XON character指定用于发送和接收文字XON的值Char XoffCharTx和Rx XOFF character指定用于发送和接收文字XOFF值Char ErrorChar/error replacement character此字符用于在收到的奇偶校验出错时替换值Char EofChar/end of input character二进制模式未使用时,可以使用此字符指示数据的结尾Char EvtChar/received event character收到字符时生成事件WORD wReserved1/reserved;Do not use未使用这个结构有28个变量,我把它的成员分成了不同的种类。1.串行端口首选项1)DWORDBaudRate;设定波特率。2)byte bytes;设定资料位元。3)dwordfparity :1;如果为TRUE,则支持奇偶校验。4)BYTEParity;设定同位检查位元5)BYTEStopBits;设定停止位元2.流动控制的设定(Flow Control)流控制分为硬件流控制和软件流控制。硬件流控制分为RTS/CTS和DTR/DSR。软件流控制是Xon/Xoff。DTR/DSR硬件流控制:1)dwordfoundtxtrflow :1;如果为TRUE,则支持DSR流控制。如果DSR为OFF,则停止传输。2)dwordtrcontrol :2;DTR设置。(设置高/低.)3)dwordfdsrsensitivity :1;如果为TRUE,当DSR为OFF时,收件人将忽略所有字符。RTS/CTS硬件流控制:4)dwordfoundctsflow :1;如果为TRUE,则支持CTS流控制。如果CTS关闭,则停止传输。5)dwordtsontrol :2;RTS设置。(设置高/低.)Xon/Xoff软件流控制:6)dword fotx :1;发件人支持Xon/Xoff。7)dwordfinx 33601;收件人支持Xon/Xoff。8)WORDXonLim;当Buffer中的字符减少由小XonLim指定的字符数时,将发送Xon字符,让对方继续发送。9)WORDXoffLim;Buffer达到XoffLim指定的字符数后,将发送Xoff字符,以使对方停止传输。10)charXonChar;Xon文字。11)charXoffChar;Xoff文字。12)dwordftxcontinnoveonxoff :1;如果为TRUE,则无论接收方是否为Xoff,本地发射器都将继续发送。(本地发送方和本地接收方Xon/Xoff彼此独立)。如果为False,则接收方buffer到达XoffLim时,发送方在发送Xoff字符后停止发送。3.错误情况处理1)dwordferrorchar :1;如果为TRUE,如果fParity为TRUE,则将Parity Check错误中的字符替换为ErrorChar。2)dwordorton error :1;如果为TRUE,则发生错误时停止读写操作。3)charerror char;Parity Check错误时替换的字符。4.其他参数1)DWORDDCBlength;DCB结构的长度(字节)2)dwordfbinary :1;二进制模式。(必须为1)3)dwordfnl :1;如果为TRUE,接收时删除空字节(0x0)4)charEofChar;EOF通配符5)charevt char;事件触发器字符6)dwordummy 2336017;保留7)WORDwReserved;保留8)wordwreserved 1;保留在WIN32 API编程中,除了DCB结构外,还必须了解COMMTIMEOUTS结构。此结构设置为读取和写入串行端口超时。COMMTIMEOUTS结构如下:Typedef struct _ commtimeoutsDWORD ReadIntervalTimeout/设置相邻连字符之间的超时dword readtotaltimeoutmultiplier;/读取操作的总超时系数DWORD ReadTotalTimeoutConstant/读取作业总逾时持续时间的修改常数dword writetotaltimeoutmultiplier;/写入操作的总超时系数DWORD WriteTotalTimeoutConstant;/写入操作总超时时间的修改常数 COMMTIMEOUTS,* LPCOMMTIMEOUTSReadIntervalTimeout:两个相邻字符之间的最大延迟时间。读取串行数据时,如果两个字符发送的时间超过该时间,则读取函数将返回现有数据。设定为0时,参数不起作用。ReadTotalTimeoutMultiplier:读取操作的总超时事件的因子。不能单独使用此变量。与ReadTotalTimeoutConstant配合使用才有效。ReadTotalTimeoutConstant:读取作业总逾时期间的修改常数。此变量也不能单独使用。与ReadTotalTimeoutMultiplier配合使用才有效。WriteTotalTimeoutMultiplier:总写入操作的超时事件的因子。不能单独使用此变量。与WriteTotalTimeoutConstant配合使用才有效。WriteTotalTimeoutConstant:写入操作总超时时间的修改常量。此变量也不能单独使用。与WriteTotalTimeoutMultiplier一起使用时才有效果。整个串行端口的读写操作有两种超时设置。一个是间隔超时,另一个是总超时。这两个超时是独立存在的,不会相互影响。时间间隔超时,仅存在于读取操作中。ReadIntervalTimeout。如果读取操作的前后两个字符之间的时间间隔超过,则读取操作结束。例如,一次可以读取8个字符,但是在读取第一个字符后读取第二个字符时,如果间隔超时,则读取操作结束,因此整个操作只读取一个字节。即使你的总时间没有超时。另一个超时是总超时。这里是公式。总读/写超时=read(write)totaltimeoutmultiplierx要读/写的字节数read(write)totaltimeoutconstant。这里要说明的一点是要读和写的字节数来自哪里。这在ReadFile或WriteFile函数中定义。在读取操作中,如果当前消耗的读取时间超过了总超时设置,则读取操作将终止。两个字符之间的间距没有超时。例如,如果读取总计8个字节,则将间隔设置为8ms,将总超时系数设置为3ms,将总超时常数设置为3ms。总超时时间为3 * 8 3=27毫秒。每个字符以7毫秒的间隔读取,共可读取4个字符。就这样结束了。这是因为读取第5个字符需要超过总超时时间的35毫秒。以下说明这些参数的设定。如果将ReadIntervalTimeout设置为MAXDWORD,将ReadTota

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论