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

zenghuiiii 2012-04-13 11:00:27
本人比较菜 这个问题纠结了很久 特来请教。
它的工作是这样的 先是VB发送一段14位的十六进制数据过去 字头和检验位正确后 单片机接收后回发给一段13位的十六进制数(表示正确或是错误的数据)据给VB,vb判断这个数据是单片机告诉自己发送正确(错误),如果错误的再发数据 。
现在的问题是 单片机接受VB后回发的数据 在串口调式助手上来看是没有问题了 但是在VB中怎么把这13位的十六进制数据的字符串转为13位的十六进制??现在我是把串口的数据存一个byte数据 接下来该如何做呢?(。。。。。。。我自己也不知道我自己再说什么了 大概就是这意思把~别见笑。)
...全文
388 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zenghuiiii 2012-04-19
  • 打赏
  • 举报
回复
谢谢各位 自己已经解决了 原来是单片机发送中断有问题 结贴~~~~(。。。。。前些天一直没网 抱歉结贴晚了点)
water-moon 2012-04-13
  • 打赏
  • 举报
回复
你这个地方就是一个串口数据接收的问题
你可以设置Mscomm的RTHreshold这个为单字节触发,然后建立一个byte数组,循环接收单片机发过来的数据,直到你收到的是结束符然后停止

有了这个含有13个元素的字节数组,将它转换成16进制就ok了


咸清 2012-04-13
  • 打赏
  • 举报
回复
数据都有了,转换一下就好了。
8个byte为一段,进制转一下,然后拼接起来。
worldy 2012-04-13
  • 打赏
  • 举报
回复
发回的其实已经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
dnvodcwan 2012-04-13
  • 打赏
  • 举报
回复
VB中有HEX函数,直接可以转换。
dnvodcwan 2012-04-13
  • 打赏
  • 举报
回复
一个Byte 是0-255,十六进制就是 00-FF 只要对应把每个Byte里的数转成十进制字符,然后串起来。

1,502

社区成员

发帖
与我相关
我的任务
社区描述
VB 网络编程
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧