XK3105A称重显示控制器   济南金钟电子衡器
信号格式
类型:EIA-RS232C/20mA电流环
格式:波特率:1200、2400、4800、9600
      数据位:7位
      停止位:1位
      校验位:1位
      代码:  ASCII
下面是程序中用的代码,取不出数据。请大家提出看法,帮忙修改!
有兴趣者可以qq 探讨,34826075
也可发送邮件:       [email protected] Sub Form_Load()
    MSComm1.CommPort = 1
    MSComm1.InBufferCount = 0
    MSComm1.InputLen = 1
    MSComm1.InputMode = comInputModeBinary
    MSComm1.Settings = "9600,E,7,1"
    MSComm1.RThreshold = 1
    MSComm1.PortOpen = True          ' 打开端口
    
errhandle:
    Screen.MousePointer = vbDefaultEnd SubPrivate Sub MSComm1_OnComm()
    Dim Buffer As Variant
    Dim strTemp As String
    Dim bytTemp(12) As Byte
    Dim i As Integer
    With MSComm1
        Select Case .CommEvent            Case comEvSend
            Case comEvReceive
            
                Buffer = .Input
                bytTemp(0) = Buffer(0)                If bytTemp(0) = &H2 Then                    '判断是否为开始标记STX
                    .RThreshold = 0                         '关闭接收事件,接收剩余的重量数据
                    
                    i = 0
                    Do
                        DoEvents
                        If .InBufferCount > 0 Then
                            Buffer = .Input
                            i = i + 1
                            bytTemp(i) = Buffer(0)                        End If
                    Loop Until i = 12
                End If                strTemp = ""
                For i = 2 To 12
                    strTemp = strTemp & Chr(bytTemp(i))
                Next i
                
                Select Case Val(bytTemp(1) And &H7)
                    Case 2
                        txtRealWeight.Text = Val(strTemp)
                    Case 3
                        txtRealWeight.Text = Format(Val(strTemp) / 10, "#0.0")
                    Case 4
                        txtRealWeight.Text = Format(Val(strTemp) / 100, "#0.00")
                    Case 5
                        txtRealWeight.Text = Format(Val(strTemp) / 1000, "#0.000")
                End Select 
                .RThreshold = 1
     
            Case comEvCTS           '3 Clear To Send 线的状态发生变化。
            Case comEvDSR           '4 Data Set Ready 线的状态发生变化。该事件只在 DST 从 1 变到 0 时才发生。
            Case comEvCD            '5 Carrier Detect 线的状态发生变化。
            Case comEvRing          '6 检测到振铃信号。一些 UART(通用异步接收— 传输)可能不支持该事件。
            Case comEvEOF           '7 收到文件结束(ASCII 字符为 26)字符。
                
            
            '下面是处理串口错误
            Case comEventBreak      '1001 接收到一个中断信号。
            Case comEventCTSTO      '1002 Clear To Send 超时。在系统规定时间内传输一个字符时,Clear To Send 线为低电平。
            Case comEventDSRTO      '1003 Data Set Ready 超时。在系统规定时间内传输一个字符时,Data Set Ready 线为低电平。
            Case comEventFrame      '1004 帧错误。硬件检测到一帧错误。
            Case comEventOverrun    '1006 端口超速。没有在下一个字符到达之前从硬件读取字符,该字符丢失。
            Case comEventCDTO       '1007 载波检测超时。在系统规定时间内传输一个字符时,Carrier Detect 线为低电平。CarrierDetect 也称为 Receive Line Signal Detect (RLSD)。
            Case comEventRxOver     '1008 接受缓冲区溢出。接收缓冲区没有空间。
            Case comEventRxParity   '1009 奇偶校验。硬件检测到奇偶校验错误
            Case comEventTxFull     '1010 传输缓冲区已满。传输字符时传输缓冲区已满
            Case comEventDCB        '1011 检索端口的设备控制块 (DCB) 时的意外错误
            Case Else
        End Select
    End With
End Sub