シリアルモニタの文字化けを解決
M5Core2の開発をVScode+PlatformIOで行っている者です。
開発の中でシリアル通信をすると、シリアルモニタ上の文字が文字化けするトラブルが生じました。
その解決法を共有します。
文字化けを解決するためにいじるファイルは、
- src/main.cpp
- platformio.ini
の2つです。
文字化けを解決の方法は、
- 両方(main.cpp,platformio.ini)で設定する通信速度を一致させる
- 通信速度を 300/ 1200/ 2400/ 4800/ 9600/ 14400/ 19200/ 28800/ 38400/ 57600/ 115200 で試してみる
です。
1.src/main.cpp
main.cpp
void setup() {
Serial.begin(19200); // シリアルポートを開き,通信速度を19200bpsに設定
}
void loop() {}
リファレンス にあるように、
Serial.begin()は、シリアル通信のデータレートをビット/秒(bps)で設定するものです。
void setup()内に書きましょう。
上記のコードでは、通信速度を19200bpsに設定しています。
2.platformio.ini
そもそも platformio.iniとは?
PlatformIOのプロジェクトが必ず持っている設定ファイルです。
monitor_speedを設定しよう
platformio.ini
[env:m5stack-core2]
platform = espressif32
board = m5stack-core2
framework = arduino
monitor_speed = 19200
lib_deps =
m5stack/M5Core2@0.1.2
monitor_speedを設定しましょう。
重要なのは、先のmain.cppで設定したのと同じ値にすることです。(本記事は通信速度を19200bps)
この手順を300/ 1200/ 2400/ 4800/ 9600/ 14400/ 19200/ 28800/ 38400/ 57600/ 115200で試していくと、
いずれかの値で文字化けが解決します。たぶん...
もっと正しい解決法がある!というときは教えてほしいです。
追記)
platformio.iniファイルの
platform,board,frameworkはプロジェクトを立ち上げた時点で入力されていて、
lib_depsはライブラリを Add to project したときに入力されます。