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