このサイトで使用している部品のソースコードに対して共通して使用できるライブラリをダウンロードすることが出来ます。このライブラリの具体的な使用法はこちらのページを見てください。
昔このライブラリを作成した頃はどんなマイコンが来ても使用できるように仮想ベースクラスとそれを継承した実クラスという下の図のような継承関係を作成していました。そのうえで紹介している各部品の操作はベースクラスを使用するとどんなマイコンでも共通の作法で操作することができるようになります。
このように構成することでマイコンの区別なく各部品を使用することはできるためメリットはとても大きいです。しかし実際には各マイコン(Arduino, STM)などに対応するライブラリを動作確認しつつ動かすのは個人でできる範囲を超えており、結局上記の構想を中途半端に引き続いたままで('20.11)時点ではSTM32F103マイコンにのみ対応するという状況になっています。
STM32用のライブラリは'19/5月時点でHALドライバを用いたものからLLドライバへ用いたものへ変更中です。F103xB向け以外は正常に動作しないと思います。またLL使用時は"USE_FULL_LL_DRIVER"をマクロ登録する必要があります。
上記の通りSTM32F103基板にのみ対応しています。以下の3種のファイルは継承関係にありますので互いに参照できるように配置してください。具体的にはインクルードパス、ソースパスを設定する必要があります。
またUSBについてはSTマイクロさんのHALドライバを一部内蔵しており、かつCDCとHIDが両立しないことから分けています。
クラス名 | ダウンロード | |
共通基本クラス | DKSlib_***_Base | DKSlib_Base.zip |
STM32基本クラス | DKSlib_***_STM32 | DKSlib_STM32HAL.zip |
F103用実装クラス | DKSlib_***_F103xB | DKSlib_F103xB.zip |
F103用HID USB | DKSlib_USBHID_F103xB | DKSlib_USBHID_F103xB |
F103用CDC USB | DKSlib_USBCDC_F103xB | DKSlib_USBCDC_F103xB |
一応記念までにかつて作成した各マイコン対応のクラスも以下に置いておきます。多分もうほとんど動かないです。。。
一般的なクラス名 | ダウンロード | |||
共通基本クラス | DKSlib_***Base | |||
Arduino用 | DKS_***Arduino | DKSlib_Arduino.zip | ||
STM32用共通 | DKS_***_STM32 | |||
F3Disco用 |
DKS_***_F303xC |
|
||
NucleoF401用 |
DKS_***_F401xE |
|
||
F103C8T6用 |
DKS_***_F103xB |
DKSlib_F103xB.zip |
日付 |
内容 |
対象 |
'14.9.7 |
SPI追加 |
全て |
I2C2バグ修正他 |
F3Disco | |
'14.12.6 |
NucleoF401版新規作成 これによりF3Disco, Arduinoは共通ファイルと個別ファイルの2種類に分離。中身は変更なし。 |
全て |
'15.1.17 |
HALドライバを使用したF3Discovery版新規作成。 NucleoF401版と共通する部分をSTM32HALとして共通化 |
F3Disco NucleoF401 |
'15.4.28 |
ADCクラス追加 Arduino版はGPIOにバグがあったため修正 |
全て |
'15.5.20 |
InterruptInクラス追加 |
全て |
'15.5.31 |
PwmOutクラス追加 |
全て |
F3Discoのstd. peripheral ライブラリ版削除 |
F3Disco |
|
'15.6.17 |
STM32HAL |
|
'15.6.21 |
PwmOutクラス バグフィックス |
STM32 |
'15.7.1 |
I2C, SPI, Utilityクラス バグフィックス |
STM32 |
'15.8.30 |
ダウンロード先をYahooボックスに変更 Timerクラス大幅変更 |
全て |
'15.9.23 |
RTCクラス追加 DigitalIn, InterruptInクラス バグフィックス |
全て |
'15.10.10 |
USB HIDクラス修正。いくつか関数追加。 |
STM32 |
'15.10.24 |
STM32 F3,F4用ライブラリ名称変更 Arduino用ライブラリフォルダ構造変更 GPIO系クラス変更。ベースクラスの共通化 |
全て |
'15.11.25 |
GPIOクラス バグ修正 (F3,F4) SPIクラス作成(STM32F4),修正(F3,Arduino) USB_HIDクラス バグ修正(F4) |
全て |
'16.2.16 |
Add UART Class Some bugs are fixed. |
All |
'16.3.27 |
All |
|
'16.7.15 |
I2C Bug Fixed |
Arduino |
'17.8.3 |
Add STM32F103C8T6 library Update SD card class - Adapt to FatFs ver 0.13 Add USB CDC Class Etc... |
STM32 |
'17.8.16 |
Bug fixed. |
All |
'17.8.27 |
32byte以上の転送に対応(Arduino) その他I2Cライブラリ修正 F3, F4は未対応 |
Arduino STM32F1 |
'17.9.13 |
Bug fixed: USB CDC class |
STM32 USB |
'17.9.30 |
Bug fixed: USB_HID_Class |
STM32 USB |
'17.11.11 |
Bug fixed: USB CDC class (Add Flush command) |
STM32 USB |
'18.3.3 |
WaitなどいくつかのクラスについてInit関数でも初期化できるようにした |
STM32 F1 |
'18.4.21 |
同上 |
STM32 F1 |
'18.7.19 |
Update I2C class |
STM32 F1 Arduino |
'18.12.20 |
STM32 F1 Arduino |
|
'18.12.29 |
Update STM32ADC class |
STM32 F1 |
'19.5.27 |
This library is on the way to convert from HAL driver to LL driver. Just only RCC, SPI, GPIO are finished. F3, F4 library will be not working properly. |
STM32 F1 |
'19.6.16 |
Convert HAL driver to LL driver(RTC, ADC) Bug fix (SPI) |
STM32F1 |
'19.7.16 |
Bug fix (SPI, Common) |
STM32F1 |
’19.10.20 |
Convert I2C class from HAL to LL Add I2CwithPEC class for MLX90614 |
STM32F1 |
’20.2.3 |
Update I2C class |
STM32F1 |
'20.3.1 |
Update I2C class |
STM32F1 |
'20.4.9 |
Update wait class |
STM32LL |
'20.11.28 |
Update all class, Add HID USB class |
STM32F1 |
'21.9.19 |
Update I2C class, HID USB class |
STM32F1 |