Arduino プログラミングの Serial.readBytesUntil() 関数

Arduino Puroguraminguno Serial Readbytesuntil Guan Shu



Arduino でのプログラミングに関して言えば、入出力を操作するために使用できる多くの関数があります。 Arduinoの主な機能の1つは Serial.readBytesUntil() これにより、特定の文字が見つかるまでストリームからデータを読み取ることができます。この関数は、必要なデータが見つかるまで、シリアル デバイスからデータを読み取るのに役立ちます。

この記事では、Serial.readBytesUntil() 関数を詳細にコンパイルします。それが何であるか、どのように機能するかについて説明し、Arduino コードでの使用方法を説明する Arduino コードについて説明します。

Serial.readBytesUntil()

Serial.readBytesUntil() 関数は Arduino Serial クラスの一部です。この関数は、特定の文字または最大バイト数が見つかるまで、ストリームからデータを読み取ります。文字または最大バイト数が見つかると、関数は読み取りを停止し、読み取ったデータを返します。







Serial.readBytesUntil() 関数は、次の条件が満たされるたびに終了します。



  • 関数がターミネータ文字を検出したとき
  • 定義されたバッファ長に達した
  • 設定時間が過ぎた、またはタイムアウトになった

この関数はターミネータ文字を返さず、ターミネータの前の最後の文字までのデータのみを返します。この関数によって 0 が返された場合、有効なデータが見つからないことを意味します。



構文

Serial.readBytesUntil() 関数の構文は次のとおりです。





シリアル。 readBytesUntil ( チャー ターミネーター、 チャー * バッファ、 size_t 長さ ) ;

パラメーター

関数 Serial.readBytesUntil() のパラメータは次のとおりです。

  • ターミネーターのキャラクター: 関数が読み取りを停止する文字。
  • バッファ: バッファでは、シリアル データの読み取りは次のとおりです。許容されるデータ型は、char または byte の配列です。
  • 長さ: 読み取る最大バイト数。許可されるデータ型は 整数 .

戻る

バッファに配置されたバイト数。



ノート: 戻りデータでは、ターミネータ文字は関数 Serial.readBytesUntil() によってデータ ストリームから破棄されます。

Arduinoコードの例

次のArduinoコードは、の使用を説明しています Serial.readBytesUntil() 関数:

空所 設定 ( ) {
シリアル。 始める ( 9600 ) ; // ボーレート 9600 でシリアル接続を初期化します
}

空所 ループ ( ) {
バイトバッファ [ 5 ] ; // 受信データを格納するバイト配列を定義します
整数 バイト数 = シリアル。 readBytesUntil ( ' \n ' 、バッファ、 5 ) ; // 改行文字が検出されるまで、シリアル接続から着信データを読み取ります

もしも ( バイト数 > 0 ) { // バイトが読み取られたかどうかを確認します
シリアル。 印刷する ( 「受け取ったキャラクター:」 ) ;
シリアル。 書く ( バッファ、バイト数 ) ; // 受信データをシリアルモニターに出力
シリアル。 println ( ) ;
}
}

setup() 関数では、ボーレートによってシリアル通信が確立されます。

loop() 関数では、最初にバイト配列を定義します。 'バッファ' .この配列は、シリアル接続から読み取られた着信データを格納するために使用されます。

次に、 Serial.readBytesUntil() 関数は、改行文字 ('\n') に遭遇するまで、シリアル接続から着信データを読み取ります。次の引数は、一度に最大 5 バイトのデータを取るバッファの長さです。

返されたバイトは、 「バイト数」 変数。受信したデータがバッファ長よりも大きい場合、データは終了し、次のデータ ストリームで送信されます。

出力

結論

Serial.readBytesUntil() Arduino プログラミングの関数は、指定されたターミネータ文字が受信されるまで、シリアル入力ストリームからバイトを読み取ります。この関数は、読み取られた合計バイト数を取得し、提供されたバッファに格納します。 Serial.readBytesUntil() 関数に関連する詳細については、記事を参照してください。