串口通信中发1-512之间的数据怎么弄?当数超过一个字节时怎么办啊?呵呵刚入门,还请各位大哥大姐不吝赐教!!

解决方案 »

  1.   

    按如下代码,先发高字节,后发低字节,例:
    发512(10进制),接收到0002(16进制) 
    发255(10进制),接收到FF00(16进制)Option Explicit
        Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Private Sub Command1_Click()
        Dim a As Integer
        a = Val(Text1)
        Dim buffer(1) As Byte
        CopyMemory buffer(0), a, 2
        MSComm1.Output = buffer
    End SubPrivate Sub Form_Load()
        MSComm1.Settings = "9600,n,8,1"
        MSComm1.PortOpen = True
    Text1 = "": Text2 = ""
    End Sub
      

  2.   

    好的,非常感谢!!
    我试试,是不是 把数据都定义成整型的,然后直接写到output就可以了?
    那要是用单片机接收是不是 每个数都得接收2次??