vb串口通讯usb通讯,很有用哦
使用VB中的MSComm控件实现串口通信
使用VB中的MSm控件实现RS-232串口通信实验准备:需要准备一些与串口通信有关的设备,如〔外置式〕调制解调器、计算机串口与调制解调器的连接线、一根DTE到DTE的无调制解调器连接线〔接法见本章有关习题的参考答案〕,在实验前检查计算机的两个串口是否能够正常工作。
实验环境:Windows 95/98操作系统,Microsoft VB 5.0以上程序设计环境。
对例题中涉及调制解调器的容,采用计算机与调制解调器连接的方式;对在例题中设计数据传输的容,须事先将DTE到DTE 的无调制解调器连接线的两端,分别插入1和2串口。
实验说明:VB中的MSm控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSm控件提供以下两种处理通讯的方式:〔1〕事件驱动(实时)方式,这是处理串行端口交互作用的一种非常有效的方法。
在许多情况下,在事件发生时需要得到通知,例如,在Carrier Detect〔CD〕或RequestToSend〔RTS〕线上一个字符到达或一个变化发生时。
在这些清况下,可以利用MSm 控件的Onm事件捕获并处理这些通讯事件。
Onm事件还可以检查和处理通讯错误。
〔2〕轮询方式,在程序的每个关键功能之后,可以通过检查mEvent 属性的值来查询事件和错误。
如果应用程序较小,并且是自保持的,这种方法可能是更可取的。
例如,如果写一个简单的拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的"OK〞响应。
每个使用的MSm控件都对应着一个串行端口。
如果应用程序需要访问多个串行端口,必须使用多个MSm控件。
可以在Windows"控制面板〞中改变端口地址和中断地址。
下面这个简单的例子采用了轮询方法演示了用调制解调器进展根本的串行通讯:Private Sub Form_Load〔〕Dim Instring As String '保存输入子串的缓冲区MSm1.mPort=3 '使用3。
VB串行通讯
VB串行通讯利用VB开发通信程序主要的方法有两种,一是利用VB本身提供的控件(CONTRALS),另一种方法是利用WINDOWS API应用程序接口,WINDOWS API 主要提供了三个动态连接库KERNEL.EXE、USER.EXE、GDI.EXE供开发人员调用,其中KERNEL.EXE 主要包括一些底层操作函数,完成一些资源管理、任务、内存等操作,USER.EXE包含了一些与WINDOWS管理有关的函数,如通讯、菜单、消息、光标、插入符、计时器以及绝大多数非显示函数,GDI.EXE图形设备接口库,主要内容为与设备输出有关的函数。
和串口通讯有关系的函数BuilidCommDCB、ClearCommBreak、SetCommBreak、FlushComm、GetCommError、GetCommState、WriteComm、ReadComm、SetCommState、CloseComm等均在\Windows\system 子目录下的USER.EXE动态连接库中,在VB调用之前应该先在全局变量定义处声明API通讯函数、定义常量。
在我们的实践中,用VB 控件实现通讯的方法比调用SDK的API动态连接库的方法更加方便、快捷,而且用较少的代码可以实现相同的功能,这就是用VB 控件实现通讯的优点所在,下面主要介绍一下利用VB 控件实现无线通讯的问题。
在VB的控件工具箱中,提供了一个使用非常方便的串行通讯控件MSComm,它全面的提供了使用RS-232串行通讯上层开发的所有细则,它既可以使用查询方式又可以使用事件驱动方式来完成串行通讯。
在MSCOMM控件中提供了一系列的编程要素,这些编程要素有属性、事件和函数,利用这些要素编程,可以实现几乎全部的串行通讯功能。
在VB中提供了30多个属性、一个事件和两个函数,其中主要的属性为CommPort、Settings、PortOpen、InBufferSize、OutBufferSize、InBufferCount、OutBufferCount、Break、InputLen、SThreshold、Rthreshold、RTSEnable、CommEvent、ParityReplace、NullDiscard等。
用vb实现USB接口设备数据传送
四、结论
Байду номын сангаас
实际编程表明使用VB开发HID类USB设备是一条非常方便快捷的途径,不需要编写底层驱动,涉及到的API函数多是大家熟知的通用函数。但同时还必须注意到一点,HID类只支持控制传输与中断传输。控制传输通常不用于数据的传输,而中断传输的特点是保证最大延迟,也就是事务之间的时间。它没有保证传输速率,而是保证每笔事务之间的时间不会超过最大延时。所以中断传输适用于数据量不太大,但需要及时快速地传送,实时性要求较高的场合。对于数据量比较大的传输,是不宜使用中断传输的。因此HID设备应用的场合也必须根据该特点灵活使用。
来源: http://www.cxy.me/bbs/viewbbs.asp?BoardID=21&ID=25331&star=1&skin=0
当Windows检测到一个新的USB外设时,必须做的一件事情是找出应该使用哪个设备驱动应用软件来与设备通信,然后载入选定的驱动。这是Windows设备管理器的工作,设备管理器使用类、设备安装器和INF文件来找到这个匹配。
INF文件是一个文本文件,其中包括有利于Windows识别设备的信息。文件告诉Win-dows要使用什么驱动、注册表里存储什么信息等。
(2)从设备读取数据Declare Function ReadFile Lib_“kernel32”_(ByValhFile As Long,_ByReflpBuffer As Byte,_ByValnNumberOfBytesToRead As Long,_ByReflpNumberOfBytesRead As Long,_lpOvefiapped As Long)_As Long
用VB实现基于USB的虚拟串口通讯
VB6.0环境下基于USB的虚拟串口通讯实现电路图以FTDI公司的FT232BL芯片为核心设计并实现了基于USB接口的计算机与单片机之间的虚拟串口通讯。
单片机采用Philips公司P89系列单片机,完成数据的存储。
计算机在Windows 环境下利用MSComm通讯控件实现上位机与下位机之间的数据传输。
在此提出了PC机对虚拟串口的自动识别方法,并提供了程序的源代码。
实验结果表明,用虚拟串口实现计算机与单片机之间的USB通信,具有速度快,软件实现简单等优点。
0引言数据传输是现代通讯过程中的一个重要环节,在数据传输过程中,不仅要求数据传输的准确率要高,而且要求速度快、连接方便。
传统的RS232串口通讯和并口通讯都存在传输速度低、扩展性差、安装麻烦等缺点,而基于USB接口的数据传输系统能够较好地解决这些问题。
目前,USB接口以其传输速率高、即插即用、支持热插拔等优点,逐步成为PC机的标准接口。
本文中的数据传输系统采用了USB接口进行上位机与下位机之间的数据通讯。
下位机采用Philips公司P89系列单片机,完成数据的存储。
上位机通过VB6.0编程,实现上位机与下位机之间的数据传输。
1数据传输系统的总体设计系统的硬件部分主要包括2部分:上位机端和下位机端。
上位机采用PC机或笔记本电脑,操作系统为Windows XP,实现上位机和下位机之间的数据传输、显示、处理、存储及查询功能。
系统的下位机采用philips公司P89系列单片机,完成数据的存储。
下位机为一个手持的数据存储仪,由USB转串口数据转换模块、TTL转RS422总线模块、中央处理模块、显示模块、存储模块、电源模块等组成。
上位机与下位机的连接利用PC机自带的USB接口,原理框图如图1所示。
图1数据传输系统原理框图把数据记录卡插入数据存储仪内,可把卡内数据转存到存储模块。
数据存储仪通过USB口与PC机连接,把所存数据传输到上位机,上位机对数据进行显示、处理及存储。
【推荐下载】基于VB的串口通讯
基于VB的串口通讯现在通讯方式越来越多,速度越来越快,但串行通讯由于自身价格低、协议透明、硬件投资少、软件编程简单等诸多优点在远程数据采集、监视、通信及控制领域里一直占据着极其重要的地位。
以下是VB的串口通讯。
1串口通信的通信机理 PC串行通信是指直接对串行端口的UART(PC机的通用异步收发器,也叫异步通信适配器,是PC机用于异步通信的接口)进行编程实现的通信。
PC机每个UART中的INS8250中有10个可编程的单字节寄存器,可用于控制、监视操作串行端口,COM1的寄存器地址3F8H-3FEH,COM2的寄存器地址为2F8H-2FEH。
10个寄存器由7个地址访问,其中5个寄存器的访问条件是先设置3FBH线路控制寄存器的最高位为 1 ,该位也称为DLAB状态位。
[1] 一般说来,PC机都有一个或多个串行端口,它们依次为Com1、Com2 。
这些串口提供了外部设备与PC进行数据传输和通信的通道,在CPU和外设之间充当了解释器的角色。
当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;而当接受数据时,从外界进来的比特流数据被转换成字符数据传递给CPU进行处理。
在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接受数据。
当用通信控件或声明调用API函数时,它们由COMM.DRV解释并传递给设备驱动程序。
作为一个VB程序员,要编写串口通信程序,只需知道通信控件提供给Windows通信API函数的接口即可,换言之,只需设定和监视通信控件的属性和时间即可。
2串行通讯接口RS-232 前一章节讨论了串口通讯的通信机理,但为了实现具体的数据采集、监视、通信功能,必须了解具体的串口形式。
目前使用最广泛的串行接口有两种:RS-232和RS-485。
本文着重讨论RS-232,RS- 485不作介绍。
tips:感谢大家的阅读,本文由我司收集整编。
仅供参阅!3G,指第三代移动通信技术。
VB上位机串口通讯
'初始化代码Private Sub Form_Load() '窗体被加载时产生If MSComm1.PortOpen = True Then '串口查看是否打开,打开则关闭MsgBox "端口已经打开", 2'MSComm1.PortOpen = FalseEnd IfWith MSComm1.CommPort = 3 '设置串口3.Settings = "9600,n,8,1".InputLen = 0 '读取接收缓冲区所有字符.InBufferSize = 1024 '设置接收缓冲区1024字节.OutBufferSize = 512 '设置发送缓冲区512字节.InputMode = comInputModeText. '采用文本传输'.PortOpen = True '打开串口.SThreshold = 0 '一发送数据就触发OnComm事件.RThreshold = 1 '接收到一个字节就触发OnComm事件.InBufferCount = 0 '清除发送缓冲区数据.OutBufferCount = 0 '清除接收缓冲区数据End WithText_send.Text = ""Text_recv.Text = ""Text_send_16.Text = ""End Sub'清空对话框数据Sub Command3_Click(Index As Integer)Text_send.Text = ""Text_recv.Text = ""Text_send_16.Text = ""End Sub'通讯端口选择Private Sub Combo1_Click()If Combo1.Text = "com1" Then '通讯端口号设置mPort = 1'Text1 = 1ElseIf Combo1.Text = "com2" ThenmPort = 2'Text1 = 2ElseIf Combo1.Text = "com3" ThenmPort = 3'Text1 = 3ElseIf Combo1.Text = "com4" ThenmPort = 4'Text1 = 4ElsemPort = 5'Text1 = 5End IfEnd SubPrivate Sub Combo2_Click()If Combo2.Text = "9600,e,8,1" ThenMSComm1.Settings = "9600,e,8,1"ElseIf Combo2.Text = "9600,n,8,1" ThenMSComm1.Settings = "9600,n,8,1"ElseIf Combo2.Text = "57600,n,8,1" ThenMSComm1.Settings = "57600,n,8,1"End IfEnd Sub'发送数据Private Sub Command1_Click(Index As Integer)'判断是否选择了端口与通讯方式If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2Exit SubEnd If'保证串口打开If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd If'发送数据MSComm1.Output = Text_send.Text'延时For i = 1 To 2000000Next iEnd Sub'发送16进制数据Private Sub Command4_Click(Index As Integer)'判断是否选择了端口与通讯方式If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2Exit SubEnd If'保证串口打开If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd If'发送数据Dim a, b As String'Dim a As Long, b As Stringa = Text_send_16.Textb = CLng("&H" & a)MSComm1.Output = b'延时For i = 1 To 2000000Next iEnd SubPrivate Sub Command2_Click(Index As Integer)'判断是否选择了端口与通讯方式If CBool(Combo1.Text = "请选择") Or CBool(Combo2.Text = "请选择") = 1 Then MsgBox "请设置端口号与通讯方式", 2Exit SubEnd If'保证串口打开If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd If'接受数据Dim str As Stringstr = MSComm1.Input '从接收队列中读入字符串Text_recv.Text = Text_recv.Text & str '读出字符串送显Text_recv.Text = Text_recv.Text & "" & vbCrLf '文本换行符End Sub。
VB实现串口通讯
VB实现串口通讯目前,Visual Basic (简称VB)已成为WINDOWS 系统开发的主要语言,以其高效、简单易学及功能强大的特点越来越为广大程序设计人员及用户所青睐。
VB 支持面向对象的程序设计,具有结构化的事件驱动编程模式并可以使用无限扩增的控件。
在VB 应用程序中可以方便地调用WINDOWS API函数,使得编程效率提高,应用功能增强。
利用VB 提供的这些功能,我们可以有三种方法完成串口通信。
一种是用VB 提供的具有强大功能的通信控件;另一种方法是调用WINDOWS API 函数,使用WINDOWS 提供的通信函数编写移植性强的应用程序;第三是利用文件的输入/ 输出完成,该方法简便易行,但有一定的局限性。
一、利用通信控件(MSCOMM)完成串口通信VB 提供了通信控件MSCOMM,文件名为MSCOMM. VBX。
该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行设置。
在通信过程中可以触发OnComm事件,在该事件过程进行数据检验处理及检错,还可以通过编程访问CommEvent 属性来了解通信的情况,进行收发数据的处理。
每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。
1、通信控件的事件及基本属性(1)事件OnComm:通信控件只提供了一个事件,该事件的触发可以对串口的通信事件及错误进行处理。
通过对CommEvent 属性的判断可知当前的通信错误和事件,分别对每个CommEvent 值进行编程就完成了对各个错误和事件的处理。
如:CommEvent = MSCOMM—EV—SEND 表示发送事件。
这些信息可从VB 提供的常量文件CONSTANT. TXT中查出。
(2)属性CommPort :设置通信控件与哪个串口相连接,设置并返回通信口号。
Setting :设置通信的信息格式,为字符型。
顺序为:波特率、校验、数据位、停止位。
PortOpen :布尔型、开关通信口。
串口通讯及其在VB平台下的实现
串口通讯及其在VB平台下的实现摘要:本文首先介绍串行通讯的基础知识,然后结合示例剖析在VB平台下的串口通讯的编程技巧。
随着计算机系统的普及与外围设备技术的发展,计算机与外围设备之间的通讯就显得越来越重要了。
由于串行通信是在一根传输线上一位一位的传送信息,所用的传输线少,并且可以借助现成的电话网进行信息传送,因此,特别适合于远距离传输。
对于那些与计算机相距不远的人-机交换设备和串行存储的外部设备如终端、打印机、逻辑分析仪、磁盘等,采用串行方式交换数据也很普遍。
在实时控制和管理方面,采用多台微机处理机组成分级分布控制系统中,各CPU之间的通信一般都是串行方式。
所以串行接口是微机应用系统常用的接口,而相应的应用程序也成为今年来研究的热点。
本文旨在阐述一般的穿口通讯的原理及其程序设计,希望借此能够抛砖引玉,为更深入的研究打下一定的基础。
一、串行通讯的基本原理所谓"串行通信"是指外设和计算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都占据一个固定的时间长度。
这种通信方式使用的数据线少,在远距离通信中可以节约通信成本,当然,其传输速度比并行传输慢。
相比之下,由于高速率的要求,处于计算机内部的CPU与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是实现CPU与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围设备输入计算机时,数据格式由位(bit)转化为字节数据;反之,当计算机发送下行数据到外围设备时,串口又将字节数据转化为位数据。
二、串口通讯的程序设计原理前面介绍了串行通讯的基本原理,那么如何在程序设计中实现它呢?事实上,这个过程并不复杂,一般有两种实现途径:其一就是使用MSCOMM控件,此控件提供很多方便操作的属性和方法,利用它们可以很方便地实现你的目的;另外一种途径就是使用Windows API,微软为开发者提供了很多相关的串行操作的编程接口,使用这些接口,可以很完成更为强大的功能。
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 的初步学习
【学习目的】
1.熟悉 Visual Basic 的基本概念。 2.掌握 Visual Basic 常用的语句。
【技能目标】
能初步使用 Visual Basic。
【相关知识】
知识一.Visual Basic
Visual Basic(简称 VB)是微软公司推出的一种可视化的、面向对象的结构化高级程 序设计语言,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一 种编程语言。无论是开发功能强大、性能可靠的商务软件,还是编写能处理实际问题的实用 小程序,VB 都是最快速、最简便的语言。它简单易学、容易掌握,软件界面设计非常便捷, 编程工作量较小,开发周期短,特别适合非计算机专业的工程技术人员掌握和使用。
2
计算机测控系统安装与调试
Else If <语句> Else <语句> End If
4.选择语句 用了过多的 Else 后你会感到很不方便,而且程序结构也不清晰,所以 VB 中还有选择语 句帮助解决这个问题。 VB 中的选择语句的格式是这样的: Select Case <变量名> Case <情况 1> <语句> Case <情况 2> <语句> …… Case <情况 n> <语句> Case Else <语句> End Select 其中:<变量名>可以是数值型或字符串型,而每个 Case 指定的<情况>的数据类型必须 与<变量名>的类型一致。 5.循环语句 循环结构是计算机语言里一种重要的结构,它的应用广泛,最简单的例子是累加器的作 用,更直观的例子是把某件事重复指定次数,这样就不用把要重复的语句输入多次,而通过 循环结构完成,非常方便。循环是指在指定的条件下多次重复执行一组语句。被重复执行的 一组语句称为循环体。VB 提供了 4 种结构形式的循环语句: (1)For ... Next 语句 C 语言里有一个“for”循环语句,VB 里也有“For”关键字,作用也差不多,只是 VB 的“For”语句更容易理解。它的格式是: For <循环变量>=<初赋值> To <终值> [Step <步长>] 循环体 [Exit For] Next <循环变量> <循环变量>必须为数值型。默认时,<步长>值为 1,<初赋值>小于<终值>。当开始执行 For 语句时,首先将<循环变量>初始化为<初赋值>,程序每循环一次,<循环变量>增 1,直 到<循环变量>到达<终值>时为止。 注意:在默认情况下,Step 被设为“1”,可以省略,Step 也可以设为负值,例如: Dim a=0 For I=1 To 10 a=a+I Next I 这是一个最简单的累加器的例子,把 1 到 10 累加在一起,然后赋值给“a”。下面的效
使用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接口与外部设备进行连接。
用VB6.0实现计算机间串口通信
用VB6.0实现计算机间串口通信作者:李永胜来源:《电脑知识与技术·学术交流》2008年第08期摘要:本文主要介绍利用VB6.0串行通信编程的方法,利用MSComm控件实现计算机与计算机间的串口通信。
关键词:串口通信;VB6.0;MSCOMM控件中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)08-10ppp-0c随着互联网的不断发展,计算机间的相互通信已非常普遍,只要通过计算机的串行口就可以实现。
而对于串口通信的编程软件,微软公司的Visual Basic 6.0(简称VB6.0)以其友好的开发界面、简单易用、实用性强等优点已在国内外得到广泛应用。
VB6.0提供了许多供用户选择的控件,这些控件以.OCX为文件后缀名,其中MSComm.OCX即是用于串行通信的控件。
如果需要使用该控件,可将控件添加到工具箱内,这样就可以利用该控件进行串行通信程序的设计。
下面这个例子,说明如何进行串行通信程序设计,该程序在Windows98环境下已调试通过。
在调试程序时,很难做到一个人同时占有两台计算机。
为此,可通过直接短接串口的2、3两个脚,即将串行口的2、3脚连接在一起,从而使发送的信息直接被本机接收。
这样,就可以在一台计算机上调试程序。
1 MSComm控件常用属性Commport 设置并返回通信端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen设置并返回通信端口的状态,也可以打开和关闭端口。
InBufferSize 设置并返回接收缓冲区的字符数。
Input 从接收缓冲区返回和删除字符。
InputLen设置并返回Input属性从缓冲区读取的字符数。
OutBufferSize以字符形式设置并返回传输缓冲区的大小。
Output向传输缓冲区写数据。
2 用户界面设计首先新建一个“标准EXE”工程,然后选择“工程/部件”菜单项,在“部件”对话框中选择Microsoft Comm Control6。
用VB通信控件实现串口通信
Setting:对串口通信的相关参数。包括串口通信的比特 率、奇偶校验、数据位长度、停止位等。其默认值是“9600, N,8,1”,表示串口比特率是 9600bit/s,不作奇偶校验,8 位数 据位,1 个停止位。
Portopen:设置串口状态,值为 True 时打开串口,值为 False 时关闭串口。
对 MSComm 控件设置相应的属性和事件,就可以进行串 行通信了 [2]。
(1) MSComm 的属性 由于 MSComm 控件属性很多,在这里仅介绍与实现串口 通信密切相关的重要属性。 Commport:设置通信所占用的串口号。如设成 1 (默认 值),表示对 COM1 进行操作。
本文收稿日期:2009-6-12
[2] 李长林. Visual Basci 串口通信技术与典型实例. 清华大学 出版社,2006,04.
作者简介 车飞,女 (1975-),计算机讲师,计算机应用。
-106-
3 PC 机间的串口通信
(1) 新建一个窗体,在上面放两个 Text 控件、两个 Com- mandButton 控件和两个 Label 控件。
(2) 在控件工具箱中的空白处点击鼠标右键,在弹出的 菜单中选择 “部件”,在弹出的窗口中的 控 件 列 表 中 找 到
(下转到 106 页)
- 80 -
电脑编程技巧与维护
Realize Serial Port Communication in VB Control
CHE Fei
(Siping Professional College,Siping 136002) Abstract: Through in VB Microsoft Communication Control (i.e. MSComm) attribute and the event carries on the corre- sponding programming operation, may with ease realize the serial port communication. Key words: Visual Basic; Serial Communication; MSComm Control
VB与USB
ቤተ መጻሕፍቲ ባይዱ
用 vb 实现 USB 接口设备数据传送
本文介绍了 USB 设备中的人机接口,HID 设备与主机通信的要点与方式。详细讲 解了在 VB 中调用相关 APl 函数的方法,并介绍了一种基于 USB 总线的数据采集系 统的设计方案及开发方法,采用的是 USB2.0 协议。 该系统主要是从设备的角度描 述了人机接口设备通信,以及用来与主机进行数据交换的报告格式。应用程序可 以使用任何能访问 API 函数的编程语言,调用窗口函数并与 USB 设备实现通信。 掌握 USB 设备与计算机通讯规程,实现 USB 设备的自动识别。为数据采集系统与 计算机之间的通讯开辟了新的道路。 这几年,随着大量支持 USB 的个人电脑的普及,USB 逐步成为 PC 机的标准接口已 经是大势所趋了。在主机(host)端,最新推出的 PC 机几乎 100%支持 USB;而在外 设(device)端,使用 USB 接口的设备也与日俱增,例如数码相机、 扫描仪、 游戏杆、 磁带和软驱、图像设备、打印机、键盘、鼠标等。 二、Windows 系统选择 USB 驱动的过程 当 Windows 检测到一个新的 USB 外设时,必须做的一件事情是找出应该使用哪个 设备驱动应用软件来与设备通信,然后载入选定的驱动。这是 Windows 设备管理 器的工作,设备管理器使用类、设备安装器和 INF 文件来找到这个匹配。 INF 文件是一个文本文件,其中包括有利于 Windows 识别设备的信息。文件告诉 Win-dows 要使用什么驱动、注册表里存储什么信息等。 三、Visual Basic 与 USB 设备通信的设计与实现 使用 VB 语言访问串行通信接口的方法。Windows 在底层实现了和串行通信有关 的很多复杂的工作,给程序员提供了一个相对比较容易掌握的编程接口。例 如 Windows 自动将所有接收到的字符放到接收缓冲区中,而所有发送的字符也 都进入发送缓冲区。 只要程序空闲,程序就可以读取接收缓冲区获得数据,或者向 发送缓冲区发送数据。 1.主机寻找 USB 设备的过程 第一个被 Windows 支持的 USB 外围设备类是人机接口设备。HID 是 HUMANINTER-FACE DEVICE 人机接口设备的英文缩写。是指直接和人进行互动 的设备。如鼠标、键盘等。运行在 WINDOWS98 或其他更高的版本的操作系统的 PC 机,系统除了提供通用的 USB 设备的底层驱动以外,还单独提供了一些 HID 设 备的完整驱动,应用程序可以很容易地与操作系统内部的 HID 通讯。这样使得符 合 HID 类的 USB 设备很容易开发与运行。也就是说,我们如果想实现一个 USB 的 HID 类设备,是不需要在 Windows 下开发自己的驱动程序的。 HID 不一定要是标准 的外设类型,唯一的要求是交换的数据存储在报文的结构内,设备固件必须支持 报文的格式。任何工作在该限制之内的设备都可以成为一个 HID,例如温度计、 电压计、读卡机等。
使用VB开发串口、USB通信软件
寻 找EOF字符。
使用VB开发串口、USB通信软件
使用Windows的API应用程序接口
• Handshake常数。 Handshake常数如表所示。
常数
值
描述
comNone 0 无握手
comXonXoff 1 XOn/Xoff握手
使用VB开发串口、USB通信软件
使用串口通信控件
针对串口通信,微软公司专门提供了MSComm控件, 使用该控件进行串口通信设计是十分方便的,程序员不必 花时间去了解较为复杂的API函数。通过简单修改控件的 属性和使用控件提供的方法,就可以实现对串口的配置、 完成串口接收和发送数据。
使用VB开发串口、USB通信软件
使用VB开发串口、USB通信软件
使用Windows的API应用程序接口
• Settings属性的设置由4个设置组成,格式如下:
BBBB
P
D
S
各个属性值间用逗号隔开,其中BBBB为波特率,P为奇偶校验,D为数 据位数,S为停止位数。其默认值为“9600,N,8,1”。
• InputLen属性。设置并返回Input属性从接收缓冲区中读取的字符数。 InputLen 属性的默认值是0。设置InputLen为0时,使用Input将使MSComm 控件读取缓冲区中全部的内容。
4
comEvCD
5
comEvRing
6
使用VB开co发mE串v口EO、F USB通信7软件
描述 发送事件 接收事件 clear-to-send线变化 data-set ready线变化 carrier detect线变化 振铃检测 文件结束
vb串口VB串口使用心得体会两则
vb串口:VB串口使用心得体会两则
疯狂代码 / ĵ:http://VisualBasic/Article53081.html
最近在使用VB设计串口获心得体会两则欲和君共享如果对则褒奖如果不对则欢迎指教 心得体会1:串口输出属性:
按照书上或是MSDN中给出OUTPUT数据类型是串或VARIANT类型我出现问题是我想传送0至255的间数可是按照以上输出数据类型进行设置化传输不了诸如200210等大于125数我又不想按照帖子上介绍文章进行转换于是有了点心得体会: 将给OUTPUT变量数据类型设置为BYTE元素个数为1即可
Dim Sendtemp(0) As Byte
Const SendCmd = &H55
Sendtemp(0) = SendCmd
MSComm1.Output = Sendtemp 心得体会2:设置改变带来个问题
当你串口设置好后旦在以后你对串口某项设置改变后所有设置都需要重新设置如设定了串口端口号而没有设置串口输入模式如果你认为前面已经设置了输入模式而不去理他则他会用默认模式去处理你输入造成不必要麻烦本人就为此调试了会才找到此问题希望大家以后注意
2009-1-15 16:53:23
疯狂代码 /。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OnComm:通信控件只提供了一个事件,该事件的触发可以对串口的通信事件及错误进行处理。通过对CommEvent 属性的判断可知当前的通信错误和事件,分别对每个CommEvent 值进行编程就完成了对各个错误和事件的处理。如:CommEvent = MSCOMM—EV—SEND 表示发送事件。这些信息可从VB 提供的常量文件CONSTANT. TXT中查出。
完成发送数据后的一系列操作。如:对刚发送的数据进行处理,当串口是和MODEM通信时,发送完数据后可进行拆除线路联接、挂机等操作。
RThreshold :设置并返回不触发OnComm事件时接收缓冲区被允许的最多字符数。当缓冲区的字符多于设置的值时,则触发OnComm 事件,并把CommEvent 设为MSCOMM—EV—RECEIVE,当RThreshold = 0 则禁止接收触发OnComm 事件,当RThreshold = 1 则接收缓冲区有一个或更多字符时就触发OnComm事件。利用这一属性,就可完成对串口接收数据的处理。
comm1. OutBufferSize = 512 ′设置发送缓冲区为512 字节 comm1. InBufferSize = 512 ′设置接收缓冲区为512 字节
comm1. SThreshold = 0 ′禁止发送事件
comm1. RThreshold = 1 ′每一个字符到接收缓冲区都触发接收事件 ′设置COM2
(2)属性
CommPort :设置通信控件与哪个串口相连接,设置并返回通信口号。 Setting :设置通信的信息格式,为字符型。顺序为:波特率、校验、数据位、停止位。
PortOpen :布尔型、开关通信口。
InputLen :从接收缓冲区读取字符个数。
Input ,Output :读取接收缓冲区或写入发送缓冲区字符。
2、利用通信控件的实例
Sub Form1 —load ()
form1. show
′设置COM1
comm1. commport = 1
comm1. Setting = " 9600 ,o ,8 ,1" ′波特率:9600 奇校验,8位数据,1 位停止位
comm1. Inputlen = 0 ′读取接收缓冲区的所有字符
Print time
End Select
End Sub
Sub Timer1—Timer ()
Comm2. output = Second (Now)
End sub
二、通过调用API 函数实现通信
以上说明了用VB 提供的控件实现通信的方法,只要理解了VB 控件的机制就很容易完成对串口的操作,但可移植
性差。但VB 可以很容易调用API 函数实现通信。
comm2. commport = 2
comm2. Setting = "2400 ,e ,8 ,1" ′波特率:2400 偶验,8 位数据,1 位停止位
comm2. Inputlen = 0 ′读取接收缓冲区的所有字符
comm2. OutBufferSize = 512 ′设置发送缓冲区为512 字节 comm2. In冲区为512 字节
1、VB 对API 的调用
VB 使用动态链接库DLL(Dynamic Link Libraries) 的能力,大大扩展了其功能。WINDOWS 本身提供了API 函数包括三大动态链接库: KERNEL 库、GDI 库、USER 库,通过VB 用户可以直接调用这些库中的函数。调用之前,必须首先在VB 中声明。该声明可为模块级或窗体级,当作为模块级声明时,其作用域为所有FORM和MODULE,而作为窗体级声明时其作用域为该声明所在的FORM。 VB 调用DLL 的格式:
以上五种属性对串口完成基本的设置和操作,下面的三种属性是描述如何利用VB 提供的事件驱动机制来实现通
信。
CommEvent :返回通信过程中产生的错误信息及事件,了解通信状况。 SThreshold :设置并返回不触发OnComm事件时发送缓冲区被允许的最少字符数。当缓冲区的字符少于设置的值时,则触发OnComm事件,并把CommEvent 设为MSCOMMM—EV—SEND。当SThreshold = 0 则禁止发送触发OnComm 事件,当SThreshold = 1 则发送缓冲区为空时就触发OnComm事件。利用这一属性,就可
Sub Comm1 —OnComm()
Dim Inbuff as string Dim i as integer ,n as integer ,t as integer Select Case Comm1. CommEven case MSCOMM—EV—RECEIVE
Inbuff = Comm1. Input n = len ( Inbuff)
vb串口通讯usb通讯,很有用哦
VB 完成串口通信。一种是用VB 提供的具有强大功能的通信控件;另一种方法是调用WINDOWS API 函数,使用WINDOWS 提供的通信函数编写移植性强的应用程序;第三是利用文件的输入/ 输出完成,该方法简便易行,但有一定的局限性。 一、利用通信控件(MSCOMM) 完成串口通信
VB 提供了通信控件MSCOMM,文件名为MSCOMM. VBX。该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行设置。在通信过程中可以触发OnComm事件,在该事件过程进行数据检验处理及检错,还可以通过编程访问CommEvent 属性来了解通信的情况,进行收发数据的处理。每个通信控件对应一个串口,如果要访问多个通信口,则要设计多个通信控件。 1、通信控件的事件及基本属性
comm2. SThreshold = 1 ′发送缓冲区空触发发送事件 comm2. RThreshold = 0 ′禁止接收事件
′打开COM1 ,COM2
comm1. Portopen = True comm2. Portopen = True Timer1. interval = 5000 End Sub
For i = 1 to n
t = Asc (Mid ( Inbuff ,i ,1) ) or &HFF print f
Next i
End Select
End Sub
Sub Comm2 —OnComm()
Select Case Comm2. CommEvent Case MSCOMM—EV—SEND