通过串口传递字节数组

Passing byte array through serialport

我想通过串口传递如下字节数组。

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等字母,怎么办 我收到它作为数字??

您可以将整个字节数组(通常命名为 buffer)传递给 serialPort.Write() 方法。您正在做的是将一个字节传递给该方法。在您的情况下,对该方法的调用类似于:

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

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

Encoding.ASCII.GetString(buffer);

希望这对您有所帮助:)