問題
ESP32-C3・ESP32-S3系(M5Stamp S3やそれが内蔵されたM5Stack Dialなどを含む)で、Serial
を使って文字出力などを行っても、受信側に何も届かない。
解決方法
platformio.ini
で、以下の行を追記する。
build_flags = -DARDUINO_USB_CDC_ON_BOOT=1
記載例:
[env:m5stack-stamps3]
platform = espressif32
board = m5stack-stamps3
framework = arduino
monitor_speed = 115200
upload_speed = 1500000
build_flags = -DCORE_DEBUG_LEVEL=3 -DARDUINO_USB_CDC_ON_BOOT=1
詳細
ESP32-C3・ESP32-S3系は、UART経由でのプログラム書き込みに加え、USB-Serial変換無しにUSB経由(CDC)で、JTAGを用いてプログラム書き込みを行うこともできます。
デフォルトでは、Serial出力はUART経由になりますが、Serialの受信側がCDCで接続されていると、Serialで出力した内容は受信できません。
そこで、前述の設定を追記し、Serialの出力先をCDCにする必要があります。
ちなみに、ESP32-S3-DevKitC-1
などはUART接続のUSB端子とCDC接続のUSB端子があり、UART側で接続すると無印のESP32と同様に取り扱うことができます。
参考文献