1

我有一个我知道接收无效奇偶校验位的 COM 端口,并且我正在使用以下程序,但是我似乎从未得到文档提到的尾随126字节。

在下面的程序中,控制台打印了很多!!!!!但没有?????,为什么?

另外我假设具有无效奇偶校验位的字节仍将包含在流中?

using (var serialPort = new SerialPort())
{
    serialPort.PortName      = "COM2";
    serialPort.BaudRate      = 562500;
    serialPort.Parity        = Parity.Space;
    serialPort.DataBits      = 8;
    serialPort.StopBits      = StopBits.One;

    serialPort.ErrorReceived += (s, e) => Console.WriteLine("!!!!!");

    serialPort.Open();

    var thread = new Thread(() =>
    {
        while (isRunning)
        {
            var b = serialPort.ReadByte();

            if (b == 126)
                Console.WriteLine("?????");
        }
    });

    thread.Start();

    Console.WriteLine("");
    Console.WriteLine("Press any key to exit.");
    Console.ReadKey(true);

    isRunning = false;
    thread.Join();
} 
4

1 回答 1

1

这是一个文档错误。实际替换字符是 '?',ASCII 码 63。

于 2013-03-27T21:23:44.793 回答