Serial.find()

Описание

Serial.find() читает данные из буфера последовательного порта до тех пор, пока не будет найдена заданная строка.

Serial.find() наследуется от служебного класса Stream.

Синтаксис

Используйте одну из следующих функций для поиска строки во входящих данных последовательного порта:

  • Serial.find(target)

  • Serial.find(target, length)

Параметры

Функция принимает следующие объекты и параметры:

  • Serial: объект последовательного порта. Список доступных последовательных портов для каждой платы см. на главной странице Serial.

  • target: строка, которую нужно найти. Допустимые типы данных: char.

  • length: длина искомой строки. Допустимые типы данных: size_t.

Возвращаемое значение

Функция возвращает true, если искомая строка найдена, и false при истечении тайм-аута. Тип данных: bool.

Пример кода

Следующий код ожидает появления искомой строки OK:

void setup() {
  Serial.begin(9600);
  while (!Serial); // подождать Serial (нужно на некоторых платах)

  Serial.println("Type 'OK' to continue:");
}

void loop() {
  if (Serial.available()) {
    // ищем слово "OK" во входящих данных последовательного порта
    if (Serial.find("OK")) {
      Serial.println("Received OK!");
    } else {
      Serial.println("Didn't find OK, try again.");
    }
  }

  delay(1000);
}