I would like to introduce the new Arduino core for STM32:
A first package version is available through the Arduino IDE Boards manager by adding the following link to the "Additional Boards Managers URLs" field of the "Preferences" dialog:
It now support every STM32 families based on HAL (all version added to the repo) , some boards are already available:
- F0: Nucleo F091RC board
F1: only HAL added, porting will be done soon (ex: AF management is different,..)
F2: no board added at this time
F3: Nucleo F303RE
F4: Nucleo F429ZI, STM32F407G-DISC1
L0: Nucleo L053R8
L4: Nucleo L476RG
No more static libraries for the HAL. By modifying the stm32YYxx_hal_conf.h in the variant, it is possible to enable or disable HAL features.
CMSIS is no more include in the source, it a package dependency and use the one package by Arduino: CMSIS 4.5.0.
ARM gcc toolchain has been updated to 6-2017-q1-update version to support F7 family (cortex-m7) but for other families the 4.8.3-2014q1 version still valid.
All pins are available based on mbed pinmap feature.
PeripheralPins.c automatically generated from stm32cube mcu xml file. This avoid issue on pins definition.
Python script to generate it, is available here:
Pins capabilities are configurable through this file by commenting or not pin description.
USB feature is available and disabled by default.
To enable, edit the boards.txt file then add '-DUSBCON' to enable the core and '-DUSBD_USE_HID_COMPOSITE' to enable HID (keyboard and mouse support)
Further features will be added. Do not hesitate to contribute or submit issues.
uSD with FatFs has been added and tested on F7.
USB Serial is ongoing (CDC).
Ethernet support based on LwIp will be added.
ADC features will be extended.
I will update the wiki in order to be inline with this new core and adding a page on how to include a new variant (PeripheralPins.c generation, config,...).