我想通过串口传递以下字节数组。
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等字母。怎么能 我收到它作为数字??
答案 0 :(得分:1)
您可以将整个字节数组(通常称为缓冲区)传递给serialPort.Write()
方法。你正在做的是将单个字节传递给方法。在您的情况下,对方法的调用将类似于:
serialport1.Write(wtbin, 0, wtbin.Length);
您可以在MSDN - SerialPort Write上阅读有关SerialPort的更多信息。另外请记住,您要发送字节,而不是ASCII文本。根据您发送的内容,PUTTY可能会显示不同的内容。为了将字节数组(缓冲区)转换回ASCII,您可以使用
Encoding.ASCII.GetString(buffer);
希望这会有所帮助:)