最終更新日 2021年3月9日
自分はArduino純正デバイスは一つしか持っていません。殆どが互換機です。それが認められていることがArduinoを愛好する一因でもあります。そしてchipもAVRは殆ど使っていません。BluePill/STM32miniをArduinoIDE環境下で使う事が多いです。
そんなわけで接続するモジュール用のライブラリをいちいち調査することになります。ライブラリを自ら作るのは最終手段です。なぜライブラリを選ばなければいけないのか?そればライブラリが特定のシールドに特化していたり、AVRにしか対応していなかったりするからです。
単体接続でExampleスケッチをビルドする事さえ出来ないライブラリは論外ですが、単体でビルド出来ても、他のデバイス用のライブラリと組み合わせるとコンパイルエラーになります。
今回MCP4725のライブラリを調査して思ったことがあります。I2CのPinAsign等でSTM32F103もきちんと考慮されているのかどうか、先頭コメントで確認出来たところがあります。This chip uses I2C bus to communicate, specials pins are required to interface Board: SDA SCL Level Uno, Mini, Pro, ATmega168, ATmega328..... A4 A5 5v Mega2560................................. 20 21 5v Due, SAM3X8E............................. 20 21 3.3v Leonardo, Micro, ATmega32U4.............. 2 3 5v Digistump, Trinket, ATtiny85............. 0/physical pin no.5 2/physical pin no.7 5v Blue Pill, STM32F103xxxx boards.......... PB7 PB6 3.3v/5v ESP8266 ESP-01........................... GPIO0/D5 GPIO2/D3 3.3v/5v NodeMCU 1.0, WeMos D1 Mini............... GPIO4/D2 GPIO5/D1 3.3v/5v ESP32.................................... GPIO21/D21 GPIO22/D22 3.3vちゃんと考慮されていないライブラリが混じるとコンパイルエラーが発生する原因かなと思われます。この辺りは機種依存です。
また、他にも機種依存の部分があります。タイマ割込や信号割込まだまだあると思います。いずれにしてもいろいろなモジュールを一緒に扱うときはライブラリの選択は重要です。Adafruitのライブラリに統一しておけばいいかというのは間違いですね。AdafruitのライブラリはI2Cのアドレスが固定だったり、Arduino for STM32を考慮していないライブラリが少なからず存在することを確認しています。
免責事項
本ソフトウエアは、あなたに対して何も保証しません。本ソフトウエアの関係者(他の利用者も含む)は、あなたに対して一切責任を負いません。
あなたが、本ソフトウエアを利用(コンパイル後の再利用など全てを含む)する場合は、自己責任で行う必要があります。本ソフトウエアの著作権はToolsBoxに帰属します。
本ソフトウエアをご利用の結果生じた損害について、ToolsBoxは一切責任を負いません。
ToolsBoxはコンテンツとして提供する全ての文章、画像等について、内容の合法性・正確性・安全性等、において最善の注意をし、作成していますが、保証するものではありません。
ToolsBoxはリンクをしている外部サイトについては、何ら保証しません。
ToolsBoxは事前の予告無く、本ソフトウエアの開発・提供を中止する可能性があります。
商標・登録商標
Microsoft、Windows、WindowsNTは米国Microsoft Corporationの米国およびその他の国における登録商標です。
Windows Vista、Windows XPは、米国Microsoft Corporation.の商品名称です。
LabVIEW、National Instruments、NI、ni.comはNational Instrumentsの登録商標です。
I2Cは、NXP Semiconductors社の登録商標です。
その他の企業名ならびに製品名は、それぞれの会社の商標もしくは登録商標です。
すべての商標および登録商標は、それぞれの所有者に帰属します。