串口是Arduino與其它設(shè)備進(jìn)行通信的接口,我們需要很好的掌握它的使用。Arduino串口使用相關(guān)的函數(shù)共有10個(gè)(隨著版本的升級(jí),新版本加入了更多,具體請(qǐng)參見官網(wǎng):http://www.arduino.cc/)。
Serial.begin(); //開啟串口
Serial.end(); //關(guān)閉串口
Serial.available();//判斷串口緩沖器是否有數(shù)據(jù)裝入
Serial.read(); //讀取串口數(shù)據(jù)
Serial.peek(); //返回下一字節(jié)(字符)輸入數(shù)據(jù),但不刪除它
Serial.flush(); //清空串口緩存
Serial.print(); //寫入字符串?dāng)?shù)據(jù)到串口
Serial.println(); //寫入字符串?dāng)?shù)據(jù)+換行到串口
Serial.write(); //寫入二進(jìn)制數(shù)據(jù)到串口
Serial.SerialEvent();//read時(shí)觸發(fā)的事件函數(shù)
Serial.readBytes(buffer,length);//讀取固定長度的二進(jìn)制流
例子1:
運(yùn)行結(jié)果如下圖所示:
例子2:
運(yùn)行結(jié)果如下所示:
Serial.println(incomingByte, DEC);打印接到數(shù)據(jù)十進(jìn)制表示的ascii碼。
peek():功能類似于read(),但是我們知道當(dāng)調(diào)用一次read()后,緩沖區(qū)的數(shù)據(jù)流會(huì)被讀取并刪除read過的數(shù)據(jù),也就是available值會(huì)減少,但peek()不會(huì)出現(xiàn)類似情況,其功能類似于檢測(cè)緩沖區(qū)的頭部數(shù)據(jù),反復(fù)調(diào)用peek()返回的值是一樣的。用得好的話可以精簡很多代碼。
write():寫入二進(jìn)制數(shù)據(jù)到串行端口。這個(gè)數(shù)據(jù)是作為一個(gè)字節(jié)或字節(jié)序列發(fā)送的。如果發(fā)送字符串則需要用到print方法。
最后注意一下:當(dāng)燒程序入板卡的時(shí)候,在完成前即L、TX、RX燈閃爍前,斷開數(shù)據(jù)線很可能損壞硬件。同時(shí)測(cè)試前養(yǎng)成按一次reset鍵復(fù)位的習(xí)慣,這里特別注意,在打開串口監(jiān)視器后,需要reset一次,否則無法看到效果。
聯(lián)系客服