都说了是纯干货了,所以直接上内容,以下函数使用前均需要加上Serial.,下面是关于串口通讯函数的基本介绍:
函数列表
begin()
available()
read()
flush()
print()
println()
write()
peak()
serialEvent()
1.begin()函数说明
语法:Serial.begin ( speed)
功能:打开串口
参数:
speed 波特率
2.available()函数说明
语法:
Serial.available()
Arduino Mega only:
Serial1.available() Serial2.available() Serial3.available()
功能:获取串口上可读取的数据的字节数。该数据是指已经到达并存储在接收缓存(共有64字节)中。available()继承自Stream实用类。
参数:
无
返回值:
返回可读取的字节数
3.read()函数说明
语法:Serial.read()
Arduino Mega only:
Serial1.read() Serial2.read() Serial3.read()
功能:读串口数据,read()继承自Stream实用类。 语法:
参数:
无
返回值:
串口上第一个可读取的字节(如果没有可读取的数据则返回-1)- int型。
4.flush()函数说明
刷新串口数据
5.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 (binary二进制), OCT (octal八进制), DEC (decimal十进制), HEX (hexadecimal十六进制)。对于浮点数,该参数指定小数点的位数。
例如:
Serial.print(78, BIN) gives "1001110"
Serial.print(78, OCT) gives "116"
Serial.print(78, DEC) gives "78"
Serial.print(78, HEX) gives "4E"
Serial.println(1.23456, 0) gives "1"
Serial.println(1.23456, 2) gives "1.23"
Serial.println(1.23456, 4) gives "1.2346"
你可以用F()把待发送的字符串包装到flash存储器。
例如:
Serial.print(F(“Hello World”))
要发送单个字节数据,请使用Serial.write()。
语法:
Serial.print(val)
Serial.print(val, format)
参数:
val: 要发送的数据(任何数据类型)
format: 指定数字的基数(用于整型数)或者小数的位数(用于浮点数)。
返回值:
size_t (long): print()返回发送的字节数(可丢弃该返回值)。
编程技巧:
在版本1.0时,串口传输是异步的,Serial.print()会在数据发送完成前返回。
6.println()函数说明
功能:往串口发数据,类似Serial.print(),但有换行
7.write()函数说明
语法:
Serial.write(val)
Serial.write(str)
Serial.write(buf, len)
Arduino Mega也支持:
Serial1, Serial2, Serial3(在Serial的位置)
功能:写二进制数据到串口,数据是一个字节一个字节地发送的,若以字符形式发送数字请使用print()代替。
参数:
val: 作为单个字节发送的数据
str: 由一系列字节组成的字符串
buf: 同一系列字节组成的数组
len: 要发送的数组的长度
返回:
byte
write()会返回发送的字节数,所以读取该返回值是可选的。
8.peak()函数说明
功能:
返回收到的串口数据的下一个字节(字符),但是并不把该数据从串口数据缓存中清除。就是说,每次成功调用peak()将返回相同的字符。与read()一样,peak()继承自Stream实用类。 语法:
可参照Serail.read()
9.serialEvent()函数说明
功能:
当串口有数据到达时调用该函数(然后使用Serial.read()捕获该数据)。
注意:目前serialEvent()并不兼容于Esplora, Leonardo, 或 Micro。
语法:
void serialEvent(){
//statements
}
Arduino Mega only:
void serialEvent1(){
//statements
}
void serialEvent2(){
//statements
}
void serialEvent3(){
//statements
}
statements可以是任何有效的语句。