发送字节,接收端从0到255

  • 本文关键字:接收端 字节 vb6
  • 更新时间 :
  • 英文 :


如果我使用VB6通过WriteFile(串行通信(发送字符串(字符(a,则接收方将获得97(读取字节(,这是a的Dec值。

现在我想让接收方获得0-255的字节值。

这很容易得到一些结果,比如:

发送字符串a,得到字节97。发送字符串z,得到字节122。但是如何让receive得到字节值CCD_ 9或CCD_?

我怎样才能意识到这一点?我找到了vb6cbyte函数,但它似乎无法正常工作。非常感谢。

这是我的当前代码:

发送端(vb6(:

'this send the character "a"
call send_string(handle, "a")
Sub send_string(ByVal handle_connect As Long, ByVal s As String)
WriteComm handle_connect, StrConv(s, vbFromUnicode)
End Sub
Function WriteComm(ByVal hComm As Long, BytesBuffer() As Byte) As Long
Dim dwBytesWrite

If SafeArrayGetDim(BytesBuffer) = 0 Then Exit Function
WriteFile hComm, BytesBuffer(0), UBound(BytesBuffer) + 1, dwBytesWrite, 0
WriteComm = dwBytesWrite
End Function

接收端(arduino(:

void setup() {
Serial.begin(115200);
}
void loop() {
if (Serial.available()) {
Serial.println(Serial.read()); //this print the byte received
}
}

如果您真正想要的是发送数值,我不知道为什么代码必须以字符串作为输入。但假设是这种情况,您可能可以使用Chr()函数将其他值编码为单个字符。

问题是关于0或1…所以你可以这样做:

s = Chr(0)
send_string handle, s

由此,s将是一个字符串。它不会包含可打印字符(ASCII中的0不代表任何字母、数字、标点符号等(,但这无关紧要。

Chr对于值0-255应该可以正常工作。

文档

相关内容

  • 没有找到相关文章

最新更新