admin 管理员组

文章数量: 1087139


2024年3月19日发(作者:args是什么意思python)

基于VB6.0的串口通信方法

串口通信在数据采集中有着广泛的应用,因为串口通信通信线路简单、灵活方便、数

据可靠。作为快速开发,利用VB开发串口通信程序既可以使用MSComm控件也可以调

用WindowsAPI函数实现。这里我们使用VB6.0提供的MSComm控件,因为MSComm

控件的功能和API调用一样强,甚至更好且使用起来更加简单,能很方便地实现所需的串

口通信功能。

1.MSComm控件简介

MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX

控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两

种处理通信问题的方法:一是事件驱动方法,当串口通信产生错误时,MSComm控件会

触发OnComm事件,程序员可以在OnComm事件处理函数中加入自己的处理代码。另

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

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

控件的常用属性

MSComm控件有很多重要的属性,但首先必须熟悉几个关键属性。

CommPort 设置并返回通讯端口号

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

1

PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口

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

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

3.程序代码设计

利用MSComm控件编写串口通信程序是十分便利和简单的。下面我就事件驱动方式

以VB6.0为平台编写了PC间串口通信程序的实例。代码如下:

'串口初始化

PrivateSubForm_Load()

rt=1 '设置通信端口号为COM1

gs="9600,n,8,1" '设置串口参数

ode=0 '接收文本型数据

hold=1'接收缓冲区每收到一个字符都会使MSComm控件触发

OnComm事件

en=True '打开通信端口1

2

EndSub

'把字符通过串口发送出去

'启动定时器

PrivateSubCmdsend_Click()

=""Then

pp=MsgBox("发送的数据不能为空!",16)

ExitSub

EndIf

=Trim()

EndSub

'MSComm的OnComm事件程序

'由CommEvent属性值的不同,将各自的程序代码写入相关的子程序中

'只要RThresold中的设定字符数到达时便会使得CommEvent属性值变成

comEvReceive

3

'因此接收的子程序便会被执行

PrivateSubMSComm1_OnComm()

Dimbuf$

ent

'通过取代每一个case表达式来处理每个事件与错误

CasecomEvCD'CD线的状态发生变化

CasecomEvCTS'CTS线的状态发生变化

CasecomEvDSR'DSR线的状态发生变化

CasecomEvReceive

buf=Trim()'将缓冲区内的数据读入buf变量中

CasecomEvSend

EndSelect

=&buf

4

EndSub

'停止程序运行

PrivateSubCmdquit_Click()

UnloadMe

EndSub

'关闭通信端口,

PrivateSubForm_Unload(CancelAsInteger)

en=False

EndSub

4结束语

本文通过具体实例介绍了如何利用VB6.0中的MSComm控件来实现串口通信。这种

串口通信的实现具有一定的普遍性,掌握了以上基本技术,就可以稍加改变来开发适合自

己的专用通信软件。

5


本文标签: 串口 控件 数据 程序 返回