簡體   English   中英

使用C#應用程序從arduino讀取串行數據

[英]Reading serial data from arduino with c# application

我正在構建需要讀取從arduino接收到的一些串行數據的ac#應用程序。 arduino發送以下信息:

Serial.write(0x1);
Serial.write(0x106);
Serial.write(fake_channel.samples, SAMPLE_COUNT); //Sample array

樣本數組只不過是一個用整數填充的數組。

用C#應用程序閱讀此內容的最佳方法是什么? 我需要從串行數據中獲取整數。 因此,當我得到0x1時,我想讀取1。我可以使用以下方法讀取數據:

private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    //Code to read the serial data needed here

}

在我的一個較舊的應用程序中,我能夠通過以下方式讀取字符串格式的一些串行數據:serialPort.ReadExisting(); 現在唯一的問題是我沒有收到字符串,而是一個看起來像字節的整數。 那是我感到困惑的部分,因為如何從看起來像字節的東西中讀取整數。

DataReceived事件告訴您已接收到一些字節,您可以去讀取它們。

如果要讀取字節(不是字符串),則可以使用serialPort.BytesToRead屬性來知道有多少字節可讀取。 然后可以使用serialPort.Read(byte[], int, int)方法在一次讀出所有的字節,或serialPort.ReadByte()方法來讀取一次一個字節。

如果嘗試讀取更多可用字節,則該方法將阻塞,直到指定數量的字節可用為止。 為了防止這種情況,您可以使用serialPort.ReadTimeout設置讀取超時。

暫無
暫無

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

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