Arduino 基于Stream类的函数详细说明
- 📍Stream类官方资料:https://www.arduino.cc/reference/en/language/functions/communication/stream/
✨许多库包含了 Stream 类,例如 Serial;Wire;Enternet Client;Enternet Server;SD等。
📑Stream 类所包含函数列表:
available()
read()
flush()
find()
findUntil()
peek()
readBytes()
readBytesUntil()
readString()
readStringUntil()
parseInt()
parseFloat()
setTimeout()
available()
:获取数据流中接收到的字节数
返回值(Returns):
返回值是存储在缓冲区的字节数, int 类型
read()
说明(Description):
函数 read() 获取数据流中第一个字节数据,获取数据后会清除当前字节数据,与* * peek()函数有区别
返回值(Returns):
返回值是 读取数据字符的第一个字节(8bit)
flush()
:可让开发板在所有待发数据发送完毕前,保持等待状态。
说明(Description):
函数 flush() 列队发送完未发送的数据.
在没有使用flush函数的情况下,开发板不会等待所有“发送缓存”中数据都发送完毕再执行后续的程序内容。也就是说,开发板是在后台发送缓存中的数据。程序运行不受影响。
相反的,在使用了flush函数的情况下,开发板是会等待所有“发送缓存”中数据都发送完毕以后,再执行后续的程序内容。
返回值(Returns):
bool 类型
find()
:
说明(Description):
函数 find() 从数据流中查找目标字符串,找到目标字符串后返回值 = true,超时则返回值 = false
返回值(Returns):
bool 类型
findUntil()
说明(Description):
函数 findUntil() 从数据流中读取目标字符串或者终止目标字符串,找到目标字符串后返回值 = true,超时则返回值 = false
语法(Syntax):
stream.findUntil(target, terminal)
target:要搜索的字符串
terminal:终止目标字符串
返回值(Returns):
bool 类型
-
peek()
说明(Description):
函数 peek() 从数据流中读取当前的一个字节,不会清除数据流中当前字节数据,与 read() 函数有区别。
返回值(Returns):
当前缓存区数据流的第一个字节数据,如果缓存区无数据时返回 -1 -
readBytes()
说明(Description):
函数 readBytes() 从数据流中读取确定字节的数据到缓存区,读取确定长度数据或超时时终止
语法(Syntax):
stream.readBytes(buffer, length)
stream:从 Stream 类 继承的实例
buffer:存放数据的缓存区(可以是 char[] 或 byte[] 这样的数组)
length:存放的字节数
返回值(Returns):
已经存放在缓存区中的字节数
readBytesUntil()
说明(Description):
函数 readBytesUntil() 从数据流中读取确定字节的数据到指定缓存地址,读取确定长度数据、或读取到终止字符、或超时时终止
和 readBytes() 相比多了终止字符串
语法(Syntax):
stream.readBytesUntil(character, buffer, length)
stream:从 Stream 类 继承的实例
character:终止字符(char 类型)
buffer:存放数据的指定缓存地址(可以是 char[] 或 byte[] 这样的数组)
length:存放的字节数(int 类型)
返回值(Returns):
已经存放在缓存区中的字节数
readString()
说明(Description):
函数 readString() 将字符从数据流中读入字符串中,超时时该函数终止
返回值(Returns):
读取到的字符串(string)
readStringUntil()
说明(Description):
函数 readString() 将字符从数据流中读入字符串中,遇到终止字符或超时时该函数终止
语法(Syntax):
stream.readString(terminator)
terminator:终止字符
返回值(Returns):
读取到的字符串(string)
parseInt()
说明(Description):
函数 parseInt() 从数据流中读取第一个有效(长)整型数,跳过非整数(或减号)的字符。
语法(Syntax):
Serial.parseInt()
Serial.parseInt(lookahead)
Serial.parseInt(lookahead, ignore)
返回值(Returns):
长整型(long)
parseFloat()
说明(Description):
函数 parseInt() 从数据流中读取第一个有效浮点数,跳过非数字(或减号)的初始字符,parseFloat()由非浮点数的第一个字符结束。
语法(Syntax):
stream.parseFloat(list)
list:检查的数据流
返回值(Returns):
浮点数(float)
setTimeout()
说明(Description):
函数 setTimeout() 设置等待数据流通讯超时时间,毫秒为单位
语法(Syntax):
stream.setTimeout(time)
time:毫秒为单位的时间,长整型(long)