ESP32でSC16IS750用のライブラリ使用でエラーが出る

実現したいこと

現在、ESP32をplatformioでプログラミングしています。
ESP32にはSC16IS750というI2C通信をUART通信に変換してくれるICを繋げています。
この動作テスト行うため、SC16IS750用のライブラリを追加して簡単な初期化コードを入れてビルドしてみたのですが、エラーが発生します。

発生している問題・分からないこと

SC16IS750用のライブラリを追加して簡単な初期化コードを入れてビルドしてみたのですが、エラーが発生します。
ビルド内容を見てみると、ビルド時に表示される依存関係のグラフには、なぜか"
SC16IS750"ライブラリが無視されているような表示がされます。

エラーメッセージ

error

1実行するタスク: C:\Users\kmaeh\.platformio\penv\Scripts\platformio.exe run 2 3Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino) 4---------------------------------------------------------------------------------------- 5Verbose mode can be enabled via `-v, --verbose` option 6CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html 7PLATFORM: Espressif 32 (6.5.0) > Espressif ESP32 Dev Module 8HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash 9DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) 10PACKAGES: 11 - framework-arduinoespressif32 @ 3.20014.231204 (2.0.14) 12 - tool-esptoolpy @ 1.40501.0 (4.5.1) 13 - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5 14LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf 15LDF Modes: Finder ~ chain, Compatibility ~ soft 16Found 38 compatible libraries 17Scanning dependencies... 18Dependency Graph 19|-- lvgl @ 8.3.9 20|-- TFT_eSPI @ 2.5.43 21|-- NTPClient @ 3.2.1 22|-- Adafruit MCP23017 Arduino Library @ 2.3.2+sha.9e67e37 23|-- Wire @ 2.0.0 24|-- WiFi @ 2.0.0 25Building in release mode 26Compiling .pio\build\esp32dev\src\EXT_board.cpp.o 27Compiling .pio\build\esp32dev\lib9ca\lvgl\draw\nxp\pxp\lv_gpu_nxp_pxp_osa.c.o 28Compiling .pio\build\esp32dev\lib9ca\lvgl\draw\nxp\vglite\lv_draw_vglite.c.o 29 30 31//---------------------------------(中略)------------------------------------------------------ 32 33 34 SC16IS750::writeRegister(SC16IS750::RegisterName, char)' 35 virtual void writeRegister (RegisterName register_address, char data ) =0; 36 ^~~~~~~~~~~~~ 37D:\mywork\lvgl_JPFont\.pio\libdeps\esp32dev\SC16IS750\SC16IS750.h:625:16: note: 'virtual char SC16IS750::readRegister(SC16IS750::RegisterName)' 38 virtual char readRegister (RegisterName register_address ) =0; 39 ^~~~~~~~~~~~ 40D:\mywork\lvgl_JPFont\.pio\libdeps\esp32dev\SC16IS750\SC16IS750.h:634:16: note: 'virtual void SC16IS750::writeDataBlock(const char*, int)' 41 virtual void writeDataBlock (const char *data, int len ) =0; 42 ^~~~~~~~~~~~~~ 43src/EXT_board.cpp:10:11: error: cannot declare variable 'device' to be of abstract type 'SC16IS750' 44 SC16IS750 device = SC16IS750(SC16IS750_ADDRESS, SDA_PIN, SCL_PIN); 45 ^~~~~~ 46src/EXT_board.cpp: In function 'void EXT_board_setup()': 47src/EXT_board.cpp:25:15: error: 'class SC16IS750' has no member named 'begin' 48Compiling .pio\build\esp32dev\lib9ca\lvgl\draw\sdl\lv_draw_sdl_bg.c.o 49 if (!device.begin(9600)) { 50 ^~~~~ 51src/EXT_board.cpp:34:5: error: 'sendHelloWorldTask' was not declared in this scope 52 sendHelloWorldTask, // タスク関数 53 ^~~~~~~~~~~~~~~~~~ 54Compiling .pio\build\esp32dev\lib9ca\lvgl\draw\sdl\lv_draw_sdl_composite.c.o 55Compiling .pio\build\esp32dev\lib9ca\lvgl\draw\sdl\lv_draw_sdl_img.c.o 56*** [.pio\build\esp32dev\src\EXT_board.cpp.o] Error 1 57============================== [FAILED] Took 6.49 seconds ==============================

githubのブランチはこちら

該当のソースコード

cpp

1#include <Arduino.h>2#include <Wire.h>3#include <SC16IS750.h> // SC16IS750ライブラリをインクルード4//#include <UnoWiFiDevEd.h>5 6#define SC16IS750_ADDRESS 0x48 // デバイスのI2Cアドレス7#define SCL_PIN 228#define SDA_PIN 219 10SC16IS750 device = SC16IS750(SC16IS750_ADDRESS, SDA_PIN, SCL_PIN);11 12// "hello world"を送信するタスク13void EXT_boardTask(void *parameter) {14 for (;;) { // 無限ループ15 device.println("hello world");16 vTaskDelay(1000 / portTICK_PERIOD_MS); // 1秒待機17 }18}19 20void EXT_board_setup() {21 Serial.begin(9600);22 23 Wire.begin(SDA_PIN, SCL_PIN);24 25 if (!device.begin(9600)) {26 Serial.println("SC16IS750 not found. Please check wiring.");27 //while (1);28 }29 30 Serial.println("SC16IS750 initialized successfully.");31 32 // 新しいタスクを作成33 xTaskCreate(34 EXT_boardTask, // タスク関数35 "EXT_boardTask", // タスク名36 10000, // スタックサイズ37 NULL, // タスク入力パラメータ38 1, // タスクの優先度39 NULL // タスクハンドル40 );41}42 43

特になし

試したこと・調べたこと

上記の詳細・結果

ライブラリフォルダが配置される
.pio\libdeps\esp32dev\

このパスにSC16IS750ライブラリフォルダを配置しても、ビルド時は無視させるようで、ヘッダファイルをプルパスに変更してみました。
すると、ファイルを読み込むようになったようなのですが、依存関係のグラフには”SC16IS750”が無視される現象に変化がありません。

#include <D:\mywork\lvgl_JPFont\.pio\libdeps\esp32dev\SC16IS750\SC16IS750.h> // SC16IS750ライブラリをインクルード

補足

なし

コメントを投稿

0 コメント