前回はシリアル通信でESP32-S3からデータを受信してみました。
今回はESP32-S3でデータを受け取る処理を動かしてみましょう。
早速コードを書き込んで動作を試してみましょう。
目次
コード
/**********************************************************************
Filename : SerialRW
Description : Use UART read and write data between ESP32 and PC.
Auther : www.freenove.com
Modification: 2022/10/20
**********************************************************************/
String inputString = ""; //a String to hold incoming data
bool stringComplete = false; // whether the string is complete
void setup() {
Serial.begin(115200);
Serial.println(String("\nESP32S3 initialization completed!\r\n")
+ String("Please input some characters,\r\n")
+ String("select \"Newline\" below and Ctrl + Enter to send message to ESP32S3. \r\n"));
}
void loop() {
if (Serial.available()) { // judge whether data has been received
char inChar = Serial.read(); // read one character
inputString += inChar;
if (inChar == '\n') {
stringComplete = true;
}
}
if (stringComplete) {
Serial.printf("inputString: %s \r\n", inputString);
inputString = "";
stringComplete = false;
}
}
コード解説
18行目でシリアル通信のデータが届いているかどうか確認しています。届いていたらSerial.read()で読み取り、inChar変数に格納します。
一文字ずつ読み取るため、何回か繰り返す必要があります。
21行目で受信した文字が『\n』だったら、という条件になっていますが、『\n』は改行を意味しています。つまりエンターキーを押したということですね。改行コードが来たら一行分の受信が完了下ということで、コンプリートフラグを立てています。
25行目でコンプリートフラグが立っていたら受信した文字列をシリアル通信で出力して、フラグをfalseに戻します。条件分岐でフラグを判定するのはよくあることですので、使い方をマスターしておきましょう。いわゆる『死亡フラグ』もゲームのプログラム内のフラグの一つです!
送信エリア(赤枠のところ)に文字を入力してエンターキーを押してみましょう!
次回はADコンバーターを使用してアナログ値の読み取りをしてみましょう。
Project 9.1 ADコンバーター/Read the Voltage of Potentiometer
前回はシリアル通信を使用して、ESP32-S3でデータを受け取る処理を動かしてみました。 https://kaneshige.org/?p=321 今回はESP32-S3のADC機能を使って、ポテンショメー...
コメント