本人比较菜  这个问题纠结了很久  特来请教。
它的工作是这样的   先是VB发送一段14位的十六进制数据过去 字头和检验位正确后 单片机接收后回发给一段13位的十六进制数(表示正确或是错误的数据)据给VB,vb判断这个数据是单片机告诉自己发送正确(错误),如果错误的再发数据 。
现在的问题是 单片机接受VB后回发的数据 在串口调式助手上来看是没有问题了 但是在VB中怎么把这13位的十六进制数据的字符串转为13位的十六进制??现在我是把串口的数据存一个byte数据 接下来该如何做呢?(。我自己也不知道我自己再说什么了 大概就是这意思把~别见笑。)

解决方案 »

  1.   

    数据都有了,转换一下就好了。
    8个byte为一段,进制转一下,然后拼接起来。
      

  2.   

    你这个地方就是一个串口数据接收的问题
    你可以设置Mscomm的RTHreshold这个为单字节触发,然后建立一个byte数组,循环接收单片机发过来的数据,直到你收到的是结束符然后停止有了这个含有13个元素的字节数组,将它转换成16进制就ok了
      

  3.   

    一个Byte 是0-255,十六进制就是 00-FF 只要对应把每个Byte里的数转成十进制字符,然后串起来。
      

  4.   

    VB中有HEX函数,直接可以转换。
      

  5.   

     发回的其实已经16进制数,只是要显示时,需要转换为可以识别的字串dim s as string
    '假设B(6)保存你的13位16进制数,(每个Byte可以保存2个16进制位,最后一个字节要弄清楚是存在高位还是在低位)for i=0 to 6
    s=s & hex(b(i))
    nextprint s