我尝试使用C#:
将一些二进制数据写入串行接口0x02 0x81 0xF4 ...
这是远程设备的命令,必须完全按照这样的方式进行传输。这里开始问题。当我使用
System.IO.Ports.SerialPort.Write(Byte[] data, int Offset, int Size)
数据被编码(以ASCII,UTF-8或其他形式)。而且我完全不需要,因为我的远程设备并不了解任何编码。
是否有解决方法?
答案 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";
}
杰夫