Warning: count(): Parameter must be an array or an object that implements Countable in /home/green-rabbit/rabbit-note.com/public_html/wp-content/plugins/wordpress-ping-optimizer/cbnet-ping-optimizer.php on line 533

VSCode の PlatformIO で ESP32 の CAN を使う方法

PlatformIO で ESP32 の CAN を使う方法を紹介します.

はじめに

理由はよくわかっていませんが,現時点において PlatformIO の環境では ESP32 の CAN がサポートされていません.フレームワークとして ESP-IDF を選択して CAN のサンプルを実行しようとしても「fatal error: driver/can.h: No such file or directory」となってしまいます.

対応

これは,CAN 関連のドライバーがインストールされていないのが原因です.ESP-IDF からファイルを取得すると動くようになります.

具体的には,PowerShell で次のコマンドを実行します.ユーザ名等は環境変数から取得するようにしていますので,Windows10 の PowerShell にそのままコピペすれば OK です.

注意点

現時点で, driver/can.h は,include 周りのバグがあるので, #include "driver/can.h" をソースの先頭に書くと「error: unknown type name ‘TickType_t’」というエラーが表示されてしまいます.

この場合, #include "freertos/FreeRTOS.h" の後に #include "driver/can.h" を書くようにすることで解消できます.