如何在C#中将二进制数据写入串口

时间:2014-09-30 08:22:46

标签: c# binary serial-port

我尝试使用C#:

将一些二进制数据写入串行接口
0x02 0x81 0xF4 ...

这是远程设备的命令,必须完全按照这样的方式进行传输。这里开始问题。当我使用

System.IO.Ports.SerialPort.Write(Byte[] data, int Offset, int Size)

数据被编码(以ASCII,UTF-8或其他形式)。而且我完全不需要,因为我的远程设备并不了解任何编码。

是否有解决方法?

2 个答案:

答案 0 :(得分:0)

你可以试试这个:

using System.IO.Ports;

public void TestSerialPort()
{
SerialPort serialPort = new SerialPort("COM1", 115200, Parity.None, 8, StopBits.One);
serialPort.Open();
byte[] data = new byte[] { 1, 2, 3, 4, 5 };
serialPort.Write(data, 0, data.Length);
serialPort.Close();
}

答案 1 :(得分:0)

我最近解决了这样的确切问题:

// Update Relay
serialPort2.Close();
serialPort2.PortName="COM3";
serialPort2.Encoding = System.Text.Encoding.GetEncoding("Windows-1252");
serialPort2.BaudRate=9600;
serialPort2.DataBits=8;
serialPort2.Parity=Parity.None;
serialPort2.StopBits= StopBits.One; 
try {serialPort2.Open();
    serialPort2.Write("\u00a0\u0001\u0001\u00a2");
} catch {
    // Open Serial Port Failed
    label1.Text=label1.Text+ " Fail";
}

杰夫