C#SerialPort.ReadLine与终端串行读取的区别

时间:2018-02-12 15:01:24

标签: c# serial-port

在Unity中运行的这些C#代码之间有什么区别:

    SerialPort stream = new SerialPort ( "/dev/cu.usbserial-A9Y59ZJV", 9600 );
    stream.ReadTimeout = 1000;
    stream.Open();

    while( stream.IsOpen )
    {
        try
        {
            Debug.Log( stream.ReadLine() );
        }
        catch (TimeoutException e)
        {
            Debug.LogError (name + " timed out reading from Arduino: " + e);
        }
    }
}

并运行Unix终端命令:

screen /dev/cu.usbserial-A9Y59ZJV 9600 –L

C#代码抛出TimeoutExceptions。 终端命令读取数据(它以秒为单位)

这两个人不是同时跑。统一代码实际上正确地分为Start()和Update()消息。

1 个答案:

答案 0 :(得分:0)

我在写这个问题的过程中意识到自己的错误,但是在回答其他人有同样问题的时候。

小心" \ r \ n"和" \ n"。 C#s SerialPort expects different values depending on platform

如果您在没有接收平台版本换行的情况下发送数据,则无法使用ReadLine。请改用ReadByte