c# - 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()
line 读取并显示在 textBox7 中。在函数的最后一个,我正在清除两个缓冲区。但是问题是,每当我按下此按钮时,都会显示一些新数据在文本框中。
而且我不明白原因,因为连接到 arduino 的电路应该总是以相同的代码响应。我已经用其他夹具测试了电路,否则该电路工作正常。写入串行端口工作得很好。例如这个函数:
private void button6_Click(object sender, EventArgs e)
{
serialPort1.Write("EXTADC"); // Write to serial port
Console.WriteLine("EXTADC");
}
请注意:每次发送两个命令是必要的,以便从电路中获得所需的输出。此外,我对 Arduino 和 C# 还很陌生(您可能从我的帖子中有所了解)。
解决方案
推荐阅读
- php - 一键删除 14 行
- php - 从单独的表中创建列引用 2 列 laravel
- ats - 为什么这个模板在单个文件中工作而不是跨文件工作?
- excel - 在 vba 中,我得到一个未设置的对象变量(错误 91)
- sql - SQL:使用百分比对表进行每月细分
- javascript - HTML 脚本捕获文本并使用自己的值执行事件
- google-apps-script - Google 表格高级 Google 服务 URL 缩短器 403 错误:禁止
- javascript - 如果 polyfill 脚本下载失败会怎样?
- git - Git 卡在 git pull upstream master
- python - 使用 python3 和 urbllib 的 PUT 方法 - 标头