admin 管理员组

文章数量: 1087652


2024年3月19日发(作者:文件服务器软件)

VB串口通讯USB通讯,很有用哦

1、VB完成串口通信。一种是用VB供应的具有强大功能的通信控件;另一种方法是调

用WINDOWSAPI函数,使用WINDOWS供应的通信函数编写移植性强的应用程序;第三

是利用文件的输入/输出完成,该方法简便易行,但有确定的局限性。一、利用通信控件

〔MSCOMM〕完成串口通信VB供应了通信控件MSCOMM,文件名为。

该控件可设置串行通信的数据发送和接收,对串口状态及串行通信的信息格式和协议进行

设置。在通信过程中可以触发OnComm大事,在该大事过程进行数据检验处理及检错,

还可以通过编程访问CommEvent属性来了解通信的状况,进行收发数据的处理。每个通

信控件对应一个串口,如

2、果要访问多个通信口,则要设计多个通信控件。1、通信控件的大事及基本属性〔1〕

大事OnComm:通信控件只供应了一个大事,该大事的触发可以对串口的通信大事及错

误进行处理。通过对CommEvent属性的推断可知当前的通信错误和大事,分别对每个

CommEvent值进行编程就完成了对各个错误和大事的处理。如:

CommEvent=MSCOMM—EV—SEND表示发送大事。这些信息可从VB供应的常量文件

中查出。〔2〕属性CommPort:设置通信控件与哪个串口相连接,设置

并返回通信口号。Setting:设置通信的信息格式,为字符型。挨次为:波特率、校验、数

据位、停止位。Por

3、tOpen:布尔型、开关通信口。InputLen:从接收缓冲区读取字符个数。Input,

Output:读取接收缓冲区或写入发送缓冲区字符。以上五种属性对串口完成基本的设置和

操作,下面的三种属性是描述如何利用VB供应的大事驱动机制来实现通信。CommEvent:

返回通信过程中产生的错误信息及大事,了解通信状况。SThreshold:设置并返回不触发

OnComm大事时发送缓冲区被允许的最少字符数。当缓冲区的字符少于设置的值时,则

第 4 页

触发OnComm大事,并把CommEvent设为MSCOMMM—EV—SEND。当

SThreshold=0则禁止发送触发OnComm大事,当SThreshold=1则

4、发送缓冲区为空时就触发OnComm大事。利用这一属性,就可完成发送数据后

的一系列操作。如:对刚发送的数据进行处理,当串口是和MODEM通信时,发送完数据

后可进行撤除线路联接、挂机等操作。RThreshold:设置并返回不触发OnComm大事时

接收缓冲区被允许的最多字符数。当缓冲区的字符多于设置的值时,则触发OnComm大

事,并把CommEvent设为MSCOMM—EV—RECEIVE,当RThreshold=0则禁止接收

触发OnComm大事,当RThreshold=1则接收缓冲区有一个或更多字符时就触发

OnComm大事。利用这一属性,就可完成对串口接收数据的处理。2、利用通信控件的实

例S

5、ubForm1—load〔〕′设置

rt=g=9600,o,8,1′波特率:9600奇校验,8

位数据,1位停止位en=0′读取接收缓冲区的全部字符

ferSize=512′设置发送缓冲区为512字节erSize=512′设

置接收缓冲区为512字节hold=0′禁止发送大事hold=1′

每一个字符到接收缓冲区都触发接收大事′设置

rt=g=24

6、00,e,8,1′波特率:2400偶验,8位数据,1位停止位en=0′读

取接收缓冲区的全部字符ferSize=512′设置发送缓冲区为512字节

erSize=512′设置接收缓冲区为512字节hold=1′发送缓

冲区空触发发送大事hold=0′禁止接收大事′打开COM1,

en=en=al=5000EndSub

第 5 页

SubComm1—OnComm〔〕DimInbuffasstrin

7、gDimiasinteger,nasinteger,

encaseMSCOMM—EV—RECEIVEInbuff=Co

=len〔Inbuff〕Fori=1tont=Asc〔Mid〔Inbuff,i,1〕〕

orHFFprintfNextiEndSelectEndSubSubComm2—OnComm〔〕

entCaseMSCOMM—EV—SENDPrinttimeEndSelectEnd

SubSubTimer1—Timer〔〕=Second〔No

8、w〕Endsub二、通过调用API函数实现通信以上说明白用VB供应的控件实现通

信的方法,只要理解了VB控件的机制就很简洁完成对串口的操作,但可移植性差。但VB

可以很简洁调用API函数实现通信。1、VB对API的调用VB使用动态链接库DLL

〔DynamicLinkLibraries〕的力量,大大扩展了其功能。WINDOWS本身供应了API函

数包括三大动态链接库:KERNEL库、GDI库、USER库,通过VB用户可以直接调用这些

库中的函数。调用之前,必需首先在VB中声明。该声明可为模块级或窗体级,当作为模

块级声明时,其作用域为全部FORM和MODULE,而作为窗体级声明时其作用域为该声

明所在

9、的FORM。VB调用DLL的格式:DeclareSub过程名Lib″库名″[Alias″别名″]〔[ByVal

参数As类型]〕DeclareFunction函数名Lib″库名″[Alias″别名″]〔[ByVal参数As类型]〕

As类型在声明中:DECLARE表示声明DLL中的函数,当声明是不具有返回值的过程时用

SUB关键字,而假如调用的函数具有返回值,则必需用FUNCTION关键字将其声明为函

数并在声明语句的最终用AS指明函数返回值的类型。LIB关键字表示当前声明的过程或

第 6 页


本文标签: 大事 设置 声明 供应