VB串口控件使用攻略

上传人:ni****g 文档编号:389593868 上传时间:2023-10-25 格式:DOCX 页数:6 大小:17.82KB
返回 下载 相关 举报
VB串口控件使用攻略_第1页
第1页 / 共6页
VB串口控件使用攻略_第2页
第2页 / 共6页
VB串口控件使用攻略_第3页
第3页 / 共6页
VB串口控件使用攻略_第4页
第4页 / 共6页
VB串口控件使用攻略_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《VB串口控件使用攻略》由会员分享,可在线阅读,更多相关《VB串口控件使用攻略(6页珍藏版)》请在金锄头文库上搜索。

1、目次MSComm控件两种处理通讯的方式CommPort 属性RThreshold 属性CTSHolding 属性SThreshold 属性CDHolding 属性 DSRHolding 属性Settings 属性InputLen 属性EOFEnable 属性Handshake 常数OnComm 常数InputMode 常数错误消息MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口 编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可 使用。 Microsoft Communications Cont

2、rol (以下简称 MSComm)是 Microsoft 公司提供的简化 Windows 下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说, 它提供了两种处理通信问题的方法:一是事件驱动(Event driven)方法,一是查询法。1. MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通 知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Reques

3、t To Send (RTS) 线上一 个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通 讯事件。OnComm事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅CommEvent属 性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及 时,可靠性高。每个MSComm控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用 多个 MSComm 控件。1.2 查询方式 查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后, 可以通过

4、检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可 能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为 唯一等待接收的字符是调制解调器的“确定”响应。2. MSComm 控件的常用属性MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。CommPort 设置并返回通讯端口号。Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。Input 从接收缓冲区返回和删除字符。Output 向传输缓冲区写一个字符串。下面分

5、别描述:CommPort属性设置并返回通讯端口号。语法object.CommPortvalue (value 一整型值,说明端口 号。) 说明在设计时,value可以设置成从1到16的任何数(缺省值为1)。但是如果用PortOpen属性打 开一个并不存在的端口时,MSComm控件会产生错误68 (设备无效)。注意:必须在打开端口之前设置 CommPort 属性。RThreshold属性:在MSComm控件设置CommEvent属性为comEvReceive并产生OnComm之前,设置并 返回的要接收的字符数。语法 object.Rthreshold = value (value 整型表达式,说

6、明在产生 OnComm 事件之前要接收的字符数。)说明当接收字符后,若Rthreshold属性设置为0(缺省值)则不产生OnComm 事件。例如,设置 Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。CTSHolding属性:确定是否可通过查询Clear To Send (CTS)线的状态发送数据。Clear To Send是调 制解调器发送到相联计算机的信号,指示传输可以进行。该属性在设计时无效,在运行时为只读。语法:object.CTSHolding (Boolean)Mscomm 控件的 CTSHolding 属性设置值:True

7、 Clear To Send 线 为高电平。False Clear To Send线为低电平。 说明:如果Clear To Send线为低电平(CTSHolding =False)并且超时时,MSComm 控件设置 CommEvent 属性为 comEventCTSTO (Clear To Send Timeout)并 产生 OnComm 事件。Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send)硬件握手。如果 需要确定Clear To Send线的状态,CTSHolding属性给出一种手工查询的方法。详细信息有关握手协议, 请参阅

8、 Handshaking 属性。SThreshold 属性: MSComm 控件设置 CommEvent 属性为 comEvSend 并产生 OnComm 事件之前,设置并返 回传输缓冲区中允许的最小字符数。语法 object.SThreshold = value value 整形表达式,代表在 OnComm 事件产生之前在传输缓冲区中的最小字符数。 说明:若设置 Sthreshold 属性为 0(缺省值), 数据传输事件不会产生OnComm事件。若设置Sthreshold属性为1,当传输缓冲区完全空时,MSComm控 件产生OnComm事件。如果在传输缓冲区中的字符数小于value,Comm

9、Event属性设置为comEvSend,并 产生OnComm事件ocomEvSend事件仅当字符数与Sthreshold交叉时被激活一次。例如,如果Sthreshold 等于5,仅当在输出队列中字符数从5降到4时,comEvSend才发生。如果在输出队列中从没有比 Sthreshold多的字符,comEvSend事件将绝不会发生。Handshake 常数 常数 值 描述 comNone 0 无握手。comXonXoff 1 XOn/Xoff 握手。comRTS 2 Request-to-send/clear-to-send 握手。 comRTSXOnXOff 3 Request-to-send

10、 和 clear-to-send 握手皆可。OnComm 常数 常数 值 描述 comEvSend 1 发送事件。comEvReceive 2 接收事件。comEvCTS 3 clear-to-send 线变化。 comEvDSR 4 data-set ready 线变化。 comEvCD 5 carrier detect 线变化。 comEvRing 6 振铃检测。comEvEOF 7 文件结束。Error 常数常数 值 描述comEventBreak 1001 接收到中断信号comEventCTSTO 1002 Clear-to-send 超时comEventDSRTO 1003 Data

11、-set ready 超时comEventFrame 1004 帧错误 comEventOverrun 1006 端口超速 comEventCDTO 1007 Carrier detect 超时comEventRxOver 1008 接收缓冲区溢出 comEventRxParity 1009 Parity 错误 comEventTxFull 1010 传输缓冲区满 comEventDCB 1011 检索端口设备控制块 (DCB) 时的意外错误InputMode 常数常数 值 描述 comInputModeText 0 (缺省)通过 Input 属性以文本方式取回数据。 comInputMode

12、Binary 1 通过 Input 属性以二进制方式检取回数据。CDHolding属性:通过查询Carrier Detect (CD)线的状态确定当前是否有传输。Carrier Detect是从 调制解调器发送到相联计算机的一个信号,指示调制解调器正在联机。该属性在设计时无效,在运行时为 只读语法 object.CDHolding设置值:CDHolding属性的设置值为:设置 描述True Carrier Detect 线为高电平False Carrier Detect 线为低电平说明:注意当Carrier Detect线为高电平(CDHolding = True)且超时时,MSComm控件设

13、置CommEvent 属性为 comEventCDTO(Carrier Detect 超时错误),并产生 OnComm 事件。注意 在主机应用程序中捕获一个丢失的传输是特别重要的,例如一个公告板,因为呼叫者可以随时挂起(放 弃传输)。Carrier Detect 也被称为 Receive Line Signal Detect (RLSD)。数据类型 BooleanDSRHolding属性:确定Data Set Ready (DSR)线的状态。Data Set Ready信号由调制解调器发送到相 连计算机,指示作好操作准备。该属性在设计时无效,在运行时为只读。语法:object.DSRHoldi

14、ngobject 所在处表示对象表达式,其值是“应用于”列表中的对象。DSRHolding 属性返回以下值:值 描述True Data Set Ready 线高False Data Set Ready 线低说明:当Data Set Ready线为高电平(DSRHolding = True)且超时时,MSComm控件设置CommEvent属 性为comEventDSRTO (数据准备超时)并产生OnComm事件。当为 Data Terminal Equipment (DTE)机器写 Data Set Ready/Data Terminal Ready 握手例程时该属性 是十分有用的。数据类型:B

15、ooleanSettings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数。语法: object.Settings = value说明:当端口打开时,如果 value 非法,则 MSComm 控件产生错误 380(非法属性值)。Value 由四个设置值组成,有如下的格式:BBBB,P,D,SBBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。value的缺省值是:9600,N,8,1InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。语法 object.InputLen = valueInputLen 属性语法包括下列部分:value 整型表达式,说

16、明 Input 属性从接收缓冲区中读取的字符数。说明:InputLen属性的缺省值是0。设置InputLen为0时,使用Input将使MSComm控件读取接收缓 冲区中全部的内容。若接收缓冲区中InputLen字符无效,Input属性返回一个零长度字符串()。在使用Input前,用户 可以选择检查 InBufferCount 属性来确定缓冲区中是否已有需要数目的字符。该属性在从输出格式为定长 数据的机器读取数据时非常有用。EOFEnable 属性:确定在输入过程中 MSComm 控件是否寻找文件结尾 (EOF) 字符。如果找到 EOF 字符, 将停止输入并激活 OnComm 事件,此时 CommEvent 属性设置为 co

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号