我用串口每次发送6个数据,其中最后两个是由text输入的十六进制数据,请教以下代码为什么不管用。Private Sub Command1_Click(Index As Integer)Dim s(5) As Byte
s(0) = 1
s(1) = 57
s(2) = 3 
s(3) = 1 
s(4) = datehigh  '数据高位
s(5) = datelow '数据底位
 
datelow = CLng("&H" & Text1.Text)datehigh = CLng("&H" & Text2.Text)
 
MSComm1.Output = sEnd Sub

解决方案 »

  1.   

    Private Sub Command1_Click(Index As Integer)
    datelow = CLng("&H" & Text1.Text)datehigh = CLng("&H" & Text2.Text)Dim s As Byte
    redim s(5) 
    s(0) = 1
    s(1) = 57
    s(2) = 3 
    s(3) = 1 
    s(4) = datehigh  '数据高位
    s(5) = datelow '数据底位
     
     
    MSComm1.Output = sEnd Sub
      

  2.   

    Private Sub Command1_Click(Index As Integer)Dim s(5) As Byte
    s(0) = 1
    s(1) = 57
    s(2) = 3 
    s(3) = 1 
    s(4) = HexToValue(Text1.Text)  '数据高位
    s(5) = HexToValue(Text2.Text) '数据底位
     
     
    MSComm1.Output = sEnd SubFunction HexToValue(strHex As String) As Byte
        Dim char1 As String * 1
        Dim char2 As String * 1
        Dim mTenPos As Byte
        Dim mEndPos As Byte
        char1 = Left(strHex, 1)
        char2 = Right(strHex, 1)
        If Asc(char1) < 58 Then
             mTenPos = Asc(char1) - 48
             Else
             mTenPos = Asc(char1) - 55
        End If
        If Asc(char2) < 58 Then
             mEndPos = Asc(char2) - 48
             Else
             mEndPos = Asc(char2) - 55
        End If
        HexToValue = mTenPos * 16 + mEndPos
    End Function