Page 1 of 1

[STM32 core] List of libraries

Posted: Wed Nov 08, 2017 1:23 pm
by fpiSTM
Hereafter, a non exhaustive list of libraries compatible with the STM32 core.

Currently, libraries that come with the Arduino IDE should work (could required some pins update in the sketch).

All those using SPI, I2C should be fully compatible.

Arduino boards provide ICSP connector used by several Arduino shield for SPI signal: MISO/MOSI/SCK. STM32 boards do not have this ICSP connector, so this requires to manually wire those SPI signal on the desire pin (mainly: D11 to D13)

Built-in (delivered with the core package)
* SPI: follow the official SPI API
* Wire (I2C): follow the official Wire API.
* EEPROM: follow the official EEPROM API.
* Servo: follow the official Servo API.

Some libraries have been developed to support specific hardware features:
* LPS22HB: to support the LPS22HB 260-1260 hPa absolute digital ouput barometer
* HTS221: to support the HTS221 capacitive digital sensor for relative humidity and temperature<br>
* LIS3MDL: to support the LIS3MDL high-performance 3-axis magnetometer
* LPS25HB: to support the LPS25HB 260-1260 hPa absolute digital ouput barometer
* LSM303AGR: to support the LSM303AGR 3D accelerometer and 3D magnetometer
* LSM6DS0: to support the LSM6DS0 3D accelerometer and 3D gyroscope
* LSM6DS3 : Arduino library to support the LSM6DS3 3D accelerometer and 3D gyroscope
* LSM6DSL: to support the LSM6DSL 3D accelerometer and 3D gyroscope
* MX25R6435F: to support the Quad-SPI NOR Flash memory MX25R6435F
* SPBTLE-RF: to support the Bluetooth (V4.1 compliant) SPBTLE-RF
* STM32Ethernet: for on board Ethernet port (ex: Nucleo-F429ZI).
This library is fully compatible with Arduino Ethernet API.
* STM32FreeRTOS: a port of FreeRTOS for STM32.
* STM32SD: for board with SD card slot (ex: Disco-F746).
This library is fully compatible with Arduino SD API.
* VL53L0X: to support the VL53L0X Time-of-Flight and gesture-detection sensor

See [X-NUCLEO] List of libraries

Goal is to have all dedicated STM32 libraries available through the Arduino "Library Manager"

Have a look here to see which one are available or thanks the "Library Manager"

Official from Arduino
* TFT: required arduino-libraries/TFT#11 else you can use Ucglib_Arduino
* LiquidCrystal
* Ethernet
* WiFi

Third party (tested)
ARDUINO_ARCH_STM32 must be used as differentiator.
* Firmata: since release 2.5.7
* PubSubClient: tested using L475 disco IOT using WiFi
* RTClib: tested with Adafruit module 3296
* Ucglib_Arduino: tested with ST7735
* UIPEthernet: tested with ENC28j60 module