第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);
}
“电子警察”或将全国上线
黑莓CEO程守宗将于本周退休
boost电路工作原理 boost电路输出电压和输入电压的关系
大数据生态系统最底层的数据存储
中科创达参与发起“人工智能与智能硬件创新中心”的成立
如何使用Arduino串行
如何画技术架构图
谷歌云平台发布Memystorore Beta测试 提供完全可管理的内存内数据存储
AI芯片融资哪家强?
大联大控股旗下世平成立物联网展示中心,打造亚洲级物联网生态圈
电磁兼容在实际应用环境中发生的骚扰与干扰
哪些银行已经开始入局区块链了
氮化镓技术是什么意思
地平线争做嵌入式人工智能的领导者,余凯详解无人驾驶技术
小米智能插座使用方法
指纹锁品牌到底是国产的好还是进口的好
汽车音响改装的基本知识
虹科直播精彩回顾 | 太赫兹TDS技术的工业测厚与表征应用
DeepMind用新方法让智能体在复杂的非对称博弈里找到纳什均衡
三百左右的蓝牙耳机哪款好?四款平价蓝牙耳机测评