Translate
そのエディタとしてArudino IDEっていうエディタを使うのですが、古いころから使っていたので、verson1.8のままでした。新しくノートPCに環境を作った際に、Arduno IDEがverson2.0系になったのですが、その際に昔と同じようにM5stack Core2にコンパイルしようとしたらエラーを吐いて一度詰んでしまったので、何とか解決したプロセスを備忘録に残しておきます。
ひとまずM5stack Core2 エラーを吐いたときのログがこんな感じでした。
In file included from c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/M5Display.h:10,
from c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/M5Core2.h:12,
from C:\Users\ktr\Downloads\M5Unit-WeightI2C-main\M5Unit-WeightI2C-main\example\GettingWeight\GettingWeight.ino:16:
c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/M5Display.h: In member function 'void M5Display::startWrite()':
c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/utility/In_eSPI.h:231:5: error: 'GPIO' was not declared in this scope
231 | GPIO.out_w1tc = (1 << TFT_CS); \
| ^~~~
c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/M5Display.h:54:9: note: in expansion of macro 'CS_L'
54 | CS_L;
| ^~~~
c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/M5Display.h: In member function 'void M5Display::endWrite()':
c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/utility/In_eSPI.h:233:14: error: 'GPIO' was not declared in this scope
233 | #define CS_H GPIO.out_w1ts = (1 << TFT_CS) //;GPIO.out_w1ts = (1 << TFT_CS)
| ^~~~
c:\Users\ktr\Documents\Arduino\libraries\M5Core2\src/M5Display.h:66:9: note: in expansion of macro 'CS_H'
66 | CS_H;
| ^~~~
「SD.h」に対して複数のライブラリが見つかりました
使用済:C:\Users\ktr\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.7\libraries\SD
未使用:C:\Users\ktr\AppData\Local\Arduino15\libraries\SD
exit status 1
Compilation error: exit status 1
ディレクトリの場所は私の開発環境そのままです。たいていの場合この「「SD.h」に対して複数のライブラリが見つかりました」というエラーがでた場合には、SD.hの部分ではなく、それよりもっと根本的な部分でエラーを起こしている可能性が経験上ありました。
そこでいろいろと調べていくとどうもボードマネージャーの部分が怪しいということが同じエラーを出している人でも出ていました。その記事では、ボードマネージャーのアドレスに
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json を追加するして、そこからM5stack Core2のボードをインストールすることで解決しました。
私の場合には、Arudino IDEのインストール自体がうまくいっていない状態も重なっていたので、一度Arduino IDE自体をアンインストールして再度入れ直しする処理もやっているので、どちらの処理がクリティカルだったかについてはちょっと明確ではありません(´;ω;`)。