Serial.find()

Last revision:2025/06/13

名称

Serial.find()

説明

Serial.find()は与えらえた長さの、目的となる文字列がシリアルバッファで見つかるまで、データを読み込む。目的となる文字列が見つかるとtrueを返し、タイムアウトが発生するとfalseを返す。

Serial.find()は、Streamユーティリティクラスを継承している。

書式

入力されるシリアルデータ内で文字列を検索するには、以下の関数を使う。

  • Serial.find(target)
  • Serial.find(target, length)

C言語シグネチャ(avr)

bool HardwareSerial::find(char *target);

bool HardwareSerial::find(char *target, size_t length);

引数

この関数は以下のオブジェクトと引数を受け付ける。

Serialシリアルポートオブジェクト。各ボードで利用可能なシリアルポートの一覧は、Serialを参照すること。
target目的となる文字列。
length目的となる文字列の長さ。

戻り値

指定した文字列が見つかるとtrue、タイムアウトするとfalseを返す。データ型: bool

コード例

以下のコードは、OKという文字列が見つかるまで待つ。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
void setup() {
  Serial.begin(9600);
  while (!Serial); // Wait for Serial (needed on some boards)

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

void loop() {
  if (Serial.available()) {
    // Look for the word "OK" in the incoming serial data
    if (Serial.find("OK")) {
      Serial.println("Received OK!");
    } else {
      Serial.println("Didn't find OK, try again.");
    }
  }

  delay(1000);
}

参照

オリジナルのページ

https://docs.arduino.cc/language-reference/en/functions/communication/serial/find/

実装の解析

まだ解析していません。

最終更新日

July 18, 2026

inserted by FC2 system