2013-03-27 78 views
1

我有一个COM端口,我知道接收无效的奇偶校验位,我正在使用下面的程序,但我似乎没有得到尾随126字节documentation提到。奇偶校验错误上缺少“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(); 
} 

回答

1

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