说明
readBytes函数可用于从设备接收的数据中读取信息。读取到的数据信息将存放在缓存变量中。该函数在读取到指定字节数的信息或者达到设定时间后都会停止函数执行并返回。该设定时间可使用setTimeout来设置。
本函数属于Stream类。该函数可被Stream类的子类所使用,如(Serial, WiFiClient, File 等)。
语法
stream.readBytes(buffer, length)
注:此处stream为概念对象名称。在实际使用过程中,需要根据实际使用的stream子类对象名称进行替换。如:
Serial.readBytes(buffer, length)
wifiClient.readBytes(buffer, length)
参数
buffer: 缓存变量/数组。用于存储读取到的信息。允许使用char或者byte类型的变量或数组。
length: 读取字节数量。readBytes函数在读取到length所指定的字节数量后就会停止运行。允许使用int类型。
返回值
buffer(缓存变量)中存储的字节数。数据类型:size_t
示例程序
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 46 47 48 49 50 51 52 53 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : stream_readBytes 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : CYNO朔 日期/Date(YYYYMMDD) : 20200317 程序目的/Purpose : Stream类用于处理字符数据流或二进制数据流。Stream类是不能被直接调用的。 然而当我们使用基于Stream类的库时,都会调用Stream中的内容。 以下Arduino库及相应库中的类都是基于Stream类所实现的。 库 类 Core Serial Wifi WiFiClient Ehternet EthernetClient ESP8266FS File SD File Wire Wire GSM GSMClient SoftwareSerial SoftwareSerial 此程序使用Serial对象来演示Stream类中的readByte()函数使用方法 readByte()函数在读取到指定字节数的信息或者达到设定时间后都会停止执行。 ----------------------------------------------------------------------- 修订历史/Revision History 日期/Date 作者/Author 参考号/Ref 修订说明/Revision Description ----------------------------------------------------------------------- 本示例程序为太极创客团队制作的《零基础入门学用物联网》中示例程序。 该教程为对物联网开发感兴趣的朋友所设计和制作。如需了解更多该教程的信息,请参考以下网页: http://www.taichi-maker.com/homepage/esp8266-nodemcu-iot/ ***********************************************************************/ const int bufferLength = 10; // 定义缓存大小为10个字节 char serialBuffer[bufferLength];// 建立字符数组用于缓存 void setup() { // 启动串口通讯 Serial.begin(9600); Serial.println(); } void loop() { if (Serial.available()){ // 当串口接收到信息后 Serial.println("Received Serial Data:"); Serial.readBytes(serialBuffer, bufferLength);// 将接收到的信息使用readBytes读取 for(int i=0; i<bufferLength; i++){ // 然后通过串口监视器输出readBytes Serial.print(serialBuffer[i]); // 函数所读取的信息 } Serial.println(""); Serial.println("Finished Printing Recevied Data."); } } |