我正在尝试为通过RS232连接到计算机的设备写入命令,但似乎没有成功写入命令,请帮助。
我的代码
char stx = (char)0x02;
char etx = (char)0x03;
char data = '2';
char lrc = CalculateLRC(data.ToString() + etx.ToString());
char[] outputBuffer = {stx, data, etx, lrc };
mySerialPort.Write(outputBuffer, 0, outputBuffer.Length);方法
public static char CalculateLRC(string toEncode)
{
byte[] bytes = Encoding.ASCII.GetBytes(toEncode);
byte LRC = 0;
for (int i = 0; i < bytes.Length; i++)
{
LRC ^= bytes[i];
}
return Convert.ToChar(LRC);
}发布于 2015-06-23 16:57:39
纵向冗余校验(LRC)是不包括STX和ETX的所有数据字节的异或(XOR)。在您的代码中,CalculateLRC包含ETX的代码行是错误的。
https://stackoverflow.com/questions/25038151
复制相似问题