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