ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:23.28KB ,
资源ID:19452616      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19452616.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VC实现串口通信例程文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VC实现串口通信例程文档格式.docx

1、3.设置缓冲区长度:BOOL SetupComm(HANDLE hFile, / handle of communications deviceDWORD dwInQueue, / size of input bufferDWORD dwOutQueue / size of output buffer4.COMMPROP结构:可使用GetCommProperties()取得COMMPROP结构,COMMPROP结构中记载了系统支持的各项设置。typedef struct _COMMPROP / cmmpWORD wPacketLength; / packet size, in bytesWOR

2、D wPacketVersion; / packet versionDWORD dwServiceMask; / services implementedDWORD dwReserved1; / reservedDWORD dwMaxTxQueue; / max Tx bufsize, in bytesDWORD dwMaxRxQueue; / max Rx bufsize, in bytesDWORD dwMaxBaud; / max baud rate, in bpsDWORD dwProvSubType; / specific provider typeDWORD dwProvCapab

3、ilities; / capabilities supportedDWORD dwSettableParams; / changeable parametersDWORD dwSettableBaud; / allowable baud ratesWORD wSettableData; / allowable byte sizesWORD wSettableStopParity; / stop bits/parity allowedDWORD dwCurrentTxQueue; / Tx buffer size, in bytesDWORD dwCurrentRxQueue; / Rx buf

4、fer size, in bytesDWORD dwProvSpec1; / provider-specific dataDWORD dwProvSpec2;WCHAR wcProvChar1; COMMPROP;dwMaxBaud:BAUD_075 75 bpsBAUD_110 110 bpsBAUD_134_5 134.5 bpsBAUD_150 150 bpsBAUD_300 300 bpsBAUD_600 600 bpsBAUD_1200 1200 bpsBAUD_1800 1800 bpsBAUD_2400 2400 bpsBAUD_4800 4800 bpsBAUD_7200 72

5、00 bpsBAUD_9600 9600 bpsBAUD_14400 14400 bpsBAUD_19200 19200 bpsBAUD_38400 38400 bpsBAUD_56K 56K bpsBAUD_57600 57600 bpsBAUD_115200 115200 bpsBAUD_128K 128K bpsBAUD_USER Programmable baud rates availabledwProvSubType:PST_FAX 传真设备PST_LAT LAT协议PST_MODEM 调制解调器设备PST_NETWORK_BRIDGE 未指定的网桥PST_PARALLELPORT

6、 并口PST_RS232 RS-232口PST_RS422 RS-422口PST_RS423 RS-432口PST_RS449 RS-449口PST_SCANNER 扫描仪设备PST_TCPIP_TELNET TCP/IP Telnet协议PST_UNSPECIFIED 未指定PST_X25 X.25标准dwProvCapabilitiesPCF_16BITMODE 支持特殊的16位模式PCF_DTRDSR 支持DTR(数据终端就绪)/DSR(数据设备就绪)PCF_INTTIMEOUTS 支持区间超时PCF_PARITY_CHECK 支持奇偶校验PCF_RLSD 支持RLSD(接收线信号检测)

7、PCF_RTSCTS 支持RTS(请求发送)/CTS(清除发送)PCF_SETXCHAR 支持可设置的XON/XOFFPCF_SPECIALCHARS 支持特殊字符PCF_TOTALTIMEOUTS 支持总(占用时间)超时PCF_XONXOFF 支持XON/XOFF流控制标准RS-232和WINDOW支持除PCF_16BITMODE和PCF_SPECIALCHAR外的所有功能dwSettableParamsSP_BAUD 可配置波特率SP_DATABITS 可配置数据位个数SP_HANDSHAKING 可配置握手(流控制)SP_PARITY 可配置奇偶校验模式SP_PARITY_CHECK 可

8、配置奇偶校验允许/禁止SP_RLSD 可配置RLSD(接收信号检测)SP_STOPBITS 可配置停止位个数标准RS-232和WINDOW支持以上所有功能wSettableDataDATABITS_5 5个数据位DATABITS_6 6个数据位DATABITS_7 7个数据位DATABITS_8 8个数据位DATABITS_16 16个数据位DATABITS_16X 通过串行硬件线路的特殊宽度路径WINDOWS 95支持16的所有设置5.DCB结构:typedef struct _DCB / dcbDWORD DCBlength; / sizeof(DCB)DWORD BaudRate; /

9、current baud rate指定当前的波特率DWORD fBinary: 1; / binary mode, no EOF check指定是否允许二进制模式,WINDOWS 95中必须为TRUEDWORD fParity: / enable parity checking指定奇偶校验是否允许DWORD fOutxCtsFlow:1; / CTS output flow control指定CTS是否用于检测发送控制。当为TRUE是CTS为OFF,发送将被挂起。DWORD fOutxDsrFlow: / DSR output flow controlDWORD fDtrControl:2;

10、/ DTR flow control typeDTR_CONTROL_DISABLE值将DTR置为OFF, DTR_CONTROL_ENABLE值将DTR置为ON, DTR_CONTROL_HANDSHAKE允许DTR握手,DWORD fDsrSensitivity: / DSR sensitivity 当该值为TRUE时DSR为OFF时接收的字节被忽略DWORD fTXContinueOnXoff: / XOFF continues Tx指定当接收缓冲区已满,并且驱动程序已经发送出XoffChar字符时发送是否停止。TRUE时,在接收缓冲区接收到缓冲区已满的字节XoffLim且驱动程序已经发

11、送出XoffChar字符中止接收字节之后,发送继续进行。FALSE时,在接收缓冲区接收到代表缓冲区已空的字节XonChar且驱动程序已经发送出恢复发送的XonChar之后,发送继续进行。DWORD fOutX: / XON/XOFF out flow controlTRUE时,接收到XoffChar之后便停止发送接收到XonChar之后将重新开始DWORD fInX: / XON/XOFF in flow controlTRUE时,接收缓冲区接收到代表缓冲区满的XoffLim之后,XoffChar发送出去接收缓冲区接收到代表缓冲区空的XonLim之后,XonChar发送出去DWORD fErr

12、orChar: / enable error replacement该值为TRUE且fParity为TRUE时,用ErrorChar 成员指定的字符代替奇偶校验错误的接收字符DWORD fNull: / enable null strippingTRUE时,接收时去掉空(0值)字节DWORD fRtsControl: / RTS flow controlRTS_CONTROL_DISABLE时,RTS置为OFFRTS_CONTROL_ENABLE时, RTS置为ONRTS_CONTROL_HANDSHAKE时,当接收缓冲区小于半满时RTS为ON当接收缓冲区超过四分之三满时RTS为OFFRTS_

13、CONTROL_TOGGLE时,当接收缓冲区仍有剩余字节时RTS为ON ,否则缺省为OFFDWORD fAbortOnError: / abort reads/writes on errorTRUE时,有错误发生时中止读和写操作DWORD fDummy2:17;未使用WORD wReserved; / not currently used未使用,必须为0WORD XonLim; / transmit XON threshold指定在XON字符发送这前接收缓冲区中可允许的最小字节数WORD XoffLim; / transmit XOFF threshold指定在XOFF字符发送这前接收缓冲区中

14、可允许的最小字节数BYTE ByteSize; / number of bits/byte, 4-8指定端口当前使用的数据位BYTE Parity; / 0-4=no,odd,even,mark,space指定端口当前使用的奇偶校验方法,可能为:EVENPARITY,MARKPARITY,NOPARITY,ODDPARITYBYTE StopBits; / 0,1,2 = 1, 1.5, 2指定端口当前使用的停止位数,可能为:ONESTOPBIT,ONE5STOPBITS,TWOSTOPBITSchar XonChar; / Tx and Rx XON character指定用于发送和接收字符

15、XON的值char XoffChar; / Tx and 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 未使用 DCB;6.改变

16、端口设置使用如下的两个方法BOOL GetCommState(hComm,&dcb);BOOL SetCommState(hComm,&7.改变普通设置BuildCommDCB(szSettings,&DCB);szSettings的格式:baud parity data stop例: baud=96 parity=n data=8 stop=1简写:96,N,8,1szSettings 的有效值baud:11 or 110 = 110 bps15 or 150 = 150 bps30 or 300 = 300 bps60 or 600 = 600 bps12 or 1200 = 1200 b

17、ps24 or 2400 = 2400 bps48 or 4800 = 4800 bps96 or 9600 = 9600 bps19 or 19200= 19200bpsparity:n=nonee=eveno=oddm=marks=spacedata:5,6,7,8StopBit1,1.5,28.COMMCONFIG结构:typedef struct _COMM_CONFIG DWORD dwSize;WORD wVersion;DCB dcb;DWORD dwProviderSubType;DWORD dwProviderOffset;DWORD dwProviderSize;WCHAR

18、 wcProviderData1; COMMCONFIG, *LPCOMMCONFIG;可方便的使用BOOL CommConfigDialog(LPTSTR lpszName,HWND hWnd,LPCOMMCONFIG lpCC);来设置串行口。9.超时设置:可通过COMMTIMEOUTS结构设置超时,typedef struct _COMMTIMEOUTS DWORD ReadIntervalTimeout;DWORD ReadTotalTimeoutMultiplier;DWORD ReadTotalTimeoutConstant;DWORD WriteTotalTimeoutMulti

19、plier;DWORD WriteTotalTimeoutConstant; COMMTIMEOUTS,*LPCOMMTIMEOUTS;区间超时:(仅对从端口中读取数据有用)它指定在读取两个字符之间要经历的时间总超时: 当读或写特定的字节数需要的总时间超过某一阈值时,超时触发.超时公式:ReadTotalTimeout = (ReadTotalTimeoutMultiplier * bytes_to_read)+ ReadToTaltimeoutConstantWriteTotalTimeout = (WriteTotalTimeoutMuliplier * bytes_to_write)+

20、WritetoTotalTimeoutConstantNOTE:在设置超时时参数0为无限等待,既无超时参数MAXDWORD为立即返回超时设置:GetCommTimeouts(hComm,&timeouts);SetCommTimeouts(hComm,&10.查询方式读写数据例程:COMMTIMEOUTS to;DWORD ReadThread(LPDWORD lpdwParam)BYTE inbuff100;DWORD nBytesRead;if(!(cp.dwProvCapabilities&PCF_INTTIMEOUTS)return 1L;memset(&to,0,sizeof(to)

21、;to.ReadIntervalTimeout = MAXDWORD;to);while(bReading)ReadFile(hComm,inbuff,100,&nBytesRead,NULL)locProcessCommError(GetLastError();elseif(nBytesRead)locProcessBytes(inbuff,nBytesRead);PurgeComm(hComm,PURGE_RXCLEAR);return 0L;PurgeComm()是一个清除函数,它可以中止任何未决的后台读或写,并且可以冲掉I/O缓冲区.BOOL PurgeComm(HANDLE hFil

22、e,DWORD dwFlags);dwFlages的有效值:PURGE_TXABORT: 中止后台写操作PRUGE_RXABORT: 中止后台读操作PRUGE_TXCLEAR: 清除发送缓冲区PRUGE_RXCLEAR: 清除接收缓冲区技巧:可通过ClearCommError()来确定接收缓区中处于等待的字节数。BOOL ClearCommError(HANDLE hFile, / handle to communications deviceLPDWORD lpErrors, / pointer to variable to receive error codesLPCOMSTAT lpSt

23、at / pointer to buffer for communications statusClearCommError()将返回一个COMSTAT结构:typedef struct _COMSTAT / cstDWORD fCtsHold : / Tx waiting for CTS signalDWORD fDsrHold : / Tx waiting for DSR signalDWORD fRlsdHold : / Tx waiting for RLSD signalDWORD fXoffHold : / Tx waiting, XOFF char recdDWORD fXoffS

24、ent : / Tx waiting, XOFF char sentDWORD fEof : / EOF character sentDWORD fTxim : / character waiting for TxDWORD fReserved : 25;DWORD cbInQue; / bytes in input bufferDWORD cbOutQue; / bytes in output buffer COMSTAT, *LPCOMSTAT;其中的cbInQue和cbOutQue中即为缓冲区字节。11.同步I/O读写数据COMMTIOMOUTS to;DWORD nByteRead,dwErrorMask,nToRead;COMSTAT comstat;cp.dwProvCapabilities&PCF_TOTALTIMEOUTS)to.ReadT

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1