第1步:
說明
指示指定的串行端口是否已就緒。
在基于32u4的板上(Leonardo,Yùn,ecc),如果((串行))指示USB CDC串行連接是否打開。對于所有其他實例,包括Leonardo上的if(Serial1),它將始終返回true。
這是Arduino 1.0.1中引入的。
語法
所有板:if(Serial)
特定于Arduino Leonardo:if(Serial1)
特定于Arduino Mega的:if(Serial1)if(Serial2)if(Serial3)
無
返回
布爾值:如果指定的串行端口為true,則返回true可用。僅在準備好之前查詢Leonardo的USB CDC串行連接時,這將返回false。
示例:
void setup(){
//初始化串行并等待端口打開:
Serial.begin(9600);
while(!Serial){
;//等待串口連接。本地USB所需
}
}
void loop(){
//正常進行
}
步驟2:命令:Available()
描述
獲取可用于從串行端口讀取的字節數(字符)。這是已經到達并存儲在串行接收緩沖區(包含64個字節)中的數據。 available()繼承自Stream實用程序類。
語法
Serial.available( )
僅適用于Arduino Mega:Serial1.available()Serial2.available()Serial3.available()
參數
無
的返回 的
可讀取的字節數
示例
int entryingByte = 0;//用于輸入串行數據
void setup(){
Serial.begin(9600);//打開串行端口,將數據速率設置為9600 bps
}
void loop(){
//僅在接收數據時才發送數據:
if(Serial.available()》 0){
//讀取傳入的字節:
傳入的字節= Serial.read();
////說說你得到了什么:
Serial.print(“我收到了:”);
Serial.println(incomingByte,DEC);
}
}
第3步:命令:AvailableForWrite()
說明
獲取可用于在串行緩沖區中寫入而不阻止寫入操作的字節數(字符)。
的的語法 的
Serial.availableForWrite()
的僅限Arduino Mega :
Serial1.availableForWrite()
Serial2.availableForWrite()
Serial3.availableForWrite ()
步驟4:命令:Begin()
描述
設置串行的數據速率,以每秒比特數(波特)為單位數據傳輸。要與計算機通信,請使用以下費率之一:300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600或115200。但是,您可以指定其他費率-例如,通過引腳0和1與需要特定波特率的組件進行通信。
可選的第二個參數配置數據,奇偶校驗和停止位。默認值為8個數據位,無奇偶校驗,一個停止位。
語法
Serial.begin(speed)Serial.begin(speed,config)
僅適用于Arduino Mega:Serial1.begin(速度)Serial2.begin(速度)Serial3.begin(速度)Serial1.begin(速度,配置)Serial2.begin(速度,配置)Serial3.begin(速度) ,配置)
參數
速度:以每秒比特數(波特)為單位-長config:設置數據,奇偶校驗和停止位。有效值為:
SERIAL_5N1
SERIAL_6N1
SERIAL_7N1
SERIAL_8N1(默認值)
SERIAL_5N2
SERIAL_6N2
SERIAL_7N2
SERIAL_8N2
SERIAL_5E1
SERIAL_6E1
SERIAL_7E1
SERIAL_8E1
SERIAL_5E2
SERIAL_6E2
SERIAL_7E2
SERIAL_8E2
SERIAL_5O1
SERIAL_6O1
SERIAL_7O1
SERIAL_8O1
SERIAL_5O2
SERIAL_6O2
SERIAL_7O2
SERIAL_8O2
示例:
void setup(){
序列號.begin(9600);//打開串行端口,將數據速率設置為9600 bps
}
void loop(){}
第5步:命令:串行.find()
,點擊 的描述
Serial.find( )從串行緩沖區讀取數據,直到找到給定長度的目標字符串為止。如果找到目標字符串,則該函數返回true,如果超時則返回false。
Serial.find()從Stream實用程序類繼承。
語法
Serial.find(target)
步驟6:命令:Peek()
描述
返回輸入的串行數據的下一個字節(字符),而不會從內部串行緩沖區中刪除它。也就是說,對peek()的連續調用將返回相同的字符,與對下一次對read()的調用一樣。 peek()繼承自Stream實用程序類。
語法
Serial.peek( )
僅Arduino Mega:
Serial1.peek()
Serial2.peek()
Serial3.peek()
步驟7:命令:Print()
描述
將數據作為人類可讀的ASCII文本打印到串行端口。該命令可以采用多種形式。數字使用每個數字的ASCII字符打印。浮點數類似地以ASCII數字打印,默認為兩位小數。字節作為單個字符發送。字符和字符串按原樣發送。例如:
Serial.print(78)給出“ 78” Serial.print(1.23456)給出“ 1.23” Serial.print(‘N’)給出“ N” Serial.print(“ Hello world。 ”)給出“ Hello world”。第二個可選參數指定要使用的基本格式。允許的值為BIN(二進制或以2為底),OCT(八進制或以8為底),DEC(十進制或以10為底),HEX(十六進制或以16為底)。對于浮點數,此參數指定要使用的小數位數。例如:
Serial.print(78,BIN)給出“ 1001110” Serial.print(78,OCT)給出“ 116” Serial.print(78,DEC)給出“ 78” Serial.print( 78,HEX)給出“ 4E” Serial.println(1.23456,0)給出“ 1” Serial.println(1.23456,2)給出“ 1.23” Serial.println(1.23456,4)給出“ 1.2346”您可以傳遞閃存通過使用F()將字符串包裝到Serial.print()中。例如:
Serial.print(F(“ Hello World”))要發送單個字節,請使用Serial.write()。
語法
Serial.print(val)Serial.print(val,format)
參數
val:要打印的值-任何數據類型
格式:指定數字基(對于整數數據類型)或小數位數(對于浮點類型)
返回
size_t(長):print()返回寫入的字節數,盡管讀取該字節數是可選的
示例 :
/*
對數據使用FOR循環并以各種格式打印數字。
*/
int x = 0;//變量
void setup(){
Serial.begin(9600);//以9600 bps打開串行端口:
}
void loop(){
//打印標簽
串行。 print(“ NO FORMAT”);//打印標簽
Serial.print(“ \ t”);//打印標簽
Serial.print(“ DEC”);
Serial.print(“ \ t”);
Serial.print(“ HEX”);
Serial.print(“ \ t”);
Serial.print(“ OCT”);
Serial.print(“ \ t”);
Serial.print(“ BIN”);
Serial.print(“ \ t”);
for(x = 0; x 《64; x ++){//僅是ASCII圖表的一部分,更改為適合
//將其打印成多種格式:
Serial.print(x);//打印為ASCII編碼的十進制-與“ DEC”一樣
Serial.print(“ \ t”);//打印標簽
Serial.print(x,DEC);//打印為ASCII編碼的十進制
Serial.print(“ \ t”);//打印標簽
Serial.print(x,HEX);//打印為ASCII編碼的十六進制
Serial.print(“ \ t”);//打印標簽
Serial.print(x,OCT);//打印為ASCII編碼的八進制
Serial.print(“ \ t”);//打印標簽
Serial.println(x,BIN);//打印為ASCII編碼的二進制文件
////然后使用“ println”添加回車符
delay(200);//延遲200毫秒
}
Serial.println(“”);//打印另一個回車符
}
步驟8:命令:Println()
描述
將數據作為人類可讀的ASCII文本打印到串行端口,后跟回車符(ASCII 13或‘\ r’)和換行符(ASCII 10或‘\ n’)。此命令的格式與Serial.print()相同。
語法
Serial .println(val)串行.println(val,格式)
參數
val :要打印的值-任何數據類型
格式:指定基數(對于整數數據類型)或小數位數(對于浮點類型)
返回
size_t(長整數):println()返回寫入的字節數,盡管讀取該數字是可選的
示例:
/*
模擬輸入
讀取模擬輸入0上的模擬輸入,將值打印出來。
由Tom Igoe創建于2006年3月24日
*/
int AnalogValue = 0;//變量以保留模擬值
void setup(){
//以9600 bps打開串行端口:
Serial.begin(9600) ;
}
void loop(){
//讀取引腳0上的模擬輸入:
AnalogValue = AnalogRead(0 );
//以多種格式打印出來:
Serial.println(analogValue);//打印為ASCII編碼的十進制
Serial.println(analogValue,DEC);//打印為ASCII編碼的十進制
Serial.println(analogValue,HEX);//打印為ASCII編碼的十六進制
Serial.println(analogValue,OCT);//打印為ASCII編碼的八進制
Serial.println(analogValue,BIN);//打印為ASCII編碼的二進制文件
////下次讀取前延遲10毫秒:
delay(10);
}
責任編輯:wv
-
串行
+關注
關注
0文章
237瀏覽量
33884 -
Arduino
+關注
關注
188文章
6471瀏覽量
187298
發布評論請先 登錄
相關推薦
評論