c#serialport读取函数不读取数据

时间:2017-05-31 09:32:48

标签: c#

我不知道问题出在哪里,我打开串口并发送消息它工作正常,但是当我点击接收按钮时,它没有收到任何东西 我使用所有这些函数Read(),ReadLine(),ReadExisting(),ReadTo()。 没有什么工作

... 
<items>
    <ColumnListItem counter="0" id="item1">
        <cells>
            <Input value="{Commitments}"></Input>               
            <NumericContent id="num1" value="{ResultPercent}"> </NumericContent>
            <NumericContent id="num2" value="{= ${Commitments} + ${ResultPercent}}"> </NumericContent>
        </cells>
    </ColumnListItem>
</items>
... 

然后这是接收数据按钮代码

private void sendBtn_Click(object sender, EventArgs e)
{
   if (!serialPort1.IsOpen)
    {
        try
        {
            serialPort1.Open();
            serialPort1.Write(textBox1.Text);
        }
        catch (Exception ez )
        {
            MessageBox.Show(ez.Message);
        }    
    }
    else
    {
        try
        {
            serialPort1.Write(textBox1.Text+"\n");
            textBox1.Text = "";             
        }
        catch (Exception ez)
        {
            MessageBox.Show(ez.Message);
        }        
    }
}

enter image description here

1 个答案:

答案 0 :(得分:0)

串口发送数据imediatly。所以你需要在不同的端口同时读取这些数据。 如果需要在本地进行测试,则需要一些串口环回软件,可以添加虚拟端口并在它们之间建立虚拟连接。

您必须有2个已连接的串口。

您可以使用this软件创建2个串行端口并连接它们。你的应用程序可以写入一个端口并读取第二个。