串口编程之二:VB发送串口数据

Viscual Basic 下可以利用 MSCOMM 控件来访问串口,方便快捷。但是有的机器没有 MSCOMM 控件,需要下载 MSCOMM32.OCX 到 system32 目录下然后通过VB加载。除了要在代码中体现MSCOMM对象,还要在窗体中创建对应的对象,就是那个电话图标。


如果你没有硬件条件来做串口调试,请看前文 《串口编程之:虚拟串口VSPM解决串口编程问题》http://blog.csdn.net/zh405123507/article/details/7424877


首先检查自己系统是否有MsComm控件:VB下打开 工程 -> 部件 ,如果在控件列表中能看到 “Microsoft Comm Control 6.0” 那恭喜你,直接勾选后添加到常用控件栏即可。然后在自己的窗体中拖出一个小 “电话” 。




如果你找不到这个选项,那么去下载 MSCOMM32.OCX 这个文件吧。下载后解压到 C:\Windows\system32 目录,然后在VB下打开 工程 -> 部件,点击“浏览”并打开MSCOMM32.OCX ,一般就可以了。如果出现提示“控件许可证错误”,则需要再下载一个补丁覆盖在VB的目录下。


MSCOMM32.OCX 下载:http://adf.ly/By9Wn

控件许可证错误补丁 下载:http://adf.ly/By9Yt


下面就可以开始做一个测试代码:

如图,在form上创建一个 MSCOMM 控件,一个COMMAND控件。




输入代码:(参考自 http://topic.csdn.net/u/20080311/13/97ed338f-0e79-404d-b629-d14af104e70f.html)

Option Explicit

Private Sub Command1_Click()
    Dim a(0 To 20) As Byte
    Dim s As String
    
    a(0) = &H48
    a(1) = &H45
    a(2) = &H4C
    a(3) = &H4C
    a(4) = &H4F
    
    MSComm1.Output = a
End Sub

Private Sub Form_Load()

    MSComm1.CommPort = 3       '"选用com3串行口
    
    MSComm1.Settings = "115200,n,8,1"       '"波特率9600,无奇偶校验位,8位数据位1位停止位
    
    MSComm1.InputLen = 1       '"读取input接收缓冲区全部字节
    
    MSComm1.InBufferSize = 1024       '"设置接收缓冲区的字节长度
    
    MSComm1.InBufferCount = 0       '"清除发送缓冲区数据
    
    MSComm1.OutBufferCount = 0       '"清除接收缓冲区数据
    
    MSComm1.InputMode = 1       '"输入模式为binary
    
    MSComm1.RThreshold = 1       '"控件收到数据时将触发OnComm事件
    
    MSComm1.Handshaking = 2
    
    MSComm1.PortOpen = True
    
End Sub

Private Sub MSComm1_OnComm()
    Dim a() As Byte
    a = MSComm1.Input
    Dim i As Long
    Debug.Print UBound(a)
    'For i = 0 To UBound(a)
    '    Debug.Print Hex$(a(i)) & " ";
    'Next i
End Sub

现在到 Form_Load() 中修改 CommPort = 3, Settins 调整为相应参数。并打开配置好的VSPM(这里的VSPM将虚拟出来的COM3与COM4相连),然后将串口调试助手设置监听COM4,运行程序、点击COMMAND1就可以在串口调试助手上看到发送的结果。

a(0) = &H48
a(1) = &H45
a(2) = &H4C
a(3) = &H4C
a(4) = &H4F

这样设置,数组a就代表字符串“HELLO”。

通过对控件MSCOMM的应用,就可以用VB写出对应的串口通信程序。


===================================

本文来自:http://blog.csdn.net/zh405123507

tags:串口 串口编程 VB MSCOMM VSPM



你可能感兴趣的:(串口编程之二:VB发送串口数据)