如何通过C#中的串口实时接收数据

时间:2015-12-21 16:57:22

标签: c# serial-port

我是C#的新手,我使用的是Windows窗体。

我正在构建通过com0com虚拟串口从/向超终端应用程序发送/接收数据的应用程序(因为我的笔记本电脑中没有COM端口)。

我有一张包含2 buttons和2 textBoxes以及serialPort1的表单。当我单击buttonSend时,它将textbox1中的文本发送到HyperTerminal。当我点击buttonReceive时,它会显示超级终端在textbox2中发送的文本。

我的代码工作正常我只能在点击按钮时发送和接收数据。我希望实时接收数据,而不是单击按钮在textbox中显示,我的意思是当我在超级终端中键入文本时,我希望它出现在textbox2中。你能帮我解决一下这个问题吗?谢谢。

 public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();

        if (!serialPort1.IsOpen)
        {
            try
            {
                serialPort1.Open();
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }
    }

    private void buttonSend_Click(object sender, EventArgs e)
    {
        serialPort1.WriteLine(textBox1.Text);
    }

    private void buttonReceive_Click(object sender, EventArgs e)
    {
        try
        {
            textBox2.Text = serialPort1.ReadExisting();
        }
        catch (TimeoutException)
        {
            MessageBox.Show("timeOut");
        }
    }
}

0 个答案:

没有答案