读取来自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代码中,并在传入数据中查找该字符。我使用回车换行
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
}
}