1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M5Core2×VSCode×PlatformIO シリアル通信で文字化けが起こったら

Last updated at Posted at 2022-08-18

シリアルモニタの文字化けを解決する方法

M5Core2の開発をVS CodeとPlatformIOで進めていると、シリアル通信でのデバッグ中に文字化けが発生することがよくあります。本記事では、その原因と解決方法を詳しく解説します。

文字化けが引き起こす問題

シリアル通信の文字化けが発生すると、エラーやログが判読不能になるため、作業効率が低下してしまいます。

文字化けの原因

  1. 通信速度の不一致
    送信側と受信側の通信速度が異なると、データが正しく解釈されず文字化けが発生します。

  2. ケーブルとの接続の問題
    低品質なUSBケーブルや接続ポートの不具合が原因になることがあります。

  3. COMポートの設定ミス(Windowsの場合)
    COMポートの設定が正しくない場合に問題が発生します。

解決方法

文字化けを解消するには、以下のファイルを設定します:

  • src/main.cpp
  • platformio.ini

さらに、ケーブルの接続、COMポートの設定の確認も行います。


STEP1: 通信速度を一致させる

  • src/main.cppplatformio.ini で通信速度を一致させます。
  • 以下の通信速度のいずれかを試します:
    300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200

src/main.cpp の設定

以下のコードを記述し、通信速度を設定します:

void setup() {
    Serial.begin(19200); // 通信速度を19200bpsに設定
}

void loop() {
    // デバッグ用コードを書く
}
  • Serial.begin() を使って通信速度を設定します。
  • setup() 内で通信速度を指定してください。

参考: Arduinoリファレンス

platformio.ini の設定

platformio.ini はPlatformIOプロジェクトの設定ファイルです。以下のように設定します:

[env:m5stack-core2]
platform = espressif32
board = m5stack-core2
framework = arduino
monitor_speed = 19200
lib_deps =
    m5stack/M5Core2@0.1.2
  • monitor_speed: シリアルモニタの通信速度を設定します。
    src/main.cpp と同じ値に設定してください。

STEP2: ケーブルとの接続の確認

  • 接続ポートが正しく差し込まれているか確認します。
  • ケーブル自体の不具合の可能性もあるので、他のケーブルでも試すことをオススメします。

STEP3: COMポートの確認(Windows)

  • デバイスマネージャを開き、使用中のCOMポートを確認します。

まとめ

シリアル通信の文字化けは、通信速度の不一致やケーブルの問題、COMポート設定のミスなどが主な原因です。問題を一つずつ確認し、適切な設定を行うことで解決できます。


参考資料

補足事項

  • platformio.iniplatformboardframework はプロジェクト作成時に自動で設定されます。
  • 必要なライブラリを追加すると、lib_deps に自動反映されます。
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?