单片机数据通过串口发送数据给VB,VB显示它发送的数据
本人比较菜 这个问题纠结了很久 特来请教。
它的工作是这样的 先是VB发送一段14位的十六进制数据过去 字头和检验位正确后 单片机接收后回发给一段13位的十六进制数(表示正确或是错误的数据)据给VB,vb判断这个数据是单片机告诉自己发送正确(错误),如果错误的再发数据 。
现在的问题是 单片机接受VB后回发的数据 在串口调式助手上来看是没有问题了 但是在VB中怎么把这13位的十六进制数据的字符串转为13位的十六进制??现在我是把串口的数据存一个byte数据 接下来该如何做呢?(。。。。。。。我自己也不知道我自己再说什么了 大概就是这意思把~别见笑。)
[解决办法]
数据都有了,转换一下就好了。
8个byte为一段,进制转一下,然后拼接起来。
[解决办法]
你这个地方就是一个串口数据接收的问题
你可以设置Mscomm的RTHreshold这个为单字节触发,然后建立一个byte数组,循环接收单片机发过来的数据,直到你收到的是结束符然后停止
有了这个含有13个元素的字节数组,将它转换成16进制就ok了
[解决办法]
这是一个VB编写的串口调试器,你可以依据它改写你的通信程序
[解决办法]
一个Byte 是0-255,十六进制就是 00-FF 只要对应把每个Byte里的数转成十进制字符,然后串起来。
[解决办法]
VB中有HEX函数,直接可以转换。
[解决办法]
发回的其实已经16进制数,只是要显示时,需要转换为可以识别的字串
dim s as string
'假设B(6)保存你的13位16进制数,(每个Byte可以保存2个16进制位,最后一个字节要弄清楚是存在高位还是在低位)
for i=0 to 6
s=s & hex(b(i))
next
print s