VB串口编程

合集下载

Visual Basic 串口通讯编程

Visual Basic 串口通讯编程

Mid:从第m 个数开始,取 n 个数。例如:s=Mid(s,2,3)即为从 s 的 第二个数开始,取三个数放回s。 Asc:返回第一个字符(包括汉字)的Ascii码。 Str:将一个数字变为字符形式 Hex:返回Ascii码的16 进制数 3、错误处理的应用 我们在程序中加入这样一条语句:On Error Resume Next。当程序运 行出现错误,比如当打开串行口1 时,该串口已被其它程序占用,程 序就会出现错误,如果开始时执行过上述语句,程序将跳过错误语句, 接着往下执行。同时,VB 置Err 标志有效。 利用Err 的值,我们可以判断一些与硬件相关的操作是否正确和有 效,以改变程序的进程。 四、界面 画出界面,控件上的字符是它们的名称。需要提请大家注意的是,串 口控件(即那个电话控件)在VB 默认的控件栏中不存在,需要以下 述方式添加,在工程菜单->部件->控件选项卡中选中 Microsoft Comm Control 5.0 复选框,其它备用控件的添加也采用 相同的方式,希望大家记住,以后将不再重复。当不再需要该控件而

Visual Basic 串口通 三、预备知识和技巧 1、串行通讯控件 Mscomm 调入Mscomm 控件:在“项目”菜单中打开“部件”子菜单, 在部件选择对话框中选择 “Microsoft comm Control 5.0”, Mscomm 控件即加入到您的控件箱中. 常用属性:Commport-通讯端口号,如串口1、串口2。Setting-返回或 设置串口参数。InputLen-从接收缓冲区读出的字符数。 InBufferSize、OutBufferSize-输入、输出缓冲区尺寸。 InBufferCount-输入缓冲区内的字符数。 常用方法:Output、Input-将发送数据发送出去和将接收数据读出。 常用事件:OnComm-无论串行口发生什么事,都会触发该事件。 2、字符处理函数 Left:取字符串的左边n 个字符。例如:s=Left(s,2) 即为取s 的左 边两个字符再放回 s。 Right:与Left 类似,取字符右边 n 个字符。

VB串口通信程序代码

VB串口通信程序代码

vb中怎样用mscomm控件实现串口通信本问分两部分均来自第一部分jessezappy(晶晶)================================================================================== If MSComm1.PortOpen Then MSComm1.PortOpen = FalsemPort = 1 '假定是用COM1口' 设定传输速率等,可依照您的需求更改MSComm1.Settings = "9600,N,8,1"MSComm1.PortOpen = True'---------初始化Modem-------------MSComm1.Output = "ATZ"MSComm1.Output = "AT&F"MSComm1.Output = "ATE0"MSComm1.Output = "ATM1"MSComm1.Output = "ATQ0"MSComm1.Output = "ATV0"'--------------------------拨号-------------MSComm1.Output ="ATDT163" '拨163'---------------------------接通后MSComm1.Output ="SDFJDKSJLKFA" '发送字符串'---------------------Private Sub MSComm1_OnComm() '用串口事件捕捉数据..If MSComm1.InBufferCount Then' 通讯埠中假如有资料的话, 则读取进来InStringB = InStringB & MSComm1.Input' 如果资料中有Chr(13) 和Chr(10) 的话, 则显示出来If InStr(InStringB, vbCrLf) Theninstring = instring & InStringBAddText Text3, InStringB, FalseInStringB = ""End IfEnd IfEND SUB'-------------------------挂断--------MSComm1.PortOpen = False '这个挂断方法不能适用所有MODEM,我正在研究...通用办法================================================================================================第二部分:===========================================================================最后借你一篇文章看,作者不是我,里面的不一定都对..'-----------------------------------------------------------VB Mscomm控件应用江苏戚墅堰机车车辆厂设计处(213011) 李秉璋--------------------------------------------------------------------------------Visual Basic 6.0(以下简称VB) 是一种功能强大、简单易学的程序设计语言。

vb串口通信编程

vb串口通信编程

vb串口通信编程一、概述串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。

提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。

实际上,只要我们借助相关ActiveX控件的帮助,即使是在底层操作一向不被人看好的VB 中,一样能够实现串口通讯,甚至其实现方法和C、汇编相比,要更加快捷方便。

下面,笔者就介绍一下在VB中实现串口通讯的方法。

在Visual Basic中有一个名为Microsoft Communication Control(简称MSComm)的通讯控件。

我们只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。

下面,笔者就简要地介绍一下MSComm控件的使用方法。

二、MSComm控件的主要属性、事件1、MSComm的属性由于MSComm控件属性很多,在此笔者仅介绍与实现串口通讯密切相关的核心属性。

Commport:设置通讯所占用的串口号。

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

Setting:对串口通讯的相关参数。

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

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

Portopen:设置串口状态,值为True时打开串口,值为False时关闭串口。

Input:从输入寄存器读取数据,返回值为从串口读取的数据内容,同时输入寄存器将被清空。

Ouput:发送数据到输出寄存器。

InBufferCount:设置输入寄存器所存储的字符数,当将其值设为0时,则输入寄存器将被清空。

InputMode:设置从输入寄存器中读取数据的形式。

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

OutBufferCount:设置输出寄存器所存储的字符数,当将其值设为0时,则输出寄存器将被清空。

简单的VB串口通讯入门

简单的VB串口通讯入门

我的VB串口读写入门首先需要的是在VB中增加一个microsoft comm control 6.0的控件。

步骤就是:工程(project)->部件(components)->点击,出现对话框下拉垂直滑动杆,找到“microsoft comm control 6.0”点击前面的矩形框,确定。

先介绍一下必须熟悉几个属性:CommPort 设置并返回通讯端口号。

Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。

PortOpen 设置并返回通讯端口的状态。

也可以打开和关闭端口。

Input 从接收缓冲区返回和删除字符。

Output 向传输缓冲区写一个字符串。

然后给大家一个读串口的小例程:Private Sub Form_Load()mPort = 1 '选择com1Mscomm1.Settings = "9600,N,8,1" '设置波特率为9600,没有奇偶校验,8位数据位,1位结束位Mscomm1.InputLen = 0 '读取全部的输入缓冲区If Mscomm1.PortOpen = False Then Mscomm1.PortOpen = True '端口打开Mscomm1.RThreshold = 2Mscomm1.SThreshold = 2End SubPrivate Sub Mscomm1_OnComm() '所有的通讯事件都可以激发MSComm1控件的OnComm 事件Select Case mEventCase comEvReceive'此处的代码可以进行当串口的接受缓冲区里有RThreshold个字符的处理Text4 = Text4 & Mscomm1.InputCase comEvSend'此处的代码可以进行当串口的发送缓冲区里有SThreshold个字符的处理End SelectEnd SubUnload 事件是当窗体从屏幕上删除时发生。

VB串口编程的几个问题

VB串口编程的几个问题

目次:串口数据接收方式如何处理不定长数据的接收用字符方式收发码值大于127的字符数据串口通讯问答2串口数据接收方式1、在OnComm 事件中接收数据:这种方式能充分MSCOMM控件的特性。

OnComm 事件还可以检查和处理通讯错误;可以通过检查CommEvent 属性的值来查询事件和错误;对于不定长数据以及对数据进行处理比较复杂的情况,此法不是很方便。

Private Sub MSComm_OnComm ()Select Case mEvent' 错误Case comEventBreak ' 收到Break。

Case comEventCDTO ' CD (RLSD) 超时。

Case comEventCTSTO ' CTS Timeout。

Case comEventDSRTO ' DSR Timeout。

Case comEventFrame ' Framing ErrorCase comEventOverrun '数据丢失。

Case comEventRxOver'接收缓冲区溢出。

Case comEventRxParity' Parity 错误。

Case comEventTxFull '传输缓冲区已满。

Case comEventDCB '获取DCB] 时意外错误' 事件Case comEvCD ' CD 线状态变化。

Case comEvCTS ' CTS 线状态变化。

Case comEvDSR ' DSR 线状态变化。

Case comEvRing ' Ring Indicator 变化。

Case comEvReceive ' 收到RThreshold # of chars.Case comEvSend ' 传输缓冲区有Sthreshold 个字符'Case comEvEof ' 输入数据流中发现EOF 字符End SelectEnd Sub2.轮循法采集数据:A、定时器轮循法对于数据包方式收发数据以及不需即时响应情况,用轮循法更好些。

用VB控制电脑串口(正确版)

用VB控制电脑串口(正确版)

如何用VB 实现电脑串口通信无协技术顾问: 陈文斯什么是串口,为何要学习串口串口是计算机上一种非常通用设备通信的协议。

大多数台式计算机包含两个基于RS232的串口(一般用9针公头接出其中一个接口,如图1所示)。

串口同时也是仪器仪表设备通用的通信协议;很多GPIB 兼容的设备也带有RS-232口。

鉴于串口应用如此广泛,大多数单片机也内置了串口。

通过串口,单片机可以很轻松地与其它设备交换信息。

用VB 编写串口通信的好处Windows 操作系统由于其友好的用户界面赢得了很多用户的青睐。

Visual Basic 即是微软公司基于Windows 操作系统的可视化编程平台。

有些同学会疑问:我又不是计算机专业的,学习VB 是不是十分痛苦。

我告诉你们,非也!要是你对它感兴趣,很快,你会爱上它的。

VB 十分容易入门。

设计用户界面就像我们平时制作PPT 的界面一样。

只需把你需要的控件拖到界面上并调整即可。

VB 的代码也很通俗易懂。

其实基本上都是调用系统函数的。

为抛砖引玉,现举个例子,简要介绍一下VB 编写。

(以下的所有例程都是基于VB6.0的,对于较高.net 版本,可能有所不同)任务1:软件界面上有一个文本框和按钮,当点击按钮时,文本框上显示“爱电子,爱生活。

华南理工大学电子爱好者协会”1、 运行VB ,在新建程序的界面上画出一个文本框(textbox )和按钮(commandbotton )。

如图2所示;2、 双击按钮,出现代码编辑窗口。

并在其中输入代码,如图3所示;3、 运行程序,点击按钮,即可看到如图4所示的效果:是不是很简单呢?!图2图3图1图4个人建议大一大二的师弟师妹应该学习如何用VB操作串口,特别是学会如何实现电脑跟单片机的通信。

这样子,我们日后设计的电子作品必定增色不少。

现在详细讲解一下如何用VB操作串口。

(读者可去图书馆借阅相关图书,掌握串口跟VB的基础知识)要用VB操作串口,需要用到Mscomm控件。

7 串口通讯实例程序(VB)

7 串口通讯实例程序(VB)

第七篇串口通讯实例程序(VB版)上一篇文档中简单了解了一下SerialPort控件。

本篇文档将利用这个控件,编写一个简单的串口收发程序。

打开VS2005。

文件| 新建| 项目。

新建一个项目,名称:SerialPortTest。

打开Form1.vb窗口。

在窗口中添加几个控件。

包括4个按钮,两个编辑框,1个状态栏,两个静态文本,简单的调整一下窗体。

如下图:将两个编辑框的Multiline属性设置为True。

然后给窗体添加一个SerialPort控件。

调整一下其属性如下:BaudRate : 9600 DataBits : 8 Parity : None PortName : COM1StopBits : One ReceivedBytesThreshold : 1添加“打开串口”按钮的单击响应函数,如下:——————————————————————————————————Private Sub BTN_COM_OPEN_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BTN_COM_OPEN.ClickIf Me.SerialPort1.IsOpen = True ThenMe.StatusBar1.Text = "串口已经连接! COM1,9600,8,1"MsgBox("当前设备已连接", MsgBoxStyle.OkOnly, "提示") ElseMe.SerialPort1.Open()If Me.SerialPort1.IsOpen = True ThenMe.StatusBar1.Text = "打开串口成功!COM1,9600,8,1"ElseMe.StatusBar1.Text = "打开串口失败!"End IfEnd IfEnd Sub ——————————————————————————————————上面这段代码,打开串口,并在状态栏上显示一些提示信息。

利用VB如何进行串口读写

利用VB如何进行串口读写

利用VB如何进行串口读写在VB中,可以使用SerialPort类来进行串口读写操作。

以下是使用VB进行串口读写的一般步骤:1. 引用System.IO.Ports命名空间:在代码文件的顶部,添加Imports System.IO.Ports命名空间,以便可以使用SerialPort类。

2. 创建SerialPort对象:在代码中创建SerialPort对象,并设置串口的各种属性,如端口名称、波特率、数据位、校验位、停止位等。

例如:```vbDim serialPort As New SerialPortserialPort.PortName = "COM1"serialPort.BaudRate = 9600serialPort.Parity = Parity.NoneserialPort.DataBits = 8serialPort.StopBits = StopBits.One```3. 打开串口:使用serialPort.Open(方法打开串口,并检查串口是否成功打开。

例如:```vbTryserialPort.OpenIf serialPort.IsOpen ThenMessageBox.Show("串口已打开")End IfCatch ex As ExceptionMessageBox.Show("串口打开失败:" & ex.Message)End Try```4. 读取串口数据:使用serialPort.DataReceived事件来处理接收到的数据。

例如:```vbPrivate Sub serialPort_DataReceived(sender As Object, e As SerialDataReceivedEventArgs) Handles serialPort.DataReceived Dim receivedData As String = serialPort.ReadExisting'处理接收到的数据End Sub```5. 写入串口数据:使用serialPort.Write(方法向串口写入数据。

VB串口编程基础及实现

VB串口编程基础及实现

i e o t es ra r g a d af m e i l o mmi gt e r es e i c p o a mi g r h p r n o y t t p cf r g m h o h i r n . Ke wo d : e i l o t Co y r s S r r ; mm u i ai n; i k; r g a aP nc t o L n P o mmi g r n
to W ih t e e ba i he re o f fl t e i lp o a i n. t h s sc t o i st ul l he s ra r g mmi g s il nd m a e t s a tto r ve a betr i r n k ls a k ho e pr c i ne sha te i
念, 每种单片机通信协议都会标 注波特率 、 数据位 、 停止位 、奇偶校验位和编码方式。这些参数定义如 下:
Ab t c : mp t rs ra o t r g a s r t Co u e e i l r o r mmi g h sb e d l s d i e c m mu i a i n s f r , u h a a p p n a e n wi e y u e n t o h n c t o wa e s c s o t t lp o e f x v d oa d c n r l ec An n d sr s e ae e o e c mmu i ai n o u o t n a ea — e e h n , a , i e n o to , t . d ma y i u t e lt d t r m t o n i r o n c t r t ma i r l o a o

VB串口编程,comm资料

VB串口编程,comm资料

使用 Communications 控件Communications 控件可以用来提供简单的串行端口通讯功能,也可以用来创建功能完备(full-featured)、事件驱动的高级通讯工具。

Communications 控件Communications 控件提供了一系列标准通讯命令的使用界面。

使用它可以建立与串行端口的连接,通过串行端口连接到其它通讯设备(例如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。

用途●拨打电话号码。

●监视串行端口的输入数据。

●创建功能完备的终端程序。

示例应用程序:Dialer.vbp 和 VBTerm.vbpDialer.vbp 和 VBTerm.vbp 示例应用程序位于 Visual Basic CD-ROM 的 ProgramFiles\Microsoft Visual Studio\Common\Samples\vb directory 目录中,它们分别演示了 Communications 控件的简单编程技术和复杂编程技术。

串行通讯的基本知识每台计算机都提供了一个或多个串行端口。

它们被依次命名为:COM1、COM2 等等。

在标准的 PC 中,鼠标通常被连接到 COM1 端口。

调制解调器可能连接到 COM2,扫描仪被连接到 COM3,等等。

串行端口提供了计算机与这些外部串行设备之间的数据传输通道。

串行端口的本质功能是作为 CPU 和串行设备间的编码转换器。

当数据从 CPU 经过串行端口发送出去时,字节数据被转换为串行的位。

在接收数据时,串行的位将被转换为字节数据。

要完成数据的传输,还需要进一步一个解释层。

在操作系统一边,Windows 使用了通讯驱动程序 Comm.drv,以便使用标准的 Windows API 函数发送和接收数据。

驱动程序通常由串行设备制造商提供,以便将其硬件与 Windows 连接。

在使用 Communications 控件时,实际上使用了 API 函数,API 函数将被 Comm.drv 解释并传输给设备驱动程序。

vb串口编程实例

vb串口编程实例

VB串口编程实例介绍VB(Visual Basic)是一种基于对象的编程语言,可用于开发Windows应用程序。

串口编程是指通过串行通信接口与外部设备进行数据交互。

本文将介绍如何使用VB进行串口编程,以实现与外部设备的通信。

前提条件在开始编写VB串口程序之前,需要确保以下条件已满足: - 安装了Visual Studio开发环境,可以选择最新版本的Visual Studio Community免费版。

- 确保计算机上有可用的串口(如COM1、COM2等)或USB转串口适配器。

步骤1. 创建新项目打开Visual Studio,选择创建一个新的VB Windows应用程序项目。

2. 添加控件在窗体上添加以下控件: - 一个ListBox控件用于显示接收到的数据。

- 两个Button控件分别用于打开和关闭串口。

- 一个ComboBox控件用于选择串口号。

- 一个TextBox控件用于输入要发送的数据。

- 一个Button控件用于发送数据。

3. 设置串口属性在窗体代码中添加如下代码:Imports System.IO.PortsPublic Class Form1Dim serialPort As New SerialPort()Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Lo ad' 获取可用的串口号并添加到ComboBox中Dim ports As String() = SerialPort.GetPortNames()ComboBox1.Items.AddRange(ports)End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click' 打开串口TryserialPort.PortName = ComboBox1.SelectedItem.ToString()serialPort.BaudRate = 9600serialPort.Parity = Parity.NoneserialPort.DataBits = 8serialPort.StopBits = StopBits.OneserialPort.Open()Button1.Enabled = FalseButton2.Enabled = TrueCatch ex As ExceptionMessageBox.Show("无法打开串口:" + ex.Message)End TryEnd SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button 2.Click' 关闭串口TryserialPort.Close()Button1.Enabled = TrueButton2.Enabled = FalseCatch ex As ExceptionMessageBox.Show("无法关闭串口:" + ex.Message)End TryEnd SubEnd Class4. 接收数据和发送数据在窗体代码中添加如下代码:Imports System.IO.PortsPublic Class Form1Dim serialPort As New SerialPort()Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Lo ad' 获取可用的串口号并添加到ComboBox中Dim ports As String() = SerialPort.GetPortNames()ComboBox1.Items.AddRange(ports)End SubPrivate Sub Button1_Click(sender As Object, e As EventArgs) Handles Button 1.Click' 打开串口' 省略部分代码...AddHandler serialPort.DataReceived, AddressOf DataReceivedHandlerserialPort.Open()Button1.Enabled = FalseButton2.Enabled = TrueEnd SubPrivate Sub Button2_Click(sender As Object, e As EventArgs) Handles Button 2.Click' 关闭串口' 省略部分代码...RemoveHandler serialPort.DataReceived, AddressOf DataReceivedHandler serialPort.Close()Button1.Enabled = TrueButton2.Enabled = FalseEnd SubPrivate Sub DataReceivedHandler(sender As Object, e As SerialDataReceivedE ventArgs)' 接收数据并显示在ListBox中Dim data As String = serialPort.ReadLine()ListBox1.Invoke(Sub() ListBox1.Items.Add(data))End SubPrivate Sub Button3_Click(sender As Object, e As EventArgs) Handles Button 3.Click' 发送数据If serialPort.IsOpen ThenDim dataToSend As String = TextBox1.TextserialPort.WriteLine(dataToSend)TextBox1.Clear()ElseMessageBox.Show("请先打开串口")End IfEnd SubEnd Class5. 运行程序点击运行按钮,程序将打开一个窗口,其中包含串口选择、打开/关闭串口、接收数据和发送数据的功能。

VB实现串口通信,计算机网络实验

VB实现串口通信,计算机网络实验

工业计算机网络实验报告实验4:计算机网络实验——VB实现串口通信一、实验目的:(1)熟悉和掌握串口通信的基本概念;(2)进一步熟悉RS-232C串口通信标准;(3)熟悉和掌握串行通信控件MSComm及其应用。

二、实验任务:(1)学会使用虚拟串行驱动程序(VSPD)虚拟串口。

(2).学会使用串口调试助手。

(3)使用VB做一个串口通信程序,要求能实现数据的收发。

三、编程实现:代码:Option ExplicitDim FS As IntegerPrivate Sub cmdExit_Click()Comm1.PortOpen = FalseEndEnd SubPrivate Sub cmdReceive_Click()txtReceive = Comm1.InputEnd SubPrivate Sub cmdSend_Click()Comm1.Output = txtSend.TextEnd SubPrivate Sub Comm1_OnComm() 'Label4.Caption = Comm1.Input End SubPrivate Sub Form_Load() Comm1.PortOpen = TrueEnd SubPrivate Sub txtReceive_Change() 'Comm1.OutputEnd Sub运行安装VPSD:用VPSD创建虚拟的端口:创建端口3,4运行两个例程,端口号分别设置为3,4:端口号3:端口号4的例程接受消息:端口号4的例程发送消息:端口为3的例程读取消息:四:实验总结通过本次试验,发现了自己在动手能力和自学能力方面的不足,我也进一步发现了自己在动手能力和自学能力方面的不足,然对本实验所涉及到的东西也算是有了不少兴趣,感觉越来越有意思然对本实验所涉及到的东西也算是有了不少兴趣,同时也对rs232串口的发送和接收信息有了进一步的了解,串口的发送和接收信息有了进一步的了解。

用VisualBasic实现串口通信的三种方法

用VisualBasic实现串口通信的三种方法

2. 利用通信控件的实例
Sub Form1 —load ()
form1. show ′设置 COM1
comm1. commport = 1
comm1. Setting = " 9600 ,o ,8 ,1" ′波特率 : 9600 奇校验 ,8
位数据 ,1 位停止位
comm1. Inputlen = 0
一 、利用通信控件( MSCOMM) 完成串口通信
VB 提供了通信控件 MSCOMM,文件名为 MSCOMM. VBX。 该控件可设置串行通信的数据发送和接收 ,对串口状态及串 行通信的信息格式和协议进行设置 。在通信过程中可以触发 OnComm 事件 ,在该事件过程进行数据检验处理及检错 ,还可 以通过编程访问 CommEvent 属性来了解通信的情况 ,进行收 发数据的处理 。每个通信控件对应一个串口 ,如果要访问多 个通信口 ,则要设计多个通信控件 。
利用 VB 提供的这些功能 ,我们可以有三种方法完成串 口通信 。一种是用 VB 提供的具有强大功能的通信控件 ;另一 种方法是调用 WINDOWS API 函数 ,使用 WINDOWS 提供的 通信函数编写移植性强的应用程序 ;第三是利用文件的输 入/ 输出完成 ,该方法简便易行 ,但有一定的局限性 。
EofChar As String 3 1
·6 ·
参数 As 类型 ]) As 类型 在声明中 :DECLARE 表示声明 DLL 中的函数 ,当声明是
不具有返回值的过程时用 SUB 关键字 ,而如果调用的函数具 有返回值 ,则必须用 FUNCTION 关键字将其声明为函数并在 声明语句的最后用 AS 指明函数返回值的类型 。LIB 关键字表 示当前声明的过程或函数是库名所指定的库中函数而非 VB 本身的函数 。库名 ,就是对应动态链接库的名称 ,其中通信函 数在 USER 库中 。ByVal 关键字将原参数数据类型一一对应到 VB 类型中 。

串口测试软件 VB代码

串口测试软件 VB代码

串口测试软件 VB代码部分代码如下:Dim Port 'COM端口检测Dim p 'COM端口检测Dim s(255) As Integer '端口1-255Dim s1(255) '端口1-255Dim str '奇偶校验传递符Dim portstr As StringPrivate Sub Command1_Click()On Error Resume Next'---------------端口参数设置--------------- If Command1.Caption = "打开串口(&O)" Then Command1.Caption = "关闭串口(&C)"Command2.Enabled = TrueIf Combo3.Text = "无" Thenstr = "n"End IfIf Combo3.Text = "奇校验" Thenstr = "o"End IfIf Combo3.Text = "偶校验" Thenstr = "e"End IfIf Combo3.Text = "空格" Thenstr = "s"End IfIf Combo3.Text = "标记" Thenstr = "s"End If'---------------端口识别---------------For Port = 1 To 255s1(Port) = "COM" & PortIf Combo5.Text = s1(Port) ThenmPort = PortMSComm1.PortOpen = TrueIf MSComm1.PortOpen = True ThenRichTextBox2 = "COM" & Port & "已成功打开。

如何用VB编写串口程序

如何用VB编写串口程序

如何用VB编写串口程序VB控件MSComm功能介绍VB中的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开发串口USB通信软件

使用VB开发串口USB通信软件

使用VB开发串口USB通信软件串口和USB通信软件是一种用于在计算机和外部设备之间进行数据传输的工具。

VB语言是一种适用于Windows平台的编程语言,可以使用VB 开发串口、USB通信软件。

串口通信是一种常见的数据传输方式,它通过计算机的串口(串行通信口)与外部设备进行连接。

在VB中,可以使用SerialPort类来实现串口通信。

下面是一个使用VB编写的串口通信软件的示例代码:```vbImports System.IO.PortsPrivate WithEvents SerialPort As New SerialPortPublic Sub New'设置串口参数SerialPort.PortName = "COM1"SerialPort.BaudRate = 9600SerialPort.Parity = Parity.NoneSerialPort.DataBits = 8SerialPort.StopBits = StopBits.OneEnd SubPublic Sub Open'打开串口SerialPort.OpenEnd SubPublic Sub Close'关闭串口SerialPort.CloseEnd SubPublic Sub WriteData(ByVal data As String)'向串口写入数据SerialPort.WriteLine(data)End SubPrivate Sub SerialPort_DataReceived(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs) HandlesSerialPort.DataReceived'串口接收到数据时触发的事件Dim data As String = SerialPort.ReadLine'处理接收到的数据Console.WriteLine("Received data: " & data)End SubEnd Class```USB通信是另一种常用的数据传输方式,它通过计算机的USB接口与外部设备进行连接。

visualbasic串口通信及编程实例

visualbasic串口通信及编程实例

visualbasic串口通信及编程实例Visual Basic串口通信及编程实例在实际的工业控制、机器人控制、智能家居等领域中,使用串口通信是一种非常广泛的方式。

Visual Basic (VB) 是一种微软公司开发的高级编程语言,它不仅易于学习,而且拥有丰富的图形界面设计和数据处理功能。

在本篇文章中,我们将深入介绍如何使用VB实现串口通信。

1. 建立串口通信首先,我们需要在VB中创建一个新的窗口(Form),然后打开工具箱,从中拖拽出一个SerialPort(串口)控件。

在控件属性中,我们需要为其指定相关的参数,例如串口名称、波特率、数据位、停止位、校验位等。

通常情况下,这些参数需要根据硬件设备的配置来进行调整。

在VB中实现串口通信的核心部分是对于SerialPort控件的事件监控。

具体来讲,当SerialPort收到一个数据包时,它会触发一个DataReceived事件。

对于这个事件,我们可以在程序中编写回调函数进行处理。

例如:Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e AsSystem.IO.Ports.SerialDataReceivedEventArgs) HandlesSerialPort1.DataReceived'在这里实现对于数据包的解析和处理End Sub2. 数据读取和发送在SerialPort控件中,有几种方法可以实现数据的读取和发送。

下面我们将介绍其中两种方法:(1) ReadExisting这个方法可以从串口中读取所有现有的数据,例如:Dim data As String = SerialPort1.ReadExisting()(2) Write这个方法可以向串口发送数据,例如:SerialPort1.Write("Hello World")注意,这个函数只能发送字符串数据。

VB串口编程

VB串口编程

VB串口编程现有电子秤台使用串口和计算机进行通讯编写VB来访问串口达到读取电子秤上显示数据该电子秤为BE01型仪表输出为RS-232C标准接口波特率为300-9600、偶校验、7个数据位、2个停止位所有均发送11位ASCII码个起始位在VB中和串口通讯需要引入Control控件MSComm串口通讯Control控件(在Microsoft Comm Control 6.0中)具体如下:Control控件简称: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_LoadClearTextWith MSC.CommPort = 1 '设置Com1为通信端口.Settings = "9600,E,7,2" '设置通信端口参数9600赫兹、偶校验、7个数据位、1个停止位.(这里需要进步介绍说明是:.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 ClearTextText3.Text = ""Text2.Text = "5"Text1.Text = ""End SubPrivate Sub Command1_ClickClearText' nRece = 0 '计数器清零With MSC.InputMode = comInputModeBinary '设置数据接收模式为2进制形式.InBufferCount = 0 '清除接收缓冲区If Not .PortOpen Then.PortOpen = True '打开通信端口End IfEnd WithEnd SubPrivate Sub MSC_OnCommDelayTime ‘用来延续时间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 DelayTimeDim 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 = TrueEnd Sub(通信传输速率为9600bps则最快速度1.04ms发送个字节仪表每秒发送50帧数据每帧数据有4个字节即每秒发送200个字节平均5.0ms 发送个字节连续读取串口数据时要在中添加循环等待)Private Sub SwichVar(ByVal nNum As Integer)DelayTimevar = Nullvar = MSC.InputOut(nNum) = var(0)End Sub(设置接收数据模式采用2进制形式即InputMode=comInputModeBinary但用Input属性读取数据时不能直接赋值给Byte 类型变量只能通过先赋值给个V ariant 类型变量返回个2进制数据再转换保存到Byte类型数变量中)Private Sub Text1_ChangeText3.Text = CText(Text1.Text) - CText(Text2.Text)End Sub**************************************************************************** Private Function CText(ByVal str As String) As CurrencyIf str <> "" ThenCText = CCur(Val(str))ElseCText = 0End IfEnd Function。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

regsvr32 C:\Windows\SysWOW64\MSCOMCTL.OCX
注册控件
河南理工大学 交通信息工程与控制系
17
11.4 VB6.0串口通信控件
(2)属性、事件与使用步骤
加入通信部件 设置通信端口号 设置通信协议 设置传输参数 设置其它参数 打开通信端口 送出或读入字符串
And

8 Mod 2=0 And 8 Mod 3=0,值为False。只有当两个表达式的值都为真 (True)时,结果才为真,否则为假(False) 8 Mod 2=0 Or 8 Mod 3=0,值为真(True)。两个表达式中只要有一个 为真时,结果就为真;只有当两个表达式的值都为假(False)时,结 果才为假 Not 1>0,值为False,由真变假;Not 1<0,值为True,由假变真
实 例
7\2值为3,12.58\3.45值为4(两边先四舍五入再运算)
Mod
+ -
求余数
加 法 减法、取负
7 mod 2值为1,12.58 Mod 3.45值为1(两边先四舍五入再运算)
1+2 5-8, -3
河南理工大学
交通信息工程与控制系
21
11.5 VB语言基础
(2)运算符
运算符 名称 实例说明
9
11.2 VB6.0编程基础
(3)工程资源管理器
河南理工大学
交通信息工程与控制系
10
11.2 VB6.0编程基础
(4)属性窗口
河南理工大学
交通信息工程与控制系
11
11.2 VB6.0编程基础
(5)代码编辑窗口
河南理工大学
交通信息工程与控制系
12
11.3 VB6.0窗体
(1)属性
河南理工大学
现场总线与工业以太网
第十一讲 VB串口编程
主要内容
VB6.0简介
VB6.0编程基础
VB6.0窗体
VB6.0串口通信控件
VB语言基础
河南理工大学
交通信息工程与控制系
2
11.1 VB6.0简介
(1)VB6.0
Beginners All-Purpose Symbol Instruction Code
交通信息工程与控制系
13
11.3 VB6.0窗体
(2)事件
常用事件
Click DblClick
Load
Unload Resize Activate
河南理工大学
交通信息工程与控制系
14
11.3 VB6.0窗体
(3)方法
常用方法
Print Cls
Move
Show Hide
河南理工大学
目录列表框(DirListBox) —
形状(Shape) —————— 图像框(Image) ————— 河南理工大学 交通信息工程与控制系
———— 文件列表框(FileListBox)
————————— 画线(Line) ——————— 数据库(Data)
16
11.4 VB6.0串口通信控件
(1)控件的添加
河南理工大学
交通信息工程与控制系
5
11.2 VB6.0编程基础
(1)开发环境
菜单栏 工具栏 工具箱 属性窗口 标题栏 工程管理 窗口
窗体设计窗口 立即窗口
布局窗口
河南理工大学
交通信息工程与控制系
6
11.2 VB6.0编程基础
(2)工具箱
指针(选择对象) ———— ————— 图片框(PictureBox)
——————文本框(TextBox)
—— 命令按钮(CommandButton) ———— 单选按钮(OptionButton) ——————— 列表框(ListBox) ———— 垂直滚动条(VscrollBar) —— 驱动器列表框(DriveListBox) ———— 文件列表框(FileListBox) ————————— 画线(Line) ——————— 数据库(Data)
标签(Label) ——————
框架(Frame) —————— 复选框(CheckBox) ——— 组合框(ComboBox) ——— 水平滚动条(HscrollBar)—— — 定时器(Timer) ————— 目录列表框(DirListBox) — 形状(Shape) —————— 图像框(Image) —————
可视化
河南理工大学
交通信息工程与控制系
3
11.1 VB6.0简介
(2)VB6.0发展
1991年 Visual Basic1.0 1992年 Visual Basic2.0 1993年 Visual Basic3.0 1995年 Visual Basic4.0 1997年 Visual Basic5.0 1998年 Visual Basic6.0
4
11.1 VB6.0简介
(3)VB6.0的特点
提供了面向对象的可视化编程工具 事件驱动的编程方式 结构化的程序设计语言 提供了易学易用的应用程序集成开发环境
支持多种数据库系统的访问
支持动态数据交换( DDE)、动态链接库( DLL) 和对象的链接与嵌入(OLE)
完备的Help联机帮助功能
交通信息工程与控制系
15
11.3 VB6.0窗体
(4)扩展
其它控件都具有类似于窗体的属性、事件和方法。
指针(选择对象) ———— 标签(Label) —————— 框架(Frame) —————— 复选框(CheckBox) ——— 组合框(ComboBox) ——— 水平滚动条(HscrollBar)—— — 定时器(Timer) ————— ————— 图片框(PictureBox) ——————文本框(TextBox) —— 命令按钮(CommandButton) ———— 单选按钮(OptionButton) ——————— 列表框(ListBox) ———— 垂直滚动条(VscrollBar) —— 驱动器列表框(DriveListBox)
学习版
专业 版
支持Microsoft COM标准,可生成ActiveX控件,可以用 Visual Basic生成自己的自定义控件和DLL。
功能和性能都大大增强了,它还提供了新的、灵巧的数据 库和Web开发工具,如增加了新的SQL Server交互方法,包括数 据库的访问,使用数据库的新工具和控件等
交通信息工程与控制系
河南理工大学
交通信息工程与控制系
7
11.2 VB6.0编程基础
(2)工具箱
河南理工大学
交通信息工程与控制系
8
11.2 VB6.0编程基础
(2)工具箱
Ocx(Object Linking and Embedding Control eXtension)文 件的路径+名称
河南理工大学
交通信息工程与控制系
对象型
Object
4
任何对象的引用
变体型
Variant
若存放数值类型数据,占16个字节,最大可达Double的范围; 若存放字符串类型数据,字符串长度与变长字符串相同
河南理工大学
交通信息工程与控制系
20
11.5 VB语言基础
(2)运算符
运算符
^ * / \
名 称
乘 方 乘 法 除法 整 除 2^3值为8,-2^3值为-8 5*8 7/2,计算结果为3.5
Or

Not

河南理工大学
交通信息工程与控制系
22
11.5 VB语言基础
(3)基本结构
语句1 语句2 (a)顺序结构 假 语句1

表达式

语句2
表达式

(b)选择结构
语句
(c)循环结构 河南理工大学 交通信息工程与控制系
23
字节数
2 4 4 8 1
取值范围和有效位数
精确表示-32768~32767范围内的整数 精确表示-2147483648~2147483647范围内的整数 -3.402823×1038~-1.401298×10-45 1.401298×10-45~3.402823×1038 6位有效位数
-1.79769313486232×10308 ~ -4.94065645841247×10-324 4.94065645841247×10-324 ~ 1.79769313486232×10308 15位有效位数
0~255
每个字符占1个字节,每个字符串最多可存放约20亿个字符 size是小于65535的无符号整常数,为字符串长度 2 True或False
交通信息工程与控制系
19
11.5 VB语言基础
(1)数据类型
类 型
货币型 日期型
名 称
Currency Date
字节数
8 8
取值范围和有效位数
-922337203685477.5808~922337203685477.5807 100.1.1~9999.12.31
使用完后关闭端口
河南理工大学
交通信息工程与控制系
18
11.5 VB语言基础
(1)数据类型
类 型
整 型 长整型 单精度浮点型 双精度浮点型 字节型 变长字符串 定长字符串 逻辑型 河gle Double Byte String String*size Boolean
河南理工大学
这在当时引起了很大的轰动。许多专家把Visual Basic的出 现当作是软件开发史上的一个具有划时代意义的事件。 包含了一组由微软公司和其他公司开发的自定义控件。 包含了变体数据类型、预定义True、False常量和对象变量
相关文档
最新文档