说明
peek函数可用于从设备接收到的数据中读取一个字节的数据。但是与read函数不同的是,使用peek函数读取数据后,被读取的数据不会从数据流中消除。这就导致每一次调用peek函数,只能读取数据流中的第一个字符。然而每一次调用read函数读取数据时,被读取的数据都会从数据流中删除。
本函数属于Stream类。该函数可被Stream类的子类所使用,如(Serial, WiFiClient, File 等)。
语法
stream.peek()
注:此处stream为概念对象名称。在实际使用过程中,需要根据实际使用的stream子类对象名称进行替换。如:
Serial.peek()
wifiClient.peek()
参数
target: 被查找字符串。允许使用String或char类型。
terminator: 终止字符串。用于设置终止函数执行的字符串信息。设备在读取数据时一旦读取到此终止字符串,将会结束函数执行并返回。
返回值
设备没有接收到数据时,返回值为-1
设备接收到数据时,返回值为接收到的数据流中的第1个字符。
示例程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : stream_peek 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : CYNO朔 日期/Date(YYYYMMDD) : 20200317 程序目的/Purpose : 此程序使用Serial来演示Stream类中的peek()。 Stream类用于处理字符数据流或二进制数据流。Stream类是不能被直接调用的。 然而当我们使用基于Stream类的库时,都会调用Stream中的内容。 以下Arduino库及相应库中的类都是基于Stream类所实现的。 库 类 Core Serial Wifi WiFiClient Ehternet EthernetClient ESP8266FS File SD File Wire Wire GSM GSMClient SoftwareSerial SoftwareSerial ----------------------------------------------------------------------- 修订历史/Revision History 日期/Date 作者/Author 参考号/Ref 修订说明/Revision Description ----------------------------------------------------------------------- 本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。 该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/ ***********************************************************************/ void setup() { // 启动串口通讯 Serial.begin(9600); Serial.println(); } void loop() { while (Serial.available()){ // 当串口接收到信息后 char serialData = Serial.peek(); // 将接收到的信息使用peek读取 Serial.println((char)serialData); // 然后通过串口监视器输出peek函数所读取的信息 } } |