gpt4 book ai didi

c# - 从串口读取的数据是分离的。代码+结果里面

转载 作者:行者123 更新时间:2023-11-30 18:12:23 25 4
gpt4 key购买 nike

所以,我正在尝试从串行端口读取数据以与 Arduino 通信。这是我正在使用的代码:

    public partial class Form1 : Form
{
SerialPort port = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);

public Form1()
{
InitializeComponent();
port.Open();
port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
}


private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
this.Invoke(new EventHandler(DoUpDate));
}

private void DoUpDate(object s, EventArgs e)
{
textBox1.AppendText(port.ReadLine() + "\r\n");
}
}

但我在文本框中得到的结果是(检查图片):

enter image description here

读取的值应该是 975,但我得到了分隔值以及许多空行。

感谢任何帮助。

编辑#1:

这是 Arduino 代码:

int sensorPin=A0;
int sensorValue=0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
sensorValue=analogRead(sensorPin);
Serial.print(sensorValue);
Serial.print("\n");
}

这是我在 arduino IDE 中单击串行阅读器时的结果(C# 代码应显示的内容)

enter image description here

编辑#2

在进一步思考这个问题之后,我认为 C# 代码读取不完整数据的速度非常快,但我没有解决方案,您知道我可以尝试解决什么问题吗?

最佳答案

我的 C# 不是很流利,但也许您应该等待数据进入串行缓冲区,然后再尝试读取它们。一种方法是使用 port.ReadExisting() 可以看出 here !

希望对您有所帮助!

关于c# - 从串口读取的数据是分离的。代码+结果里面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55442952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com