从COM端口读取数据

时间:2012-01-21 10:49:28

标签: serial-port serial-communication

我有点问题。 我尝试从COM端口读取数据,并收到“坏”数据,如下所示:

  

0   Fl-1   我2    3   ? 4   M&五    6    7    8    9    10   ? 11    12    13   d 14   D 15

打开端口的代码是:

_port = new SerialPort(Settings.Default.COM, 9600, Parity.None, 8, StopBits.One);
_port.DataReceived += PortDataReceived;
_port.Open();

读取数据的代码是:

private void PortDataReceived(object sender, SerialDataReceivedEventArgs e) 
{
    string s = _port.ReadExisting();
    _reportBuffer = _reportBuffer + s;
    _counter++;
    if (_counter == _messageLength)
    {
        //action
    }
}

欢迎任何想法! 提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果您确定您收到的数据不是正在发送的数据,则值得仔细检查波特率,奇偶校验设置等。

如果一切设置正确,并且您仍未获取正在发送的数据,请使用终端仿真程序打开COM端口。如果您可以在那里看到正确的数据,那么问题在于您的代码;如果你不能,问题出在其他地方。