【Arduino】Arduino接收字符串


【Arduino】Arduino接收字符串

 

相關文章 【Arduino】開發入門【十】Arduino藍牙模塊與Android實現通信

【Arduino】開發入門【十】Arduino藍牙模塊與Android實現通信 中,只實現了,單個字符的發送。

Arduino的Serial.read()每次只能讀一個字節,下面的方法說明如何實現字符串通信。

編譯只要一塊Arduino,當然可以結合【Arduino】開發入門【十】Arduino藍牙模塊與Android實現通信

用Arduino編譯器的串口監視器即可看到結果,我們打什么文字進去,下面就會返回什么文字。 

實現代碼,網上貼了很多

String comdata = "";

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

void loop()
{
    while (Serial.available() > 0)  
    {
        comdata += char(Serial.read());
        delay(2);
    }
    if (comdata.length() > 0)
    {
        Serial.println(comdata);
        comdata = "";
    }
}

代碼很簡單,comdata是一個字符串類型變量。Serial.available()是當前串口緩沖池的數據量。Serial.read()是讀緩沖池的語句,每次只能讀一個字節。

用了String類型變量,很簡單的實現了字符到字符串的加入,還有字符串輸出,賦值等麻煩問題,所以很簡單的代碼就能處理串口數據。

特別留意的是讀串口時的delay(2)不能刪掉,否則串口緩沖區不夠時間接受數據。即使調小延時也會出錯。具體數值也可以實驗決定。

再提醒一個:comdata說是一個字符串,也是一個數組,引用每個字的話可以用comdata[0],comdata[1]。。。comdata[n]。如果我們要每個字節取出的話,可以每個引用。

 

 

相關文章

【Arduino】開發入門教程【一】什么是Arduino
【Ardunio】開發入門教程【二】數據類型
【Arduino】開發入門教程【三】Arduino開發工具
【Arduino】開發入門教程【四】Arduino驅動安裝
【Arduino】開發入門教程【五】Hello Arduino
【Arduino】開發入門教程【六】數據類型轉換函數
【Arduino】開發入門教程【七】7段顯示器實現+源代碼
【Arduino】開發入門教程【八】舵機操作+源代碼
【Arduino】開發入門【十】Arduino藍牙模塊與Android實現通信

//////////////////////////////////////////////

原創聲明 轉載請注明

本文出自 Ray-Ray的博客

文章地址 http://www.cnblogs.com/rayray/p/3198091.html 

感謝大家的推薦和收藏

你的支持! 我們的動力!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM