C#:serialPort每次都读取新的数字

问题描述

问题很复杂,我的代码很大,但是让我尝试解释一下。

请参见下面的代码

private void button13_Click(object sender,EventArgs e)
        {
            serialPort1.Write("0800");  // Write to serial port for reading
            Thread.Sleep(1);
            serialPort1.Write("0800");  // Write to serial port for reading
            in_data = serialPort1.ReadLine();
            textBox7.Text = in_data;
            Console.WriteLine(in_data);
            in_data = "";
            serialPort1.discardInBuffer();
            serialPort1.discardOutBuffer();
        }

让我解释一下: 我以C#形式实现了一个按钮。当我按下按钮时,它将通过serialPort1向arduino发送0800。它发送两次。发送每个命令后,Arduino通过Serial.println(receivedData,HEX)写入串行端口。来自Arduino的数据由C#(上面的函数通过in_data = serialPort1.ReadLine()行读取,并显示在textBox7中。在函数的最后,我正在清除两个缓冲区。 但是问题是,每当我按下此按钮时,文本框中就会显示一些新数据。

我不明白原因,因为连接到arduino的电路应始终以相同的代码响应。我已经用其他固定装置测试了电路,否则电路工作正常。 写入串行端口工作正常。例如此功能

 private void button6_Click(object sender,EventArgs e)
        {
            serialPort1.Write("EXTADC");  // Write to serial port
            Console.WriteLine("EXTADC");
        }

请注意:为了从电路中获得所需的输出,每次必须发送两个命令。另外,我对Arduino和C#还是很陌生(您可能对我的帖子有所了解)。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)