VB 串口通信 MSComm控件的使用

来源:岁月联盟 编辑:exp 时间:2011-05-18
串口通信控件简介

  MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。 Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。

  由于MSComm控件不是标准控件,要使用它就必须将MSComm控件添加到控件工具箱中

  添加控件的方法:选择“工程”|“部件”命令,在出现的“部件”对话框中选择“Microsoft Comm Controls 6.0”

选择并单击“确定”按钮。这时候MSComm控件就被添加到VB的控件工具箱中了。如右图:(在图中那个电话标识)

  串口的初始化: 
1 With MSComm1                        初始化串口
2    .CommPort = 1
3   .Settings = "19200,N,8,1"
4   .OutBufferSize = 1024
5   .InBufferSize = 1024
6   .PortOpen = True
7 End With
  在上述初始化中完成了:    设置通信端口,    串口通信参数(波特率、奇偶校验、数据位、停止位),    接收缓冲区的字节数,    传输缓冲区的字节数,    设置端口的状态为打开。  上述初始化放在窗体加载中完成。   数据的传输:在这里,我们先添加2个按钮控件,1个文本控件,1个标签控件。  点击“生成串号”按钮,读取到当前日期,显示在文本控件中。
1 Private Sub Command1_Click() 
2 Dim time_now1 As Date
3 time_now1 = Now
4 Text1.Text = Format(time_now1, "yyyymmdd")
5 used_data = False
6 End Sub
    used_data为一个全局变量,目的是避免一次的数据发送好几次。(这是为了满足我的一个特殊要求,可不重点考虑)。     点击“烧写串号”按钮 
1 Private Sub Command2_Click()
2
3 If used_data = False Then
4 MSComm1.Output = Text1.Text 发送数据
5 MsgBox "发送成功", vbInformation, "OK"
6 used_data = True 表示已发送,数据需要更新才能再发送
7 End If
8
9 End Sub
   将文本控件中的内容赋值给MSComm的发送寄存器中,就能将数据发送出去。  如果想接收串口发来的数据,可以使用MSComm的接收寄存器Input。使用显示文本中的数据验证接收的数据的正确性。