如何在vb6或VBExpress 2010中接收字节和字(两个字节)的数据包并将其分隔

如何在vb6或VBExpress 2010中接收字节和字(两个字节)的数据包并将其分隔,vb6,microcontroller,Vb6,Microcontroller,我想使用VB6或Visual Basic Express Edition 2010将8位微控制器连接到我的电脑 我的信息包含一些2字节的单词和一些字节信息,例如4或5字节。 我能够从微控制器端将这些信息存储在十六进制数的字符串中,但在Visual Basic中分离和使用这些信息时遇到困难 我想将单词数据从十六进制转换为十进制,并在标签中显示。我的字节数据是8位数字信息。我想通过将每个字节分成单独的位并点亮一些灯泡来指示我的微控制器端口8位的一些状态来使用它。我已经做了一些实际的工作,但并不令我满

我想使用VB6或Visual Basic Express Edition 2010将8位微控制器连接到我的电脑

我的信息包含一些2字节的单词和一些字节信息,例如4或5字节。 我能够从微控制器端将这些信息存储在十六进制数的字符串中,但在Visual Basic中分离和使用这些信息时遇到困难


我想将单词数据从十六进制转换为十进制,并在标签中显示。我的字节数据是8位数字信息。我想通过将每个字节分成单独的位并点亮一些灯泡来指示我的微控制器端口8位的一些状态来使用它。我已经做了一些实际的工作,但并不令我满意。

如果您已经在PC和micro之间设置了串行传输,并且看到字节即将到来,那么以下内容可能适用

Dim b1 as Byte, b2 as Byte
Dim word as Integer
Dim bit5_On as Boolean

word = LShift(b1,8) or b2

bit5_On = ((b1 and 16) = 16)
首先,您可能已经在微代码中编写了一些您打算发送数据的内容。此代码可能会运行多次,从而重复(有意)发送数据。在微型计算机中,您可以看到数据的分割位置,但这并不意味着您可以在PC端看到这一点

在PC端,您基本上可以看到连续的数据流,您可能无法在预期的边界上分离这些数据流

解决方案是创建一个协议。最简单的方法是使micro仅在PC端请求时发送数据(通过向micro发送一些请求命令,例如仅发送一个字节)。然后,当PC端接收到答案时,它可以知道这是一条数据,因此能够相应地将其分解


另一种方法是让micro连续发送数据。然后关键是创建适当的数据包帧,即流中新数据即将到来的指示符。例如,如果您发送BCD号码,则0xFF字符可以用于此目的。

一些代码和示例数据以及格式将对我们有很大帮助。。。