表1:字段名   字长   指令
STX  1 byte  02H
TRDT 1 byte  10H
WINDOW MODE 1 byte   "0"=%, "1"=dot
H WIDTH 4 bytes  %="0001" to "1000"  Dots="0004" and up
V WIDTH 4 bytes  %="0001" to "1000"  Dots="0004" and up
R 3 bytes "000" to "255"
G 3 bytes "000" to "255"
B 3 bytes "000" to "255"
WINDOW COLOR(TTL) 1 byte  "0"=None, "1"=R, "2"=G, "3"=RG,"4"=B, "5"=RB, "6"=GB, "7"=RGB
WINDOWHALF TONE 1 byte  "0"=None, "1"=RH, "2"=GH, "3"=RHGH, "4"=BH, "5"=RHBH, "6"=GHBH, "7"=RHGHBH
FORMAT 1 byte "0" to "F"
FLICKER INTERVAL 1 byte "0" to "7"
ETX 1 byte 03H
表2:
STX 1 byte 02H
SPT 1 byte 4BH
PROGRAM NO. 1 1 to 3 bytes "0" to "849"
PATTERN BLOCK NO. 2 bytes "01"=Graphic color
ETX 1 byte 03H我指令数组定义为BYTE型,请教各位我这两组命令用16进制怎么发,谢谢!~尤其是对其中大于255的数据!~

解决方案 »

  1.   

    1、用HEX进行十六进制转换。
    2、Byte不能大于255,大于255的数据,实质是多个BYTE,发送时要判断数值大小,如果大于255小于65536,则可使用两个BYTE进行表示,转换方式为第一个BYTE为数据值 AND &HFF,第二个为数据值 MOD &HFF。如果不想自己进行转换,还可以使用COPYMEMORY进行转换。
      

  2.   

    LZ:
    表2: 
    STX 1 byte 02H 
    SPT 1 byte 4BH 
    PROGRAM NO. 1 1 to 3 bytes "0" to "849" 
    PATTERN BLOCK NO. 2 bytes "01"=Graphic color 
    ETX 1 byte 03H 我指令数组定义为BYTE型,请教各位我这两组命令用16进制怎么发,谢谢!~尤其是对
    其中大于255的数据!~从你上述文字叙述看
    你第2组命令字节总长在6到8间
    其中
    PROGRAM NO.1       字节是1到3,你可将其赋值得给String变量
    PATTERN BLOCK NO.2 字节是2   ,你可将其赋值得给String变量
    Option Explicit
        Dim i As Integer
    Private Sub Command1_Click()
        Dim progm As String
        Dim pbn As String
        Dim strData As String
        Dim sj() As Byte
        Dim ml As String
        progm = "849"
        pbn = "01"
        strData = progm & pbn
        For i = 1 To Len(strData)
            ml = ml & Hex(Asc(Mid(strData, i, 1)))
        Next
        ml = "024B" & ml & "03"
        Print ml
        ReDim sj(Len(ml) / 2 - 1)
        For i = 0 To Len(ml) - 1 Step 2
           sj(i / 2) = Val("&H" & Mid(ml, i + 1, 2))
        Next
        MSComm1.Output = sj
    End Sub表1解决方法同上述思路