mscomm32控件属性

  • 格式:doc
  • 大小:32.00 KB
  • 文档页数:3

---- 1、 常用属性 CommPort:设置或返回串行端口号,缺省为1。

Setting:设置或返回串行端的波特率、奇偶校验位、 数据位数、停止位。缺省值为"9600,N,8,1"。

PortOpen:设置它为True则打开端口,设置它为False则关闭端口。

InBufferSize:设置或返回接收缓冲区的大小,缺省为1024 字 节。

InBufferCount:返回接收缓冲区内的等代读取的字节个数,设属性为0清除接收缓冲区。

OutBufferSize:设置或返回发送缓冲区,缺省为512字节。

OutBufferCounter:返回发送缓冲区内等待发送的字符数,可用0来清空缓冲区。

Output:向发送缓冲区传送数据

RThreshold: 该属性确定当接收缓冲区内字节个数达或超过该值后就产生代码为ComEventReceive

的OnComm事件,设置位0,则不产生OnComm事件。

CommEvent:有通讯错误或事件发生时产生OnComm事件,CommEvent事件的值可以用来确定引

发OnComm事件的具体的错误或事件常用的有以下几种(更详细的资料可参考MSComm控件帮助文件)

ComEventbreak:接受到中断信号

ComEventFrame:硬件检测到帧错误。

ComEventRxOver:接收缓冲区溢出。

ComEventTxFull:发送缓冲区溢出。

ComEventReceive:接受到规定的字符数。

InputLen:设置或返回接收缓冲区内用Input读入的个数。若取0,则读取整个缓冲区的内容。

Input:返回并删除接受缓冲区的数据。

---- 2、 示例:

---- 下面举一接收程序示例:制作一通讯接收窗口,选择菜单Controls→OLE→Insert Control→Microsoft

Communications Control,

---- 在窗口中出现通信控件图标单击鼠标右键,选择OCX Properties设置常用属性,也可在程序中进行设置

窗口的Open事件程序如下

ole_mPort=2

ole_1.object.Settings="9600,N,8,1"

ole_1.object.PortOpen=ture

ole_1.object.Rthreshold=10

ole_1.object..Inputlen=0 . .

通信控件的oncomm事件的程序如下

choose case ole_mEvent

case comEventBreak //接收到中断信号

case comEventCDTO //处理CD超时

. . .

case comEvReceive sle_1.text=ole_1.object.Input

. .

end choose

利用Microsoft公司提供的通讯控件

利用Microsoft公司提供的通讯控件(Mscomm.vbx,用于16位通讯程序、Mscomm32.ocx用于开发32位通讯程序)可方便实现串口通讯。

1、常用属性

CommPort:设置或返回串行端口号,缺省为1。

Setting:设置或返回串行端的波特率、奇偶校验位、数据位数、停止位。缺省值为"9600,N,8,1"。

PortOpen:设置它为True则打开端口,设置它为False则关闭端口。

InBufferSize:设置或返回接收缓冲区的大小,缺省为1024 字 节。

InBufferCount:返回接收缓冲区内的等代读取的字节个数,设属性为0清除接收缓冲区。

OutBufferSize:设置或返回发送缓冲区,缺省为512字节。

OutBufferCounter:返回发送缓冲区内等待发送的字符数,可用0来清空缓冲区。

Output:向发送缓冲区传送数据

RThreshold: 该属性确定当接收缓冲区内字节个数达或超过该值后就产生代码为ComEventReceive的OnComm事件,设置位0,则不产生OnComm事件。

CommEvent:有通讯错误或事件发生时产生OnComm事件,CommEvent事件的值可以用来确定引发OnComm事件的具体的错误或事件常用的有以下几种(更详

细的资料可参考MSComm控件帮助文件)

ComEventbreak:接受到中断信号

ComEventFrame:硬件检测到帧错误。

ComEventRxOver:接收缓冲区溢出。

ComEventTxFull:发送缓冲区溢出。

ComEventReceive:接受到规定的字符数。

InputLen:设置或返回接收缓冲区内用Input读入的个数。若取0,则读取整个缓冲区的内容。

Input:返回并删除接受缓冲区的数据。

2、 示例:

下面举一接收程序示例:制作一通讯接收窗口,选择菜单Controls→OLE→Insert Control→Microsoft Communications Control,在窗口中出现通信控件图标单击鼠标右键,选择OCX Properties设置常用属性,也可在程序中进行设置窗口的Open事件程序如下

ole_mPort=2

ole_1.object.Settings="9600,N,8,1"

ole_1.object.PortOpen=ture

ole_1.object.Rthreshold=10

ole_1.object..Inputlen=0

.

.

通信控件的oncomm事件的程序如下

choose case ole_mEvent

case comEventBreak //接收到中断信号 case comEventCDTO //处理CD超时

.

.

.

case comEvReceive

sle_1.text=ole_1.object.Input

.

.

end choose

以上是一个基本的例子,在实际应用过程中应根据不同的情况进行不同的设计,如波特率、帧格式等。

总之,利用以上方法可以方便的在PowerBuilder中进行串口通讯,并对接收的数据利用PowerBuilder进行数据处理。

一。设置和打开

mPort = 1 -----设置通讯用串口为1号串口

MSComm1.Settings = "9600,n,8,1" -----设置频率,校验位等信息

MSComm1.InputMode = comInputModeBinary ------输入类型为2进制

MSComm1.PortOpen = True ------打开串口

二。关闭

MSComm.PortOpen = False

三。发送数据

Dim outbte(0) As Byte ----二进制数组

outbte(0) = &H8 ----十六进制的8

MSComm1.OutBufferCount = 0 -----手动清一下缓存

MSComm1.Output = outbte ------发送数组

四。接收一组数

Dim i as integer

Dim j as integer

Dim inbte As Variant

Dim temp_votage(5) ----每组5个数

inbte = MSComm1.Input

j=1

For i = LBound(inbte) To UBound(inbte)

temp_votage(j) = inbte(i)

j=j+1

Next i