1

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

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

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

4

2 回答 2

0

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

首先,您可能已经在您打算发送数据的微型计算机中编写了一些代码。此代码可能会运行多次,因此会重复(有意地)发送数据。在微观中,您可以看到您在哪里划分数据,但这并不意味着您天生就会在 PC 端看到这一点。

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

解决方案是创建一个协议。最简单的方法是让微控制器仅在 PC 端请求时才发送数据(通过向微控制器发送一些请求命令,例如仅一个字节)。那么当PC端接收到答案时,它就可以知道它是一个单独的数据,因此可以将它分解。

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

于 2013-07-07T19:37:43.537 回答
0
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)
于 2013-06-18T14:31:20.583 回答