当前位置:文档之家› VB6.0下MSComm控件实现串口通信

VB6.0下MSComm控件实现串口通信

VB6.0下用MSComm控件实现串口通信MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能,以下先对其属性进行详细的说明后再举一个例子进行说明:1基本属性CommPortO mPort[=value]Object为MSComm控件,value为整数值,标志端口号。

说明:该属性设置并返回通讯端口号,value的值可以设为1-16间的任意数(默认为1)。

在打开端口之前必须先设置CommPort属性,当端口不存在时,如果用PortOpen属性打开它,MSComm控件会产生错误68(即设备无效的错误)。

SettingsObjiect.Setting[=value]Object为MSComm控件,value为字符串类型,表示通讯端口的设置值。

说明:本属性用来设置并返回端口的波特率、奇偶校验位、数据位和停止位参数。

当端口打开时,如果指定的value参数非法,则MSComm控件产生380号(非法属性值)错误。

有效的value参数值由四个设置值组成,有如下格式:“BBBB,P,D,S”,其中BBBB为波特率,P为奇偶校验,D为数据位数,S为停止位数。

Value的默认值为:“9600,N,8,1”,下面给出合法的波特率、奇偶校验位、数据位和停止位参数:波特率:110,300,600,1200,2400,4800,9600(默认),14400,19200,28800,38400,56000,57600,115200,128000,256000。

奇偶校验值:E(偶校验,Even)、M(标记,Mark)、N(默认,Default,None)、O(奇校验,Odd)、S(空格,Space)。

数据位值:4,5,6,7,8(默认),9。

停止位值:1(默认),1.5,2。

PortOpenO bject.PortOpen[=value]Object为MSComm控件。

Value为布尔类型,表明通讯端口的状态。

说明:本属性用来设置或返回通讯端口的状态(开或关)。

在设计时本属性无效。

设置PortOpen属性为True时端口将会被打开。

设置为False时将关闭端口并清除接收和传输缓冲区中的数据。

当应用程序终止时,SMComm控件自动关闭串行端口。

在打开端口之前,必须给CommPort属性设置一个合法的端口号。

如果CommPort属性被设置成一个非法的端口号,则在打开端口时,MSComm控件将产生错误码为68(表示设备无效)的错误。

另外,串行端口设备必须支持Settings属性的当前设置值。

如果Settings属性包含硬件不支持的通讯设置值,则硬件可能不会正常工作。

如果在端口打开之前,DTREnable 或RTSEnable属性被设置为True,则在关闭总线时,这些属性将被设置为False。

否则DTR 和RTS线仍将保持其先前的状态。

InputObject.InputObject为MSComm控件。

说明:本属性用来返回并删除接收缓存区中的数据流。

在设计时本属性无效;在运行时为只读属性。

InputLen属性用来确定被Input属性读取的字符数。

如要InputLen属性值设为0,则Input 属性将读取缓冲区中的所有数据。

InputMode属性确定用Input属性读取的数据类型。

如果InputMode属性设置为comInputModeText,则Input属性将会通过一个Variant类型值返回文本数据。

如果设置为InputModeBinary,则Input属性将通过一个Variant类型返回一个二进制数据的数组。

InputLenObject.InputLen[=value]Object为MSComm控件。

Value为整数类型。

表示Input属性从接收缓冲区读取的字符数。

说明:本属性用来设置并返回Input属性从接收缓冲区读取的字符数。

本属性的默认值是0.当InputLen属性值为0时,使用Input属性将使MSComm控件读取缓冲区中的全部内容。

若接收缓冲区中InputLen属性值表示字符无效,InputLen将会返回一个0长度的字符串(””)。

在使用Input属性之前,用户可以选择检查InBufferCount属性来确定缓冲区中是否已有需要数目的字符。

本属性在输出格式为定长数据的机器读取时非常有用。

InputModeO bject.InputMode[=value]Object为MSComm控件。

Value为整数类型,表示输入模式。

说明:本属性用来设置或返回Input属性取回的数据的类型。

InputMode属性用来确定Input属性如何取回数据。

数据取回的格式或是字符串或是一个二进制数组。

若数据只用ASSIC字符集,则用comInputModeText设置。

对其它字符数据,如数据中嵌有控制字符、Nulls等,则使用comInputModeBinary设置。

InBufferSizeObject.InBufferSize[=value]Object为MSComm控件。

Value为整数类型,表示接收缓冲区的字节数。

说明:本属性用来设置并返回接收缓冲区中的字节数。

InBufferSize属性是指整个接收缓冲区的大小。

默认值是1024字节。

不要将本属性与InBufferCount混淆,InBufferCount属性返回的是当前在接收缓冲区中等待的字符数。

注意:接收缓冲区越大则应用程序可用的内存越小。

但若接收缓冲区太小,若不使用联络协议,就有可能溢出。

一般的规律是,首先设置一个1024字节的缓冲区。

如果出现溢出错误,则通过增加缓冲区的大小来控制应用程序的传输速率。

InBufferCountObject.InBufferCount[=value]Object为MSComm控件。

Value为整数类型,表明在接收缓冲区中等待的字符数。

在设计时本属性无效。

说明:本属性用来返回接收缓冲区中等待的字符数。

在设计时本属性无效。

InBufferCount属性指调制解调器已接收,并在接收缓冲区中等待被取走的字符数。

可以把InBufferCount属性设为0来清除接收缓冲区。

注意:不要把本属性与InBufferSize属性混淆。

InBufferSize属性用来返回整个接收缓冲区的大小。

OutBufferCountObject.OutBufferCount[=value]Object为MSComm控件。

Value为整数类型,设定用于在传输缓冲区中等待的字符数。

说明:本属性用来返回在传输缓冲区中等待的字符数,也可以使用本属性来清除传输缓冲区。

在设计时本属性无效。

将OutBufferCount设为0时可以清除传输缓冲区。

注意:不要把OutBufferCount和OutBufferSize属性混淆,OutBufferSize属性的作用是返回整个传输缓冲区的大小。

OutBufferSizeObject.OutBufferSize[=value]Object为MSComm控件。

Value为整数类型,指定传输缓冲区的大小。

说明:本属性可以以字节的形式来设置并返回传输缓冲区的大小。

OutBufferSize属性用来指定整个传输缓冲区的大小,默认值为512字节。

不要把本属性与OutBufferCount属性混淆,OutBufferCount属性用来返回当前在传输缓冲区中等待的字符数。

注意:传输缓冲区越大,应用程序可用的内存越小。

但若传输缓冲区太小,若不使用握手协议,就可能有溢出的危险。

一般来说,可以设置一个512字节的缓冲区。

如果出现溢出错误,则可以通过增加传输缓冲区大小来控制应用程序的传输速率。

SThresholdObject.SThreshold[=value]Object是MSComm控件。

Value是整数类型,表示在OnComm事件产生之前在传输缓冲区中的最小字符数。

说明:本属性用来在MSComm控件将CommEvent属性设置为comEvSend并产生OnComm事件之前,设置并返回传输缓冲区中允许的最小字符数。

若Sthreshold属性设置为0(默认值),则表示数据传输事件不会产生OnComm事件。

若Sthreshold属性设置为1,则当传输缓冲区为空时由MSComm控件产生OnComm事件。

发果在传输缓冲区中的字符数小于value参数指定的数值,则CommEvent属性将被设置为comEvSent,并产生OnComm事件。

comEvSend事件仅当字符数与Sthreshold属性设置值交叉时被激活一次。

例如,如果将Sthreshold属性设置为5,则只有当在传输队列中字符数从5降到4时,comEvSend才会发生一次。

如果在输出队列中从没有比Sthreshold属性值更多的字符,comEvSend事件将不会发生。

RThresholdObject.RThreshold[=value]Object为MSComm控件。

Value为整数类型,表示在产生OnComm事件之前需要接收的字符数。

说明:本属性用在MSComm控件将CommEvent属性设置为comEvReceive,并产生OnComm事件之前,设置并返回需要接收的字符数。

当接收字符后,若RThreshold属性被设置为0(默认值)则表示将不产生OnComm事件。

例如,将RThreshold属性值设置为1将表示接收缓冲区收到每一人字符都会使MSComm控件产生OnComm事件。

RTSEnableObject.RTSEnable[=value]Object为MSComm控件。

Value为布尔类型,表有Request To Send(RTS)线是否有效。

说明:本属性用来设置一个确定是否使Request To Send(RTS)线有效的布尔类型值。

一般情况下,由计算机发送Request To Send信号到联接的调制解调器,以请示是否允许发送数据。

如果RTSEnable属性设置为True,当端口打开时,Request To Send线被设置为高电平,当端口关闭时,该线被设置为低电平。

Request To Send线的作用是为RTS/CTS硬件进行握手。

RTSEnable属性允许手动检测Request To Send线,以确定其是否处于有效状态。

其值为True表示Request To Send线有效,为False表示无效。

DTREnableObject.DTREnable[=value]Object为MSComm控件。

Value为布尔类型,表示是否设置Data Terminal Ready(DTR)线有效。

说明:本属性用来确定在通信时是否使Data Terminal Ready(DTR)线有效。

Data Terminal Ready是由计算机发送到调制解调器的信号,指示计算机在等待接受传输。

相关主题