本帖最后由 qiuming1 于 2010-06-04 17:10:00 编辑

解决方案 »

  1.   

    例如接收后的数据时 aa550108301015005f
      

  2.   

    Option Explicit
        Dim str As String
        Dim BytReceived() As Byte
        Dim bytSendByte() As BytePrivate Sub MSComm1_OnComm()
        Dim strBuff As String
        Select Case MSComm1.CommEvent
            Case 2
                MSComm1.InputLen = 0
                strBuff = MSComm1.Input
                BytReceived() = strBuff
                Dim i As Integer
                For i = 0 To UBound(BytReceived)
                If Len(Hex(BytReceived(i))) = 1 Then
                    str = str & "0" & Hex(BytReceived(i))
                Else
                    str = str & Hex(BytReceived(i))
                End If
                Next
                Text1.Text = str
                Dim sj() As Byte
                Dim sj_Txt As String
                Dim q As Integer
                sj_Txt = str
                If Len(sj_Txt) Mod 2 = 0 And Len(sj_Txt) <> 0 Then
                    ReDim sj(Len(sj_Txt) / 2 - 1)
                    For q = 0 To Len(sj_Txt) - 1 Step 2
                        sj(q / 2) = Val("&H" & Mid(sj_Txt, q + 1, 2))
                    Next
                    MSComm1.Output = sj
                    str = ""
                End If
        End Select
    End SubPrivate Sub Form_Load()
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.InputMode = comInputModeBinary
        MSComm1.InBufferCount = 0
        MSComm1.OutBufferCount = 0
        MSComm1.RThreshold = 1
        MSComm1.InBufferSize = 1024
        MSComm1.PortOpen = True
    End Sub
      

  3.   

    例如单机片发送aa550108301017005f  电脑以16进制接受 如上!(不知道对不对)
    电脑接收后马上电脑写一段代码 以16进制把aa550108301017005f再发给单机片...发送怎么搞...
      

  4.   

    COMMIX 1.2
      

  5.   

    例如单机片发送aa550108301017005f 电脑以16进制接受 如上!(不知道对不对)
    电脑接收后马上电脑写一段代码 以16进制把aa550108301017005f再发给单机片...发送怎么搞...还是接着问这个吧...
      

  6.   

    看看你的代码,不知道你来回折腾啥?
    ---------------------------------------------
    你折腾半天与以代码有什么区别?Private Sub MSComm1_OnComm()
      Dim strBuff() As byte
      Select Case MSComm1.CommEvent
      Case 2
      MSComm1.InputLen = 0
      strBuff = MSComm1.Input
      BytReceived() = strBuff
      jieshou
      End Select  MSComm1.Output = strBuff  End If
    end sub
      

  7.   

    Option Explicit
        Dim str As String
        Dim BytReceived() As Byte
        Dim bytSendByte() As Byte
        Dim sj_Txt As StringPrivate Sub MSComm1_OnComm()
        Dim strBuff As String
        Select Case MSComm1.CommEvent
            Case 2
                MSComm1.InputLen = 0
                strBuff = MSComm1.Input
                BytReceived() = strBuff
                Dim i As Integer
                For i = 0 To UBound(BytReceived)
                If Len(Hex(BytReceived(i))) = 1 Then
                    str = str & "0" & Hex(BytReceived(i))
                Else
                    str = str & Hex(BytReceived(i))
                End If
                Next
                Text1.Text = str
                If Mid(str, 1, 2) = "AA" And Len(str) = 22 Then
                    sj_Txt = str
                    Timer1.Enabled = True
                    str = ""
                End If
        End Select
    End SubPrivate Sub Form_Load()
        MSComm1.CommPort = 1
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.InputMode = comInputModeBinary
        MSComm1.InBufferCount = 0
        MSComm1.OutBufferCount = 0
        MSComm1.RThreshold = 1
        MSComm1.InBufferSize = 1024
        MSComm1.PortOpen = True
        Timer1.Enabled = False
        Timer1.Interval = 3000
    End SubPrivate Sub Timer1_Timer()
        Dim sj() As Byte
        Dim q As Integer
        If Len(sj_Txt) Mod 2 = 0 And Len(sj_Txt) <> 0 Then
            ReDim sj(Len(sj_Txt) / 2 - 1)
            For q = 0 To Len(sj_Txt) - 1 Step 2
                sj(q / 2) = Val("&H" & Mid(sj_Txt, q + 1, 2))
            Next
            MSComm1.Output = sj
            str = ""
        End If
        Timer1.Enabled = False
    End Sub
      

  8.   

    立马按发送,你眼睛看到接收,到按按钮本身有反应延迟.我在19楼使用Timer延迟3000MS后发送.