とあるマイコンボードと PC 間の UART 通信がヘンだったので、通信ソフトの問題かな? 改行コードの変換がうまくいってないようだったのでESP32で受信した文字コードを表示するプログラムでデバッグ。
環境
- Arduino 1.8.10 for Linux
- esp32 by Espressif System Version 1.0.3
- WEMOS LOLIN32
スケッチ
//HardwareSerial Serial1(2);
void setup() {
Serial.begin(115200);
Serial2.begin(115200);
}
void loop() {
if (Serial2.available()) {
int inByte = Serial2.read();
Serial.println(inByte);
Serial2.println(inByte);
}
delay(1);
}
配線
- ESP32 の 17が Serial2 の TX
- ESP32 の 16が Serial2 の RX
写真は、PC につなげた USB シリアルモジュールからの改行コードを調べるようにしている。
結果
おっと、キーボードから入力した改行を、CRLFにして送信したかったのだが、CRだけになってますね。キーボードのエンターが LF と思い違いしていました。それが原因か・・・。
picocom の --omap オプションを crcrlf に変更して、無事トラブルは解消しました。