我现在是用2进制的数发送和接受
比如,发送的是mscomm1.output=trim("00000010")这样数
发送接受模式是2进制的
那么我接受的时候RThreshold设置多少?如果设置是1的话,是指1个字符还是1个字节??
而我这样发送的8位数算是8个字符呢还是1个字节???
如果这8位只是开始位,还有数据位也是8位,那么inputlen设置也是这个问题,是设置多少呢》?请大家帮帮我!!!!

解决方案 »

  1.   

    InputMode = comInputModeBinary
    InputLen  = 8循环等到InBufferCount = 8时开始接收。
      

  2.   

    帧是以字节为单位的,一般完整的帧包括帧头,帧地址,帧命令,帧数据,帧的校验的数据。在发一个字节的数据的时候,发出的一般11个比特(位)1个起始位+ 8个数据位+一个校验位+停止位。日本:数据位为7,其它西欧国家为8位。
    MSComm1.CommPort = 1                        '采用COM端口
            MSComm1.InputMode = comInputModeBinary      '采用二进制传输   !!!
            MSComm1.NullDiscard = False                 'NULL字符从端口传送到接受缓冲区
            MSComm1.DTREnable = False                   'DTR线无效
            MSComm1.EOFEnable = False                   '不寻找EOF符
            MSComm1.RTSEnable = False                   'RTS线无效
            MSComm1.InBufferCount = 0                   '清空接受缓冲区
            MSComm1.OutBufferCount = 0                  '清空传输缓冲区
            MSComm1.SThreshold = 1                      '如果传输缓冲区完全空时产生MSComm事件
            MSComm1.RThreshold = 1                      '获得一个字节则产生MSComm事件
            MSComm1.InBufferSize = 1024 Dim MyArray(0 To 6) As Byte         '这是我做的系统的一段代码
        Dim strBCD As String
        
        strBCD = Trim(Format(lngNum, "00000"))
        
        MyArray(0) = &HAC
        MyArray(1) = Val(Mid(strBCD, 1, 1)) * 16 + Val(Mid(strBCD, 2, 1))
        MyArray(2) = MyArray(1)
        MyArray(3) = Val(Mid(strBCD, 3, 1)) * 16 + Val(Mid(strBCD, 4, 1))
        MyArray(4) = MyArray(3)
        MyArray(5) = Val(Mid(strBCD, 5, 1)) * 16 + Val(ErrNo.StrNum)
        MyArray(6) = MyArray(5)
        
       If bCommFlag = False Then
          MSComm1.Output = MyArray                '发送车位数据到大屏
       End If
      

  3.   

    Private Sub tmrRecieve_Timer()
        Dim OutLinkCommandInfo   As Byte  '//联络信号"?"
            OutLinkCommandInfo = &H3F  '//  联络信号"?"
        If MSComm.PortOpen = False Then '// 打开端口
            MSComm.PortOpen = True
        End If
     MSComm.Output = OutLinkCommandinfo'//本条报错“无效属性”
      end  sub
    那为什么我的总是最后一条语句报错