首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

单片机数据透过串口发送数据给VB,VB显示它发送的数据

2013-01-02 
单片机数据通过串口发送数据给VB,VB显示它发送的数据本人比较菜这个问题纠结了很久特来请教。它的工作是这

单片机数据通过串口发送数据给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

热点排行