用vb6.0的mscomm控件接收pt650d发送的数据,协议为:数据位数 = 7 , 校验位   = 1 (偶数),终止位   = 1,编码标准 = ASCII 码; 波特速率 = 2400, 4800, 9600, 19200 ,结束码  = CR/LF,请问接收程序应该怎么写?下面的代码能接收到16进制的ascii码,怎么改成相应字符呢?
Private Sub MSComm1_OnComm()
Dim inss() As Byte
Dim indata As String
Dim j As IntegerSelect Case MSComm1.CommEvent
Case comEvReceive
inss = MSComm1.Input
For j = LBound(inss) To UBound(inss)
inss(j) = String(2 - Len(Hex(inss(j))), "0") & Hex(inss(j))
indata = indata & Chr("&H" & inss(j))
Next j
Text2.Text = Text2.Text & indata
End SelectEnd Sub

解决方案 »

  1.   

    http://download.csdn.net/source/1262066
      

  2.   


    直接以文本方式接收
    Private Sub Form_Load()
        MSComm1.InputMode = comInputModeText
        MSComm1.Settings = "9600,7,n,1"
        MSComm1.RThreshold = 1
        MSComm1.PortOpen = True
    End SubPrivate Sub MSComm1_OnComm()
        Dim indata As String
        Dim j As Integer
        Select Case MSComm1.CommEvent
            Case comEvReceive
                indata = MSComm1.Input
                Text2.Text = Text2.Text & indata
        End Select
    End Sub
      

  3.   

    Private Sub Form_Load()
        MSComm1.InputMode = comInputModeText
        MSComm1.Settings = "9600,7,E,1"
        MSComm1.RThreshold = 1
        MSComm1.PortOpen = True
    End SubPrivate Sub MSComm1_OnComm()
        Dim indata As String
        Dim j As Integer
        Select Case MSComm1.CommEvent
            Case comEvReceive
                indata = MSComm1.Input
                Text2.Text = Text2.Text & indata
        End Select
    End Sub
      

  4.   

    2进制方式接收,显示字符串.
    Option Explicit
        Dim indata As StringPrivate Sub Form_Load()
        MSComm1.InputMode = comInputModeBinary
        MSComm1.Settings = "9600,e,7,1"
        MSComm1.RThreshold = 1
        MSComm1.PortOpen = True
    End SubPrivate Sub MSComm1_OnComm()
        Dim inss() As Byte
        Dim j As Integer
        Select Case MSComm1.CommEvent
        Case comEvReceive
        inss = MSComm1.Input
        For j = LBound(inss) To UBound(inss)
            indata = indata & Chr(inss(j))
        Next j
        Text1.Text = indata
        End Select
    End Sub
      

  5.   

    inss = MSComm1.Inputindata = StrConv(inss, vbUnicode)Text2.Text = Text2.Text & indata
      

  6.   

    用mscomm控件是不是就不用写代码进行校验了啊?