通过serialport传递字节数组

时间:2015-01-05 11:38:24

标签: c# serial-port

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

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);

但是,serialport接收它像B,B等字母。怎么能 我收到它作为数字??

1 个答案:

答案 0 :(得分:1)

您可以将整个字节数组(通常称为缓冲区)传递给serialPort.Write()方法。你正在做的是将单个字节传递给方法。在您的情况下,对方法的调用将类似于:

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

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

Encoding.ASCII.GetString(buffer);

希望这会有所帮助:)