当前位置:编程学习 > VB >>

dataGrid和MSComm

  小弟要用VB做个应用,把单片机里采集到的数据在电脑上显示出来。我设计的VB界面用到dataGrid和MSComm控件各一个,再加一个command按纽作退出,不知道能不能实现。
MSCcomm的接收程序应该怎么编写?怎样实现dataGrid中显示多组数据(就像一个表第一列是显示项,后面每一行各页对应形式一组数据。)
小弟对VB很陌生,又必须要用,恳请各位高手指点!!
--------------------编程问答-------------------- MSDN里都有,建议查看MSDN --------------------编程问答-------------------- 如果不保存数据,可用MSFlexGrid控件来显示接收的数据,以下代码中是按2进制接收的:
Option Explicit
    Dim sum As Integer
    Dim strData As String
    Dim bytInput() As Byte

Private Sub Form_Load()
    sum = 1
    MSFlexGrid1.Cols = 5
    MSFlexGrid1.Rows = sum
    MSFlexGrid1.TextMatrix(0, 0) = "Time"
    MSFlexGrid1.TextMatrix(0, 1) = "Data1"
    MSFlexGrid1.TextMatrix(0, 2) = "Data2"
    MSFlexGrid1.TextMatrix(0, 3) = "Data3"
    MSFlexGrid1.TextMatrix(0, 4) = "Data4"
    MSComm1.Settings = "9600,N,8,1"
    MSComm1.RThreshold = 1
    MSComm1.InputMode = comInputModeBinary
    MSComm1.PortOpen = True
End Sub

Private Sub MsComm1_OnComm()
    Dim intInputLen As Integer
    Select Case Me.MSComm1.CommEvent
        Case comEvReceive
            '此处添加处理接收的代码
            Me.MSComm1.InputMode = comInputModeBinary '二进制接收
            intInputLen = Me.MSComm1.InBufferCount
            ReDim bytInput(intInputLen)
            bytInput = Me.MSComm1.Input
            jieshou
            If Mid(strData, 1, 2) = "0D" And Len(strData) = 20 Then
                sum = sum + 1
                MSFlexGrid1.Rows = sum
                MSFlexGrid1.TextMatrix(sum - 1, 0) = Time$
                MSFlexGrid1.TextMatrix(sum - 1, 1) = Mid(strData, 3, 6)
                MSFlexGrid1.TextMatrix(sum - 1, 2) = Mid(strData, 9, 6)
                MSFlexGrid1.TextMatrix(sum - 1, 3) = Mid(strData, 15, 4)
                MSFlexGrid1.TextMatrix(sum - 1, 4) = Mid(strData, 19, 2)
                strData = ""
            End If
    End Select
End Sub

Public Function jieshou() '接收数据处理为16进制字符
    Dim i As Integer
    For i = 0 To UBound(bytInput)
        If Len(Hex(bytInput(i))) = 1 Then
            strData = strData & "0" & Hex(bytInput(i))
        Else
            strData = strData & Hex(bytInput(i))
        End If
    Next
End Function
--------------------编程问答-------------------- 单片机的通讯协议?
有什么样的数据,如何显示? --------------------编程问答-------------------- 我用EXCEL VBA写的例子,仅供参考。

http://download.csdn.net/source/1048888
补充:VB ,  控件
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,