みなさんこんにちわ、こんばんわ。
SAIです。
コードを作成して動作が変な時に、デバックしたいですよね?
Arduinoでもそうですが、簡単なデバックの手段としてログ出力があります。
そう、UARTでのSystemLogです。
①PCとESP32でシリアル通信(主に出力)
https://docs.arduino.cc/learn/communication/uart/
Arduino環境では、USBのシリアル通信に関しては、
「Serial」クラスで行えますが、Arduino環境で単純な Serial は予約語になっていますね。
これはESP32でも同様に使えるようです。
使い方は、
(1)Seriarl.bigin()で、通信速度を設定
(2)Serial.print()で、PCのシリアルモニタに文字出力
(3)Serial.println()で、PCのシリアルモニタに文字出力後に改行
(4)Serial.available()では、PCからESP32へ送信があったかを確認する
戻りがTrueなら受信ありですね。
(5)(4)を確認して受信があった場合に、Serial.read()を呼び出すことで、PCからのデータを受信
(4)と(5)はセットで使用するイメージですね。
とりあえず、
デバックで使用するのは「Serial.println()」が多いでしょうね。
②シリアルログを埋め込む
使い方は簡単
setup()関数では、「Seriarl.bigin(115200)」でボーレート115200で設定
出力したいところで、「Serial.println("aaa")」で出力したい文字を出力
ですね。
それでは、前回のLEDチカチカのコードにログを埋めてみましょう。
※記事の最後にコードを記載しておきますので、コピペする方はそこからコピペしてね。
③シリアルモニタに出力する
それでは、書き込んでシリアルモニタに出力しよう。
シリアルモニタを表示するには、
ツール → シリアルモニタ を選びます
ArduinoIDE1.8の時は別画面に表示されていたのですが、
ArduinoIDE2.3では、画面の下部に表示されるようになってますね。
そして、シリアルモニタのボーレートを設定した数値と合わせましょう。
ちなみに、
USBを使ってシリアル通信をしていますので、
書き込みしたCOMポートと合わせておく必要があります。
ご注意ください。
上の絵のように、LEDのチカチカと合わせてシリアルログが出力されました。
余談ですが、シリアルログを出力するためには通信するための時間を使います。
なので、
1HzのLEDチカチカの中にこんな処理を埋め込むと、1Hzの点灯/消灯の時間が遅れますね。
その点は注意しましょう。
それでは、シリアルログ出力はここまで。
(入力はまたいつか)
Topへ戻る↓
https://ameblo.jp/saiduke/entry-12881307216.html
今回使用したコード
------------------------------------------
const int CGPIO_LED_PIN = 2;
// 起動時初期設定 //
void setup() {
//GPIOの初期設定
pinMode(CGPIO_LED_PIN, OUTPUT);
Serial.begin(115200);
Serial.println("Start ESP32 ");
}
// ぐるぐるループ //
void loop() {
//LED点灯 //
digitalWrite(CGPIO_LED_PIN, HIGH);
Serial.println("LED ON");
delay(500);
digitalWrite(CGPIO_LED_PIN, LOW);
Serial.println("LED OFF");
delay(500);
}


