簡體   English   中英

在C#中從Arduino讀取char數據

[英]Read char data from Arduino in C#

所以我正在開發一個代碼,使我能夠通過SerialPort讀取來自arduino的數據。 我已經定義了我想從Arduino讀取的字符,根據接收的內容,我將向Arduino發送一些東西。

我將收到的內容基於三個字符:@,r和\\ r。

string arroba = "@" + "r" + "\r";
byte[] asciiBytes = Encoding.ASCII.GetBytes(arroba);

我已經編寫了這段代碼,但是我不知道這是否真的可行。

當arduino發送給我時,我想像這樣閱讀:

comport.ReadByte(asciiBytes); 

您能幫我弄清楚我如何讀取來自arduino的數據嗎?

首先,您應該通過將事件處理程序添加到ComPort來監聽傳入的數據:

comport.DataReceived += Received;

在此處理程序內部,您可以讀取接收到的字節。 如果接收到的數據中包含特定序列(@,r,\\ r),請檢查以下字節:

private void Received(object sender, SerialDataReceivedEventArgs e)
{
    int bytes = comport.BytesToRead;
    byte[] buffer = new byte[bytes];
    comport.Read(buffer, 0, bytes);
    if (buffer.Except(Encoding.ASCII.GetBytes("@r\r")).Any() == true)
    {
        //Your sequence was received
    }
}

由於Except是LINQ,所以請不要忘記添加

using System.Linq;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM