问题描述
问题很复杂,我的代码很大,但是让我尝试解释一下。
请参见下面的代码:
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 (将#修改为@)