SerialPort不读取消息

时间:2012-10-03 10:27:45

标签: c# serial-port serial-communication

我正在尝试使用[SerialPort]类运行串行通信。我做了一个简单的控制台应用程序项目,我使用HyperTerminal测试这个类。

这是我的计划:

class Program
{
    private static bool _continue = true;
    private static SerialPort port;

    static void Main(string[] args)
    {
        try
        {
            port = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
            port.ReadTimeout = port.WriteTimeout = 5000;
            port.Open();

            Thread thread = new Thread(Read);
            thread.Start();

            while (_continue)
            {
                string message = Console.ReadLine();

                if (message.Equals("quit"))
                    _continue = false;
                else
                    port.Write(message);
            }

            thread.Join();
            port.Close();
        }
        catch (Exception ex)
        { }
    }

    private static void Read()
    {
        while (_continue)
        {
            try
            {
                string message = port.ReadLine();
                Console.WriteLine(message);
            }
            catch (TimeoutException) { }
        }
    }
}

The problem is以下内容:当我写一行(在控制台中)时,可以在HyperTerminal GUI中看到我写的内容,但是当我使用HyperTerminal写一行时,我的程序没有读取任何消息a TimeoutException

为什么?
我该如何解决这个问题呢? 感谢。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

如果Port.ReadLine正在等待新行,请尝试Port.Read!