通过串行端口传递字节数组

本文关键字:字节 字节数 数组 串行端口 | 更新日期: 2023-09-27 18:36:18

我想通过串行端口传递以下字节数组。

array[j].abc = 2;
array[j].def = 4;
array[j].gh = 6;
array[j].ij = 0;
array[j].jl = 1;
array[j].fg= 1;
array[j].bh = 2;

我按如下方式传递了字节数组

byte[] wtbin = TestSerializer.StructureToByteArray(array[j]);
byte[] bharr = new byte[1];
bharr[0] = wtbin[i];
serialPort1.Write(bharr, 0, 1);

但是串行端口将其作为字母接收,例如B,B等。怎么能我以数字形式收到它??

通过串行端口传递字节数组

您可以将整个字节数组(通常称为缓冲区)传递到 serialPort.Write() 方法中。相反,您正在做的是将单个字节传递给该方法。在您的情况下,对该方法的调用将如下所示:

serialport1.Write(wtbin, 0, wtbin.Length);

您可以在 MSDN 上阅读有关 SerialPort 的更多信息 - SerialPort Write。此外,请记住,您发送的是字节,而不是 ASCII 文本。根据您发送的内容,PUTTY 可能会显示不同的内容。为了将字节数组(缓冲区)转换回ASCII,您可以使用

Encoding.ASCII.GetString(buffer);

希望这对:)有所帮助