第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浏览量
33846 -
Arduino
+关注
关注
188文章
6469浏览量
187056
发布评论请先 登录
相关推荐
评论