通过串口发送十六进制fc0000080020,对方接收到并以十六进制方式显示为fc0000080020,可是串口只能以文本或二进制方式发送,不知道该如何解决了,请大家帮忙!

解决方案 »

  1.   

    发送 "fc0000080020",这样对方接收到的就是文本信息,再以十六进制显示就不是"fc0000080020"了。
      

  2.   

    其实你已经说了:文本或二进制方式
    十六进制串实际上是文本。文本方式:
    发:
    dim tmp as string
    tmp = "fc0000080020"
    mscomm1.output = tmp收:
    dim tmp as string
    tmp = mscomm1.input二进制方式:
    发:
    dim tmp as string, arr() As Byte, i as integer, n as integer
    tmp = "fc0000080020"
    n = len(tmp)\2 - 1
    redim arr(n)
    for i = 0 to n
    arr(i) = Val("&H" & Mid(tmp, i * 2 + 1, 2))
    next i
    mscomm1.output = arr 收:
    mscomm1.inputmode = 1
    dim tmp as viriant
    dim arr() as byte
    dim str1 as string
    tmp = mscomm1.input
    arr = tmp
    for i = 0 to ubound(arr)
    str1 = str1 & right("0" & hex(arr(i)))
    next i记住,不管是什么格式,线路上传送的只能是由 0 和 1 组成的数字,也就是二进制数。问题在于你如何解释这些数字。所谓文本,实际上是将数字解释成字符的 ASCII 码。