读取来自Arduino的任何字符串

本文关键字:任何 字符串 Arduino 读取 | 更新日期: 2023-09-27 18:18:31

我正在开发一个应用程序,通过串口读取数据。我想读的是一个string,它可能是空的,或者里面有东西。

我的第一次尝试是创建一个数组,在它里面我可以插入什么可以从串行端口。

string[] pass = new string[4];
pass[0] = "";
pass[1] = "Something";
pass[2] = "To";
pass[3] = "Read";
for (int i = 0; i < pass.Length; i++)
{
    string element = pass[i];
}

但这对我来说不工作,因为我想从串行端口读取任何东西。在下一个选项中,在data.ToString() == "Any string I want" .

string data = serPort.ReadExisting();
if (data.ToString() == "Any string I want")
{
    Environment.Exit(0);
}

基本上,我想每次通过Arduino发送一些东西时,它都会被应用程序识别,而不是"Any string I want"

你们对此有什么建议吗?换句话说,如果传入的数据等于Arduino编写的字符串,它将做一些事情。

读取来自Arduino的任何字符串

您需要决定一个终止字符并将其添加到正在发送串行字符串的arduino代码中,并在传入数据中查找该字符。我使用回车换行

    private string receivedDate = string.Empty;
    private System.IO.Ports.SerialPort mport;
    private void Form1_Load(object sender, EventArgs e)
    {
        mport = new SerialPort("COM1", 9600, Parity.None,8, StopBits.One);
        mport.DataReceived += new SerialDataReceivedEventHandler(mport_DataReceived);
    }
    private void mport_DataReceived(object sender, SerialDataReceivedEventArgs e)
    {
        receivedDate += mport.ReadExisting();
        if (receivedDate.Contains("'r'n"))
        {
            //show data
            //Clear receivedDate
        }
    }