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
版权声明:本文标题:基于VB6.0的串口通信方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1710853710a576373.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论