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

所属栏目:通信论文 发布日期:2011-08-31 08:14 热度:

  串口通信在数据采集中有着广泛的应用,因为串口通信通信线路简单、灵活方便、数据可靠。作为快速开发,利用VB开发串口通信程序既可以使用MSComm控件也可以调用WindowsAPI函数实现。这里我们使用VB6.0提供的MSComm控件,因为MSComm控件的功能和API调用一样强,甚至更好且使用起来更加简单,能很方便地实现所需的串口通信功能。
  1.MSComm控件简介
  MSComm控件是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。具体的来说,它提供了两种处理通信问题的方法:一是事件驱动方法,当串口通信产生错误时,MSComm控件会触发OnComm事件,程序员可以在OnComm事件处理函数中加入自己的处理代码。另外一种是查询法。查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。
  2.MSComm控件的常用属性
  MSComm控件有很多重要的属性,但首先必须熟悉几个关键属性。
  CommPort 设置并返回通讯端口号
  Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位
  PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口
  Input 从接收缓冲区返回和删除字符
  Output 向传输缓冲区写一个字符串
  3.程序代码设计
  利用MSComm控件编写串口通信程序是十分便利和简单的。下面我就事件驱动方式以VB6.0为平台编写了PC间串口通信程序的实例。代码如下:
  
  '串口初始化
  PrivateSubForm_Load()
  MSComm1.CommPort=1 '设置通信端口号为COM1
  MSComm1.Settings="9600,n,8,1" '设置串口参数
  MSComm1.InputMode=0 '接收文本型数据
  MSComm1.RThreshold=1'接收缓冲区每收到一个字符都会使MSComm控件触发OnComm事件
  MSComm1.PortOpen=True '打开通信端口1
  EndSub
  '把字符通过串口发送出去
  '启动定时器
  PrivateSubCmdsend_Click()
  IfTextsend.Text=""Then
  pp=MsgBox("发送的数据不能为空!",16)
  ExitSub
  EndIf
  MSComm1.Output=Trim(Textsend.Text)
  EndSub
  'MSComm的OnComm事件程序
  '由CommEvent属性值的不同,将各自的程序代码写入相关的子程序中
  '只要RThresold中的设定字符数到达时便会使得CommEvent属性值变成comEvReceive
  '因此接收的子程序便会被执行
  PrivateSubMSComm1_OnComm()
  Dimbuf$
  SelectCaseMSComm1.CommEvent
  '通过取代每一个case表达式来处理每个事件与错误
  CasecomEvCD'CD线的状态发生变化
  CasecomEvCTS'CTS线的状态发生变化
  CasecomEvDSR'DSR线的状态发生变化
  CasecomEvReceive
  buf=Trim(MSComm1.Input)'将缓冲区内的数据读入buf变量中
  CasecomEvSend
  EndSelect
  TextReceive.Text=TextReceive.Text&buf
  EndSub
  '停止程序运行
  PrivateSubCmdquit_Click()
  UnloadMe
  EndSub
  '关闭通信端口,
  PrivateSubForm_Unload(CancelAsInteger)
  MSComm1.PortOpen=False
  EndSub
  4结束语
  本文通过具体实例介绍了如何利用VB6.0中的MSComm控件来实现串口通信。这种串口通信的实现具有一定的普遍性,掌握了以上基本技术,就可以稍加改变来开发适合自己的专用通信软件。

文章标题:基于VB6.0的串口通信方法

转载请注明来自:http://www.sofabiao.com/fblw/dianxin/tongxin/10073.html

相关问题解答

SCI服务

搜论文知识网的海量职称论文范文仅供广大读者免费阅读使用! 冀ICP备15021333号-3