说明
readStringUntil函数可用于从设备接收到的数据中读取信息。读取到的数据信息将以字符串形式返回。该函数在满足以下任一条件后都会停止函数执行并返回。
– 读取到指定终止字符
– 达到设定时间(可使用setTimeout来设置)
当函数读取到终止字符后,会立即停止函数执行。此时函数所返回的字符串为”终止字符”前的所有字符信息。
本函数属于Stream类。该函数可被Stream类的子类所使用,如(Serial, WiFiClient, File 等)。
语法
Stream.readStringUntil(terminator)
注:此处stream为概念对象名称。在实际使用过程中,需要根据实际使用的stream子类对象名称进行替换。如:
Serial.readStringUntil(terminator)
wifiClient.readStringUntil(terminator)
参数
terminator: 终止字符。用于设置终止函数执行的字符信息。设备在读取数据时一旦读取到此终止字符,将会结束函数执行。允许使用char类型。
返回值
接收到的数据,类型为字符串
示例程序
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 |
/********************************************************************** 项目名称/Project : 零基础入门学用物联网 程序名称/Program name : stream_readStringUntil 团队/Team : 太极创客团队 / Taichi-Maker (www.taichi-maker.com) 作者/Author : CYNO朔 日期/Date(YYYYMMDD) : 20200317 程序目的/Purpose : 此程序使用Serial来演示Stream类中的readString()函数的使用方法。 readStringUntil() 函数可用于从设备接收到数据中读取信息。读取到的数据信息将以字符串形式返回中。 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/ ***********************************************************************/ char terminatorChar = 'T'; // 定义终止字符为‘T’ void setup() { // 启动串口通讯 Serial.begin(9600); Serial.println(); } void loop() { if (Serial.available()){ // 当串口接收到信息后 Serial.println("Serial Data Available..."); // 通过串口监视器通知用户 String serialData = Serial.readStringUntil(terminatorChar); // 将接收到的信息使用readString()存储于serialData变量 Serial.print("Received Serial Data: "); // 然后通过串口监视器输出serialData变量内容 Serial.println(serialData); // 以便查看serialData变量的信息 } } |