vb的MSCOMM控件

合集下载

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为布尔类型,表明通讯端口的状态。

VB的MSComm控件应用讲义

VB的MSComm控件应用讲义

第12章 VB应用12.1 MSComm控件可以通过它对计算机的RS-23串行通信口进行读写操作1.主要属性设置:(1)CommPort属性:设置通信端口,一般计算机上1-2个RS-232口,由此属性指定使用哪个口,设定其值为1则表示使用1端口。

(2)Settings 属性:默认值“9600,n,8,1”。

9600——波特率n ——效验方式。

“n”不效验8 ——数据位1 ——停止位(3)Sthreshold 属性:设置要返回多少个字符才发生MSComm1_OnComm事件2.两台计算机串行通信的硬件接线A计算机的串口2脚(发送)——B计算机的串口3脚(接收)A计算机的串口3脚(接收)——B计算机的串口2脚(发送)A计算机的串口5脚(地)——B计算机的串口5脚(地)1.读写操作Private Sub Command1_Click() '发送MSComm1.Output = Text1.TextEnd SubPrivate Sub Command2_Click() '清空1Text1.Text = ""End SubPrivate Sub Command3_Click() '发送Text2.Text = MSComm1.InputEnd SubPrivate Sub Command4_Click() '清空2Text2.Text = ""End SubPrivate Sub Form_Load()MSComm1.PortOpen = TrueEnd Sub4.应用MSComm1_OnComm事件自动接收设置Sthreshold 属性为1,当有一个及以上字符进入串行口,发生MSComm1_OnComm事件。

Private Sub MSComm1_OnComm()Text2.Text = Text2.Text + MSComm1.InputEnd Sub。

MSCOMM控件在VB中发送十六进制数据的方法转

MSCOMM控件在VB中发送十六进制数据的方法转

MSCOMM控件在VB中发送十六进制数据的方法<转>一、初始化配置Private Sub Form_Load()'------------------------------------------------------------------------------------- With MSComm1If .PortOpen = True Then.PortOpen = FalseEnd If.CommPort = 4 '使用COM1.Settings = BaudRate & ",n,8,1 " '设置通信口参数.InBufferSize = 1024 '设置MSComm1接收缓冲区为1024字节.OutBufferSize = 1024 '设置MSComm1发送缓冲区为1024字节.InputMode = comInputModeBinary '设置接收数据模式为二进制形式'-----------------------------------------------------------------------------------------------------.InputLen = 0 '设置Input 一次从接收缓冲读取全部字节数.SThreshold = 0 '设置发送完所有产生OnComm事件.InBufferCount = 0 '清除接收缓冲区.OutBufferCount = 0 '清除发送缓冲区.RThreshold = 1 '设置接收一个字节产生OnComm事件' .RTSEnable = True'-----------------------------------------------------------------------------------------------------If Not .PortOpen Then '判断通信口是否打开On Error Resume Next.PortOpen = True '打开通信口If Err Then '错误处理MsgBox "串口被占用或此串口不存在!通信无效!", 16, "错误提示"Exit SubEnd IfEnd IfEnd WithEnd Sub注意:数据收发模式为 .InputMode = comInputModeBinary '设置接收数据模式为二进制形式二、发送一个字节的16进制数据Dim aa(0) As Byteaa(0) = &HAAMSComm1.Output = aa三、接收数据(事件方式)Private Sub MSComm1_OnComm()On Error Resume NextDim inData As String '串口接收的数据Dim InByte() As Byte '定义一个二进制指针放接收到的数据Dim inByte1() As ByteSelect Case mEvent '选择事件Case comEvReceive '接收到字符TimeNum = 4 '-----------------赋值计时常量InByte = MSComm1.Input '数据转移到指针' Serial_Rece_Fg = TrueDim j As LongFor j = 0 To UBound(InByte) '循环到指针上标If InByte(j) = 13 TheninData = inData & vbCr 'LfElseinData = inData & Chr(InByte(j)) '------ascii码显示处理End IfNext jTxt_Rcv.SelText = inData '将刚收到的字符串显示出来inData = ""Txt_Rcv.SelStart = Len(Txt_Rcv.Text) '光标置后Case comEventRxOver '--------------------接收缓冲区满的处理MSComm1.InBufferCount = 0MsgBox "接收缓冲区满了!" '----------发出警告End SelectEnd Sub。

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码

VB控件Mscomm控件与PLC进行RS485(Modbus)通讯源码
'<<算法>>
Dim CRC_2() As Byte
Dim v As Integer
ReDim CRC_2(K)
For v = 0 To K
CRC_2(v) = Val("&H" & Text1(v).Text)
Next
'==================================================================================================
'
'Next
'Label35.Caption = Str(Val(Asc(Mid(tmp, 6, 1))) / 10)
'
'
' tmp = Mid$(tmp, 6, 4)
'
'
' Dim strHex As String
' Dim Hex2Dec As Long
' Dim strTmp As String
'a = 0
'tmp = 0
'
'
'
' Do While Len(tmp) < 8
'
' tmp = tmp + MSComm1.Input
' testNO.Caption = testNO.Caption + " " + Str(Hex(Asc(tmp)))
' a = a + 1
' If a >= 3000 Then

自己用VB编制的上位机(MSComm控件)

自己用VB编制的上位机(MSComm控件)

自己用VB编制的上位机(MSComm控件)本人初学者,许多地方显得粗糙笨拙,但总算是成功了,不过自我感受VB真的很简单,我大致学了两三个星期就可以了。

本文只同向我一样的初学者分享一下经验,毕竟咱不是专业的。

下面开始。

上位机可方便地实现与单片机之间进行信息传递交互,能够更加容易对机械手臂进行控制,实现操作可视化,更加直观,保存重要数据等功能。

我们利用Visual Basic 6.0(以下简称VB)来编制上位机,VB 是一种功能强大、简单易学的程序设计语言。

它不但保留了原先Basic 语言的全部功能,而且还增加了面向对象程序设计功能。

它不仅可以方便快捷地编制适用于数据处理、多媒体等方面的程序,而且利用ActiveX控件MSComm还能十分方便地开发出使用计算机串口的计算机通信程序。

本实验涉及控制六路舵机,所以需要编制上位机实现一次向下位机传输含有六个数据的数组,同时接受来自下位机的数组,并显示。

整个过程可分为如下几个过程:一:VB是面向对象的语言,首先需要绘制程序界面该上位机大致分为左边的功能部分与右边的可视化调节部分。

功能部分有端口选择,用以选择合适的端口进行串口通信,波特率选择,打开与关闭端口,动作设置等。

为了便于布局,应用frame控件建立区域,再将控件拖到frame 区域中,对于功能相同的控件来说,建立控件组的方式会使编程避免重复繁琐,例如HScrollbar控件,先向frame区域内拖入一个HScrollbar控件,再复制,粘贴到frame区域内部,则提示是否建立控件组,点击确定即可。

这样便为后续编程带来很大的方便。

调节部分运用Hscrollbar控件来粗略调节度数,设定按钮与文本框配合来精确调节输出度数。

用右列文本框实时读取舵机当前角度。

用optionbutton控件来选择hscrollbar的步进精度,这里分为0.1度与1度两个不同的选项。

由于一组optionbutton中在程序运行中只能有一个处于选中状态,根据本程序要求,每一横列的两个optionbutton为一组,这样就需要frame控件,在同一个frame区域里的optionbutton默认为一组。

VB6.0环境下利用Mscomm控件实现串行通信

VB6.0环境下利用Mscomm控件实现串行通信

VB6.0环境下利用Mscomm控件实现串行通信Use Mscomm Control Component to Implement Serial Communication under Visual Basic摘要: 本文简要介绍了VB6.0中Mscomm通信控件的属性和使用方法,并结合具体实例给出了基本的通信程序。

主题词:串行通信Visual Basic Mscomm .vbx控件Abstract: This paper briefly introduces the principle and method of Mscomm object of Visual basic 6.0, and with a real example basic program codes are given.Key Words:Serial Communication; Visual Basic; Mscomm .vbx control component随着计算机技术的飞速发展及其广泛应用,远程控制以及数据采集系统多采用上位机和下位机的主从工作方式,由于串行通信具有高效可靠、价格便宜,遵循统一的标准等特点,因而成为主要的通信手段。

微机的分析处理能力较强,有很好的人机界面和大容量的多种存储方式,所以上位机一般采用微机。

而单片机具有价格低,功能强,抗干扰能力好,温限宽和面向控制等特点,所以下位机采用单片机来构成主从式多机工作模式。

在需要对采集的数据进行分析处理或在远程需要对控制对象的控制过程进行统计或有条件控制时,采用数据库访问技术能有效地解决这类问题。

Visual Basic 6.0以其强大的功能、使用简单、能在短时间内开发出高效的通信程序而成为Windows系统开发的主要编程语言。

首先表现在VB可直接使用户自定义控件VBX或OCX文件;其次表现在VB可通过调用动态链接库(DLL,dynamic link library)来加快应用程序关键部分的执行速度。

VB Mscomm控件基本介绍

VB Mscomm控件基本介绍

VB Mscomm控件基本介绍(一)一、MSComm控件的主要属性、事件1、MSComm的属性Commport:设置或返回串口号。

如设成1(默认值),表示对Com1进行操作。

Settings:以字符串的形式设置或返回串口通信参数。

包括串口通讯的比特率,奇偶校验,数据位长度、停止位等。

其默认值是“9600,N,8,1”,表示串口比特率是9600bit/s,不作奇偶校验,8位数据位,1个停止位。

Portopen:设置或返回串口状态。

值为True时打开串口,值为False时关闭串口。

InputMode:设置或返回接收数据的类型。

若值为0,则表示以文本形式读取;值为1,则表示以二进制形式读取。

Inputlen:设置或返回一次从接收缓冲区中读取字节数。

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

InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。

当将其值设为0时,则输入寄存器将被清空。

Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。

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

OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。

当将其值设为0时,则输出寄存器将被清空。

Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。

Rthreshold:该属性为一阀值。

当接收缓冲区中字符数达到该值时,MSComm控件设置Commevent属性为ComEvReceive,并产生OnComm事件。

用户可在OnComm事件处理程序中进行相应处理。

若Rthreshold属性设置为0,则不产生OnComm事件。

例如用户希望接收缓冲区中达到一个字符就接收一个字符,可将Rthreshold设置为1。

这样接收缓冲区中接收到一个字符,就产生一次OnComm事件。

Sthreshold:该属性亦为一阀值。

VB控件MSComm串口通讯实例教程

VB控件MSComm串口通讯实例教程

现有电子秤一台,使用串口与计算机进行通讯。

编写VB程序来访问串口,达到读取电子秤上显示的数据。

该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。

所有字符现有电子秤一台,使用串口与计算机进行通讯。

编写VB程序来访问串口,达到读取电子秤上显示的数据。

该电子秤为BE01型仪表,输出为RS-232C标准接口,波特率为300-9600、偶校验、7个数据位、2个停止位。

所有字符均发送11位ASCII码,一个起始位。

在VB中与串口通讯需要引入控件MSComm串口通讯控件(在Microsoft Comm Control 6.0中)。

具体程序如下:控件简称:MSCDim Out(12) As Byte '接收var中的值Dim var As Variant '接收MSC.input中的数值Dim nRece As Integer '计算MSC.inputbuffer的个数Dim i As Integer, j As Integer '随即变量,计算循环************************************************************************** **Private Sub Form_Load()ClearTextWith MSC.CommPort = 1 '设置Com1为通信端口.Settings = "9600,E,7,2" '设置通信端口参数 9600赫兹、偶校验、7个数据位、2个停止位.(这里需要进一步说明的是:.Setting=”BBBB,P,D,S”。

含义是:B:Baud Rate(波特率);P:Parity(奇偶);D:Data Bit;S:Stop Bit).InBufferSize = 40 '设置缓冲区接收数据为40字节.InputLen = 1 '设置Input一次从接收缓冲读取字节数为1.RThreshold = 1 '设置接收一个字节就产生OnComm事件End WithEnd Sub************************************************************************** **Private Sub ClearText()Text3.Text = ""Text2.Text = "5"Text1.Text = ""End SubPrivate Sub Command1_Click()ClearText' nRece = 0 '计数器清零With MSC.InputMode = comInputModeBinary '设置数据接收模式为二进制形式.InBufferCount = 0 '清除接收缓冲区If Not .PortOpen Then.PortOpen = True '打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnComm()DelayTime ‘用来延续时间ClearTextWith MSCSelect Case .CommEvent '判断通信事件Case comEvReceive: '收到Rthreshold个字节产生的接收事件SwichVar 1If Out(1) = 2 Then '判断是否为数据的开始标志.RThreshold = 0 '关闭OnComm事件接收End IfDoDoEventsLoop Until .InBufferCount >= 3 '循环等待接收缓冲区>=3个字节' nRece = nRece + 1For i = 2 To 12SwichVar iText1.Text = Text1.Text & Chr(Out(i))NextText1.Text = LTrim(Text1.Text)Text2.Text = Text2.Text & CStr(nRece).RThreshold = 1 '打开MSComm事件接收Case Else' .PortOpen = FalseEnd SelectEnd WithEnd Sub************************************************************************** **Private Sub DelayTime()Dim bDT As BooleanDim sPrevious As Single, sLast As SinglebDT = TruesPrevious = Timer (Timer可以计算从子夜到现在所经过的秒数,在Microsoft Windows中,Timer函数可以返回一秒的小数部分)Do While bDTIf Timer - sPrevious >= 0.3 Then bDT = FalseLoopbDT = True(通信传输速率为9600bps,则最快速度1.04ms发送一个字节,仪表每秒发送50帧数据,每帧数据有4个字节,即每秒发送200个字节,平均5.0ms 发送一个字节,连续读取串口数据时要在程序中添加循环等待程序)Private Sub SwichVar(ByVal nNum As Integer)DelayTimevar = Nullvar = MSC.InputOut(nNum) = var(0)End Sub(设置接收数据模式采用二进制形式,即 InputMode=comInputModeBinary,但用Input 属性读取数据时,不能直接赋值给 Byte 类型变量,只能通过先赋值给一个 Variant 类型变量,返回一个二进制数据的数组,再转换保存到Byte类型数变量中。

vb的MSCOMM控件

vb的MSCOMM控件

第 6 章 VB 串口通信程序设计典型实例利用 VB 开发串口通信程序既可以使用 MSComm 控件也可以调用 Windows API 函数实 现。

不过,只要 MSComm 控件可以被选用,我们推荐选择此控件实现,因为 MSComm 控件 的功能和 API 调用一样强,甚至比它还好且使用起来更加简单。

在本章提供的串口通信程序设计中,除了 PC 与 PC 串口通信外,PC 与单片机、PC 与智 能仪表、PC 与 PLC、PC 与 GSM 短信模块等串口通信任务的实现均采用 MSComm 控件。

6.1 PC 与 PC 串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需 3 根线 (发送线、接收线、信号地线)便可实现全双工异步串行通信。

本设计通过两台 PC 串口 3 线连接,介绍了利用 API 函数和 MSComm 控件设计串口通 信程序的方法,包括字符与文件的发送与接收。

6.1.1 PC 与 PC 串口通信程序设计目的(1)掌握 PC 与 PC 串口通信的线路连接方法。

(2)利用 MSComm 控件和 API 函数实现 PC 与 PC 串口通信的程序设计方法。

6.1.2 PC 与 PC 串口通信程序设计用软、硬件本设计用到的硬件和软件清单如表 6-1 所示。

表 6-1 序 1 2 3 号 PC 或 IPC 串口通信线(三线制) Visual Basic 6.0 设计用软、硬件 名 称 数 2 1 1 量6.1.3 PC 与 PC 串口通信程序硬件线路图线路说明,在计算机通电前,按图 6-1 所示将两台 PC 通过串口线连接起来:计算机 A 串口 COM1 端口的 TXD 与计算机 B 串口 COM1 端口的 RXD 相连,计算机 A 串口 COM1 端 口的 RXD 与计算机 B 串口 COM1 端口的 TXD 相连,计算机 A 串口 COM1 端口的 GND 与 计算机 B 串口 COM1 端口的 GND 相连。

Mscomm控件属性、方法及事件

Mscomm控件属性、方法及事件

Mscomm控件1、引用Mscomm控件Mscomm控件不是普通的工具箱控件,在VB中首先要引用Mscomm控件,而后才能使用用它。

引用Mscomm控件很简单:选择“工程”主菜单,在“工程”菜单上选择“部件”命令,弹出如图所示的部件对话框,在控件属性页上选定“Microsoft Comm Control 6.0”控件,单击“确定”按钮后,Mscomm就添加到控件面板上。

2、Mscomm控件信息处理Mscomm控件拥有功能完善的串口数据的发送和接收功能,Mscomm控件提供了两种处理方式。

●事件驱动方式:由Mscomm控件的OnComm事件自动捕获并处理通信错误及事件;●查询方式:通过定时查询Mscomm控件CommEvent属性的值来判断事件和错误。

在PC机串行端口通信时,使用了十几条线进行信号传输。

利用Mscomm控件开发串口通信软件,需了解以下5条线的代号及作用,这5条线的高低电平状态分别对应Mscomm 控件的相应属性的True/False值:●DRT线:用于传输PC机发往串口Modem等设备的信号,该信号表示PC机是否已准备好;●RTS线:用于传输PC机发往串口Modem等设备的信号,该信号表示PC机是否允许Modem发数据;●DSR线:用于传输串口Modem等设备发往PC机的信号,该信号表示串口Modem 等设备是否已做好操作准备;●CTS线:用于传输串口Modem等设备发往PC机的信号,该信号表示Modem是否允许发送数据;●CD线:用于传输串口Modem等设备发往PC机的信号,该信号表示Modem已经和远方的设备建立了连接。

Mscomm控件的通信功能实现,实际上是调用了API函数,而API函数是由Comm.drv 解释并传给设备驱动程序执行的,对于VB程序开发者只需要知道MSComm控件的属性和事件的用法即可以实现对串口的操作。

3、Mscomm控件的属性(1)CommPort属性该属性用于设置或返回连接的串口编号,Windows将会利用该串口和外界通信。

VB6.0的MSComm通信控件应用举例

VB6.0的MSComm通信控件应用举例

VB6.0的MSComm通信控件应用举例提要本文介绍了基于VB6.0的MSComm通信控件相关理论,并以一个实例演示了MSComm控件的主要属性。

关键词:串行通信;VB6.0;MSComm控件在当今这个科技飞速发展的时代,我们经常需要在计算机与其他设备之间进行通信,而串行通信作为一种灵活、方便、可靠的通信方式被广泛采用。

在开发串行通信程序的过程中,利用微软的MSComm通信控件相对比较简单,该控件具有丰富的与串行通信密切相关的属性及事件,提供了对串口的各种操作。

MSComm控件在VB中容易使用,在串口编程时也非常方便,程序员不必花时间去了解较为复杂的API函数。

一、用VB6.0进行串行通信程序的设计方法简介用visual basic6.0进行串行通信程序的设计有两种方式:(1)直接调用Windows API。

(2)使用通信组件。

该方式实际上是通过通信组件间接调用Windows API函数,其过程要比直接调用API要复杂,但在程序上容易实现。

使用MSComm控件时,实际上就是使用了API函数,API函数将被Comm.drv解释并传送给外围设备驱动程序,使用MSComm的用户只需要关心如何使用MSComm所提供的属性或事件,以驱动API函数的接口完成工作。

二、串行通信程序的执行过程MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。

该控件提供了两种处理通信的方式:1、事件驱动通信。

事件驱动通信是处理串行端口交互作用的一种非常有效的方式。

在使用事件驱动通信时,每当有一个字符到达或端口状态发生改变,或发生错误时,MSComm控件将触发OnComm事件进行捕获,通过检查MSComm 控件的CommEvent属性获知所发生的事件或错误,从而采取相应的操作处理这些通信事件。

这种方法的优点是程序响应及时,可靠性高。

2、查询法。

该方法可以在程序的每个关键功能之后,通过检查CommEvent 属性的值来查询事件和错误。

vb控件

vb控件

vb控件:VB控件MSComm功能介绍疯狂代码 / ĵ:http://VisualBasic/Article15877.html VB中MSComm Control控件通过串行端口传输和接收数据为应用提供串行通讯功能MSCommControl控件在串口编程时非常方便员不必去花时间去了解较为复杂API而且在VC、VB、Delphi等语言中均可使用Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供简化Windows下串行通信编程ActiveXControl控件它为应用提供了通过串行接口收发数据简便思路方法具体来说它提供了两种处理通信问题思路方法:是事件驱动(Event-driven)思路方法是查询法1.MSCommControl控件两种处理通讯方式 MSCommControl控件提供下列两种处理通讯方式:事件驱动方式和查询方式 1.1 事件驱动方式 事件驱动通讯是处理串行端口交互作用种非常有效思路方法在许多情况下在事件发生时需要得到通知例如在串口接收缓冲区中有或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上个到达或个变化发生时在这些情况下可以利用 MSComm Control控件 _disibledevent=> CommPort 设置并返回通讯端口号Settings 以串形式设置并返回波特率、奇偶校验、数据位、停止位PortOpen 设置并返回通讯端口状态也可以打开和关闭端口Input 从接收缓冲区返回和删除Output 向传输缓冲区写个串 下面分别描述:CommPort属性:设置并返回通讯端口号 语法 mPort[value ] (value 整型值介绍说明端口号) 介绍说明 在设计时value 可以设置成从 1 到 16 任何数(缺省值为 1)但是如果用 PortOpen 属性打开个并不存在端口时MSComm Control控件会产生 68(设备无效) 注意:必须在打开端口的前设置 CommPort 属性RThreshold 属性:在 MSComm Control控件设置 CommEvent 属性为 comEvReceive 并产生_disibledevent=> 介绍说明:当接收后若 Rthreshold 属性设置为 0(缺省值)则不产生 _disibledevent=> Clear To Send 线用于 RTS/CTS (Request To Send/Clear To Send) 硬件握手如果需要确定 Clear To Send 线状态CTSHolding 属性给出种手工查询思路方法 详细信息 有关握手协议请参阅 Handshaking 属性SThreshold 属性: MSComm Control控件设置 CommEvent 属性为 comEvSend 并产生 _disibledevent=> value 整形表达式代表在 _disibledevent=> 常数 值 描述comNone 0 无握手comXonXoff 1 XOn/Xoff 握手comRTS 2 Request-to-send/clear-to-send 握手comRTSXOnXOff 3 Request-to-send 和 clear-to-send 握手皆可 OnComm 常数常数 值 描述comEvSend 1 发送事件comEvReceive 2 接收事件comEvCTS 3 clear-to-send 线变化comEvDSR 4 data- ready 线变化comEvCD 5 carrier detect 线变化comEvRing 6 振铃检测comEvEOF 7 文件结束 Error 常数常数 值 描述comEventBreak 1001 接收到中断信号comEventCTSTO 1002 Clear-to-send 超时comEventDSRTO 1003 Data- ready 超时comEventFrame 1004 帧comEventOverrun 1006 端口超速comEventCDTO 1007 Carrier detect 超时comEventRxOver 1008 接收缓冲区溢出comEventRxParity 1009 ParitycomEventTxFull 1010 传输缓冲区满comEventDCB 1011 检索端口 设备控制块 (DCB) 时意外 InputMode 常数常数 值 描述comInputModeText 0 (缺省) 通过 Input 属性以文本方式取回数据comInputModeBinary 1 通过 Input 属性以 2进制方式检取回数据CDHolding 属性:通过查询 Carrier Detect (CD) 线状态确定当前是否有传输Carrier Detect 是从调制解调器发送到相联计算机个信号指示调制解调器正在联机该属性在设计时无效在运行时为只读[Page] 语法 object.CDHolding 设置值:CDHolding 属性设置值为:设置 描述True Carrier Detect 线为高电平False Carrier Detect 线为低电平 介绍说明:注意当 Carrier Detect 线为高电平 (CDHolding = True) 且超时时MSComm Control控件设置CommEvent 属性为 comEventCDTO(Carrier Detect 超时)并产生 _disibledevent=> 值 描述 介绍说明 True Data Set Ready 线高 当 Data Set Ready 线为高电平 (DSRHolding = True) 且超时时MSComm Control控件设置 CommEvent 属性为 comEventDSRTO(数据准备超时)并产生_disibledevent=>False Data Set Ready 线低Settings 属性: 设置并返回波特率、奇偶校验、数据位、停止位参数 语法: object.Settings[ = value] 介绍说明:当端口打开时如果 value 非法则 MSComm Control控件产生 380(非法属性值) Value 由 4个设置值组成有如下格式: \"BBBB,P,D,S\" BBBB 为波特率P 为奇偶校验D 为数据位数S 为停止位数value 缺省值是: \"9600,N,8,1\"InputLen 属性:设置并返回 Input 属性从接收缓冲区读取数 语法 object.InputLen [ = value] InputLen 属性语法包括下列部分: value 整型表达式介绍说明 Input 属性从接收缓冲区中读取数 介绍说明:InputLen 属性缺省值是 0设置 InputLen 为 0 时使用 Input 将使 MSComm Control控件读取接收缓冲区中全部内容 若接收缓冲区中 InputLen 无效Input 属性返回个零长度串 (\"\")在使用 Input 前用户可以选择检查InBufferCount 属性来确定缓冲区中是否已有需要数目该属性在从输出格式为定长数据机器读取数据时非常有用EOFEnable 属性:确定在输入过程中 MSComm Control控件是否寻找文件结尾 (EOF) 如果找到 EOF 将停止输入并激活 _disibledevent=> 语法:object.EOFEnable [ = value ] EOFEnable 属性语法包括下列部分: value 布尔表达式确定当找到 EOF 时OnComm 事件是否被激活如“设置值”中所描述 value 设置值: True 当 EOF 找到时 _disibledevent=> 值 描述380 无效属性值 comInvalidPropertyValue383 属性为只读 comSetNotSupported394 属性为只读 comGetNotSupported8000 端口打开时操作不合法 comPortOpen8001 超时值必须大于 08002 无效端口号 comPortInvalid8003 属性只在运行时有效8004 属性在运行时为只读8005 端口已经打开 comPortAlreadyOpen8006 设备标识符无效或不支持该标识符8007 不支持设备波特率8008 指定字节大小无效8009 缺省参数8010 硬件不可用(被其它设备锁定)8011 不能分配队列8012 设备没有打开 comNoOpen8013 设备已经打开8014 不能使用 comm 通知8015 不能设置 comm 状态 comSetCommStateFailed8016 不能设置 comm 事件屏蔽8018 仅当端口打开时操作才有效 comPortNotOpen8019 设备忙8020 读 comm 设备 comReadError8021 为该端口检索设备控制块时内部 comDCBError2009-2-12 3:56:34疯狂代码 /。

毕业设计-VB中MSCOMM串行通信控件的使用方法

毕业设计-VB中MSCOMM串行通信控件的使用方法

VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式级程序设计语言,可用于开发Windows 环境下的各类应用程序。

它简单易学、效率高,且功能强大可以与Windows 专业开发工具SDK相媲美。

在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发环境下功能强大、图形界面丰富的应用软件系统。

他的简单易学可以使我们快速实现自己想在Windows下的软件功能。

小则可以做计算器、上位机等符合自己需要的小软件;大则可以连接数据库做些管理系统,比如某公司的人事管理系统。

这里要说的是MSCOMM控件在VB中的使用方法。

MSComm 作为一个串行通讯控件为程序员串口通讯编程节省了很多时间。

在应用中加入一个MSComm控件非常简单。

在VB的常用控件里是没有MSCOMM控件的,我们可以通过工程部件勾取Microsoft comm control 6.0 来添加MSCOMM控件。

下面,让我们来了解其使用方法:1.串口通信基础知识一般悦来,计算机都有一个或多个串行端口,它们依次为com1、Com2、…,这些串口还提供了外部设备与PC进行数据传输和通信的通道。

这些串口在CPU和外设之间充当解释器的角色。

当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM. DRV解释并传递给设备驱动程序,作为一个VB程序员,要编写通信程序.只需知道通信控件提供给Windows通信AP1函数的接口即可.换句话说,只需设定和监视通信控件的属性和事件即可。

VB控件:VB通信控件MSComm使用方法(二)

VB控件:VB通信控件MSComm使用方法(二)

Carrier Detect 也被称为 Receive Line Signal Detect (RLSD)。

数据类型:Boolean DSRHolding 属性:确定 Data Set Ready (DSR) 线的状态。

Data Set Ready 信号由调制解调器发送到相连计算机,指⽰作好操作准备。

该属性在设计时⽆效,在运⾏时为只读。

语法:object.DSRHolding object 所在处表⽰对象表达式,其值是“应⽤于”列表中的对象。

DSRHolding 属性返回以下值: 值描述说明True Data Set Ready 线⾼ 当 Data Set Ready 线为⾼电平 (DSRHolding = True) 且超时时,MSComm 控件设置CommEvent 属性为 comEventDSRTO(数据准备超时)并产⽣ OnComm 事件。

当为 Data Terminal Equipment (DTE) 机器写 Data Set Ready/Data Terminal Ready 握⼿例程时该属性是⼗分有⽤的。

数据类型:BooleanFalse Data Set Ready 线低 Settings 属性: 设置并返回波特率、奇偶校验、数据位、停⽌位参数。

语法: object.Settings[ = value] 说明:当端⼝打开时,如果 value ⾮法,则 MSComm 控件产⽣错误 380(⾮法属性值)。

Value 由四个设置值组成,有如下的格式: \"BBBB,P,D,S\" BBBB 为波特率,P 为奇偶校验,D 为数据位数,S 为停⽌位数。

value 的缺省值是: \"9600,N,8,1\" InputLen 属性:设置并返回 Input 属性从接收缓冲区读取的字符数。

语法 object.InputLen [ = value] InputLen 属性语法包括下列部分: value 整型表达式,说明 Input 属性从接收缓冲区中读取的字符数。

VB中mscomm控件的添加方法

VB中mscomm控件的添加方法

1.注册MSComm32控件,网上下载这个控件,然后把它拷贝到到C:\Windows\system32文件夹下,我装的是64位的Win7系统,是在C:\Windows\sysWOW64文件夹下,然后打开cmd,写入代码regsvr32 C:\Windows\system32\MSComm32.ocx然后按enter会提示你注册成功2.在对话框中添加控件:打开工具箱->右键选择选择项,等待一会会出现选择工具箱项,在COM组件下找到Microsoft communications control中的MSComm32.ocx项,勾选后添加,成功后在工具箱中就多了这么一个空间图标,可以拖进对话框中使用。

3.功能是实现串口发送出"Hello World!",串口实现自动接受串口数据。

VC++编程,新建个对话框工程,然后添加"打开串口","关闭串口","发送数据","清空数据"等按钮,接受数据可以自动实现就不用添加了,加入一个编辑框用来显示接收到的串口数据。

下面具体实现这几个功能编程:a.头文件添加#include "mscomm1.h",在对话框中拖入这个控件,右键添加事件处理,在里面编程如下:void CtestDlg::OnCommMscomm1() //CtestDlg是我对话框项目实现文件中定义的类{VARIANT input1;BYTE rxdata[2048];long len1,k;COleSafeArray safearray1;int iLineNum=m_Edit1.GetLineCount();CString strDis,strTemp;// short e=m_Com.get_CommEvent();if(iLineNum < 24){switch (m_Com.get_CommEvent()) //响应事件{case 2: //当达到阈值字符时候处理input1 = m_Com.get_Input();safearray1 = input1;len1 = safearray1.GetOneDimSize(); //返回一维参数的长度for(k = 0;k < len1;k ++)safearray1.GetElement(&k,rxdata + k);//第一个参数是开始的数组指针,第二个是存放的数组指针for(k = 0;k < len1;k ++){strTemp.Format("%02X-",rxdata[k]); //十六进制显示strDis += strTemp;m_Edit1.ReplaceSel(strDis);strDis = "";UpdateData(false);}else{m_Edit1.SetSel(0, -1);m_Edit1.Clear();}}b.打开串口按钮处理事件:void CtestDlg::OnBnClickedOpencom(){// TODO: 在此添加控件通知处理程序代码DWORD style = WS_VISIBLE | WS_CHILD; m_Com.put_CommPort(1);m_Com.put_Settings("9600,O,8,1");m_Com.put_InBufferSize(1024);m_Com.put_InBufferCount(0);m_Com.put_InputMode(1);m_Com.put_InputLen(0);m_Com.put_RThreshold(1);m_Com.put_PortOpen(1);AfxMessageBox("串口打开成功!");m_Opencom.EnableWindow(FALSE);m_Closecom.EnableWindow(TRUE);m_Edit1.EnableWindow(TRUE);}c.关闭串口按钮处理事件:void CtestDlg::OnBnClickedClosecom(){// TODO: 在此添加控件通知处理程序代码m_Com.put_PortOpen(0);AfxMessageBox("关闭串口成功!");m_Opencom.EnableWindow(TRUE);m_Closecom.EnableWindow(FALSE);m_Edit1.EnableWindow(TRUE);}d.发送数据按钮事件处理:void CtestDlg::OnBnClickedSenddata(){// TODO: 在此添加控件通知处理程序代码CString aa;aa = "Hello Word!!";m_Com.put_Output(COleVariant(aa));}e.清空数据按钮事件处理:void CtestDlg::OnBnClickedClear(){// TODO: 在此添加控件通知处理程序代码 m_Edit1.SetSel(0, -1);m_Edit1.Clear();UpdateData(false);}。

VB COMM控件使用介绍与讲解

VB COMM控件使用介绍与讲解

VB_COMM使用介绍与讲解MSComm控件使用详解MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。

Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。

1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。

1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。

在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。

在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。

OnComm 事件还可以检查和处理通讯错误。

所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。

在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。

这种方法的优点是程序响应及时,可靠性高。

每个MSComm 控件对应着一个串行端口。

如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。

1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。

在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。

如果应用程序较小,并且是自保持的,这种方法可能是更可取的。

例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。

VB中MSComm控件的使用

VB中MSComm控件的使用

unsigned char receive[5]={0,0,0,0,0};
ES = 0;
for(i=0;i<5;i++)
{
while(RI==0);
receive[i]=SBUF;
RI=0;
}
for(i=0;i<5;i++)
{
SBUF = receive[i];
while(!TI);
TI=0;
}
ES=1;
PCON |= 0x80;
//SMOD=1:波特率倍增
TH1 = 0xf3;
//波特率设定为 4800bps
TL1 = 0xf3;
TR1 = 1; ES = 1;
//开启串行口中断
EA = 1;
while(1);
பைடு நூலகம்
}
void uart(void) interrupt 4
{
unsigned char i;
批注本地保存成功开通会员云端永久保存去开通
一、VB:
1.1 界面设计:
MSComm 使用案例
1.2 MSComm 控件设置:
1.3 代码: Private Sub Command1_Click()
'发送
Dim outbte(0) As Byte Dim count As Integer
If MSComm.PortOpen = False Then MSComm.PortOpen = True For count = 0 To 4
outbte(0) = Val(Text1(count))
MSComm.OutBufferCount = 0 MSComm.Output = outbte
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第 6 章 VB 串口通信程序设计典型实例利用 VB 开发串口通信程序既可以使用 MSComm 控件也可以调用 Windows API 函数实 现。

不过,只要 MSComm 控件可以被选用,我们推荐选择此控件实现,因为 MSComm 控件 的功能和 API 调用一样强,甚至比它还好且使用起来更加简单。

在本章提供的串口通信程序设计中,除了 PC 与 PC 串口通信外,PC 与单片机、PC 与智 能仪表、PC 与 PLC、PC 与 GSM 短信模块等串口通信任务的实现均采用 MSComm 控件。

6.1 PC 与 PC 串口通信程序设计当两台串口设备通信距离较近时,可以直接连接,最简单的情况,在通信中只需 3 根线 (发送线、接收线、信号地线)便可实现全双工异步串行通信。

本设计通过两台 PC 串口 3 线连接,介绍了利用 API 函数和 MSComm 控件设计串口通 信程序的方法,包括字符与文件的发送与接收。

6.1.1 PC 与 PC 串口通信程序设计目的(1)掌握 PC 与 PC 串口通信的线路连接方法。

(2)利用 MSComm 控件和 API 函数实现 PC 与 PC 串口通信的程序设计方法。

6.1.2 PC 与 PC 串口通信程序设计用软、硬件本设计用到的硬件和软件清单如表 6-1 所示。

表 6-1 序 1 2 3 号 PC 或 IPC 串口通信线(三线制) Visual Basic 6.0 设计用软、硬件 名 称 数 2 1 1 量6.1.3 PC 与 PC 串口通信程序硬件线路图线路说明,在计算机通电前,按图 6-1 所示将两台 PC 通过串口线连接起来:计算机 A 串口 COM1 端口的 TXD 与计算机 B 串口 COM1 端口的 RXD 相连,计算机 A 串口 COM1 端 口的 RXD 与计算机 B 串口 COM1 端口的 TXD 相连,计算机 A 串口 COM1 端口的 GND 与 计算机 B 串口 COM1 端口的 GND 相连。

第 6 章 VB 串口通信程序设计典型实例PC机A 计算机 A PC机B 计算机 BTXD COM1 RXD GNDTXD RXD GND COM1图 6-1 PC 与 PC 串口通信线路6.1.4 设计任务利用 MSComm 控件和 VB API 函数编写程序实现 PC 与 PC 串口通信。

任务要求,两台计算机互发字符并自动接收,如一台计算机输入字符串“Please return abc123” ,单击“发送字符”命令,另一台计算机若收到,就输入字符串“abc123” ,单击“发 送字符”命令,信息返回到第一组的计算机。

实际上就是编写一个简单的双机聊天程序。

6.1.5 任务实现6.1.5.1 利用 MSComm 控件实现字符型数据发送与接收1.建立新工程 VB 使用“工程”来管理每一个应用程序要使用的所有文件,每建立一个新程序,就要 新建一个工程。

一个工程由窗体、标准模块、控件及应用所需的开发环境设置等组成。

运行 VB 程序,出现“新建工程”对话框,选择“标准 EXE” ,单击“打开”命令按钮, 进入 VB 工程集成开发环境,窗体设计器中自动出现一个名为 Form1 的空白窗体。

2.程序界面设计 向空白窗体添加各种控件,以完成预定的各种功能。

开始一个项目的设计时,VB 的工 具箱中会有许多默认的控件让设计者予以选用,这些原本就出现在工具箱中的控件是内置控 件, 它提供了一些基本的系统设计组件给设计者, 但功能比较特别的控件就不会出现在其中, 如用来设计串口通信功能的控件 MSComm 就不在其中。

(1)添加串口通信控件 MSComm。

由于 VB 的串行通信组件并不会主动出现在工具箱里中,当我们需要 MSComm 控件时, 首先要把它加入到工具箱中。

让 MSComm 控件出现在工具箱中的步骤如下。

选择“工程”菜单下的“部件…”子菜单,在弹出的“部件”对话框中,在“控件”选 项卡属性中选中“Microsoft Comm Control 6.0”复选框,单击“确定”按钮后,在工具箱中 就出现了一个形似“电话”的图标,它就是 MSComm 控件。

– 173 –Visual Basic 数据采集与串口通信测控应用实战工具箱中有了 MSComm 控件, 就可以选择 MSComm 控件的图标后将其添加到程序窗体 上,利用该控件编程,PC 就可以通过 VB 实现与串口设备的串口通信了。

由于每个使用的 MSComm 控件对应着一个串行端口,如果应用程序需要访问多个串行 端口,必须添加多个 MSComm 控件。

(2)为了实现连续的自动接收,将工具箱中的 Timer 控 件添加到程序窗体上。

(3)添加两个文本框控件:Text1 和 Text2,用于输入要 发送的字符和显示要接收的字符。

(4)添加两个标签控件:Label1 和 Label2,作为发送和 接收字符区的标签。

(5)添加一个按钮控件:Command1 执行发送字符命令。

程序设计界面如图 6-2 所示。

图 6-2 程序窗体界面 3.属性设置 从属性窗口设置属性时,只需从对象列表框中选择待设置属性的对象,然后从属性列表 的左列选择属性,最后在属性列表的右列中输入或选择新的属性值。

程序窗体、控件对象的主要属性设置如表 6-2 所示。

表 6-2 控 件 类 型 窗体、控件对象的主要属性设置 主 要 属 性 (名称) = COMForm Form BorderStyle = 3 Caption = PC 与 PC 串口通信 (名称) = Label1 Label Caption = 显示接收字符区: (名称) = Label2 Label Caption = 输入发送字符区: (名称) = Textsend TextBox MultiLine = True ScrollBars = 2-Vertical (名称) = TextReceive TextBox MultiLine = True ScrollBars = 2-Vertical CommandButton (名称) = Cmdsend Caption = 发送字符 (名称) = MSComm1 其他属性在程序中设置 (名称) = Timer1 Timer Enabled = True Interval = 500 – 174 – 时钟控件 时钟初始可用 设置发送周期(ms) 窗体控件 运行时窗体固定大小 窗体标题栏显示程序名称 标签控件 标签文本 标签控件 标签文本 文本框控件 允许多行显示 垂直滚动条可用 文本框控件 允许多行显示 垂直滚动条可用 按钮控件 手动发送字符 串口通信控件 功 能MSComm第 6 章 VB 串口通信程序设计典型实例 两台计算机中 VB 程序界面及属性设置应完全相同, 尤其 MSComm 控件的 InputMode 和 Settings 属性值应相同。

4.程序代码设计 程序要实现自动发送或读取,在 VB 程序中有两个方式可以达到,一是查询方式,利用 查询事件是否发生,当发生时,去执行默认的程序代码。

可以使用计时器控件(Timer) ,该 控件属性中的 Interval 可以控制计时器被启动的时间间隔,当时间间隔一到,便会执行原先 放在计时器中的程序代码。

下面是利用查询方式编写的 PC 与 PC 串口通信的参考程序,代码如下所示:' 串口初始化 Private Sub Form_Load() mPort = 1 ' 设置通信端口号为 COM1 MSComm1.Settings = "9600,n,8,1" ' 设置串口 1 参数 MSComm1.InputMode = 0 ' 接收文本型数据 MSComm1.PortOpen = True ' 打开通信端口 1 End Sub ' 把字符通过串口发送出去 Private Sub Cmdsend_Click() If Textsend.Text = "" Then pp = MsgBox("发送的数据不能为空!", 16) Exit Sub End If MSComm1.Output = Trim(Textsend.Text) For i = 1 To 20000000 Next i End Sub ' 通过时钟控制来自动接收字符 Private Sub Timer1_Timer() Dim buf$ buf = Trim(MSComm1.Input) ' 将缓冲区内的数据读入 buf 变量中 If Len(buf) <> 0 Then ' 判断缓冲区内是否存在数据 TextReceive.Text = TextReceive.Text + Chr(13) + Chr(10) + buf //回车换行 End If End Sub ' 关闭通信端口,停止程序运行 Private Sub Cmdquit_Click() MSComm1.PortOpen = False Unload Me End Sub在 Windows 系统环境下,串口是系统资源的一部分。

应用程序要使用串口进行通信,必 须在使用之前向操作系统提出资源申请要求(打开串口) ,通信完成后必须释放资源(关闭串 口) 。

在 Windows 系统的系统函数中,均包含了支持通信中断的功能。

二是使用事件方式。

MSComm 控件提供事件回应功能,可以利用此功能达到自动发送/ 接收的目的。

下面是利用事件方式编写的 PC 与 PC 串口通信的参考程序,界面设计与图 6-2 基本相同,区别是事件方式不需要时间控件。

'串口初始化 Private Sub Form_Load() mPort = 1'设置通信端口号为 COM1 – 175 –Visual Basic 数据采集与串口通信测控应用实战 MSComm1.Settings = "9600,n,8,1" '设置串口参数 MSComm1.InputMode = 0 '接收文本型数据 MSComm1.RThreshold = 1 '接收缓冲区每收到一个字符都会使 MSComm 控件触发 OnComm 事件 MSComm1.PortOpen = True '打开通信端口 1 End Sub '把字符通过串口发送出去 '启动定时器 Private Sub Cmdsend_Click() If Textsend.Text = "" Then pp = MsgBox("发送的数据不能为空!", 16) Exit Sub End If MSComm1.Output = Trim(Textsend.Text) End Sub 'MSComm 的 OnComm 事件程序 '由 CommEvent 属性值的不同,将各自的程序代码写入相关的子程序中 '只要 RThresold 中的设定字符数到达时便会使得 CommEvent 属性值变成 comEvReceive '因此接收的子程序便会被执行 Private Sub MSComm1_OnComm() Dim buf$ Select Case mEvent '通过取代每一个 case 表达式来处理每个事件与错误 Case comEvCD ' CD 线的状态发生变化 Case comEvCTS ' CTS 线的状态发生变化 Case comEvDSR ' DSR 线的状态发生变化 Case comEvReceive buf = Trim(MSComm1.Input) '将缓冲区内的数据读入 buf 变量中 Case comEvSend End Select TextReceive.Text = TextReceive.Text & buf End Sub '停止程序运行 Private Sub Cmdquit_Click() Unload Me End Sub '关闭通信端口, Private Sub Form_Unload(Cancel As Integer) MSComm1.PortOpen = False End Sub5.运行程序 程序设计、调试完毕,单击工具栏快捷按钮“启动” ,运行程序。

相关文档
最新文档