要發送的內容如下:
SOH+"S01A1"+STX+"010"+ETX+BCC這几個是固定條件
SOH=01H,STX=02H,ETX=03H
BBC是算出來的
BCC = 01H xor 53H xor 30H xor 31H xor 41H xor 31H xor 02H Xor 30H xor 31H xor 30H xor 03H or 20H =33H轉成十六制是這樣的
SOH  S   0   1   A   1  STX  0   1   0  ETX BCC
01H 53H 30H 31H 41H 31H 02H 30H 31H 30H 03H 33H在VB里十六進制前面是加"&H"的,請問在VB里用MSCOMM控件怎樣發送?

解决方案 »

  1.   

    dim S(1 to 12) as byte
    S(1)=&H01
    S(2)=&H53
    ...
    S(12)=&H33
    MSComm.Output=S
      

  2.   

    1:字符方式发送
    MSComm.InputMode = comInputModeText
    MSComm.Output=Chr(&H1) & "S01A1" & Chr(&H2) & "010" & Chr(&H3) & chr(&h33)2: 字节方式发送
    参考hellobcb(学海无涯,回头是岸),不过要加一句
    MSComm.InputMode = comInputModeBinary
      

  3.   

    1、初始化控件
    '=======================
        '初始化控件 (COM) <<-------------------------------------
        'strSetings="57600,n,8,1"
        'nCommPort为端口号,1
    '=======================
    Public Sub IniCOM(strSetings As String, nCommPort As Integer)
    On Error GoTo ERR_RESULT
    m_Protocol = tyCOMProtocol
    MyComm.Settings = strSetings
    MyComm.CommPort = nCommPort
    MyComm.InputMode = comInputModeBinary
    MyComm.PortOpen = True
    MyComm.InputLen = 0    MyComm.NullDiscard = False                 'NULL字符从端口传送到接受缓冲区
        MyComm.DTREnable = False                   'DTR线无效
        MyComm.EOFEnable = False                   '不寻找EOF符
        MyComm.RTSEnable = False                   'RTS线无效
        MyComm.RThreshold = 1                      '接收1Byte返回
        MyComm.InBufferCount = 0                   '清空接受缓冲区
        MyComm.OutBufferCount = 0                  '清空传输缓冲区
        MyComm.SThreshold = 1                      '如果传输缓冲区完全空时产生
        MyComm.OutBufferCount = 0ReDim m_MsgBuffer(0)
    ReDim m_BufferTmp(0)
    m_bMsgHead = False
    m_lDataCount = -1
    Exit SubERR_RESULT:
        MsgBox "本机并未设置此端口或端口已被占用,请用户重新设置。"
    End Sub
    然后就可以用mscomm.ouput="要发送的东西"
    可以是array,string,都行。
    16进制可以放到数组里面,
    比如
    dim arr() as byte
    redim arr(2)
    arr(0)=cbyte(&H30)
    arr(1)=cbyte(&H98)
    mscomm.ouput=arr
      

  4.   

    回楼上的,在MSComm的Setting属性设置里面,波特率57600并不是个合法的值,这个该怎么解释呢?