代码之家  ›  专栏  ›  技术社区  ›  ronag

奇偶校验错误中缺少“126”

  •  1
  • ronag  · 技术社区  · 11 年前

    我有一个COM端口,我知道它接收无效的奇偶校验位,我正在使用以下程序,但我似乎从来没有得到尾部 126 字节 documentation 提及。

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

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

    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();
    } 
    
    1 回复  |  直到 11 年前
        1
  •  1
  •   Hans Passant    11 年前

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

    推荐文章