STM32 core support for Arduino
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.7.0...2.7.1
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.6.0...2.7.0
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.5.0...2.6.0
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.4.0...2.5.0
CDCgen
by default by @zfields in https://github.com/stm32duino/Arduino_Core_STM32/pull/1797
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.3.0...2.4.0
Interrupts: remove C prototype and keep only C++ prototypes by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1617
ci(stm32cube): enhance version regex to match RC versions for example by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1618
ci(stm32cube): manage Release candidate for HAL/CMSIS versions by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1630
[U(S)ART] hardware flow control support by @akasona in https://github.com/stm32duino/Arduino_Core_STM32/pull/1634
system(U5): HAL RCC should restore PWR clock after clock configuration by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1639
cores(U5): support USB Type-C on U5 by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1640
Adding new variant for Generic G070xxT by @techstudio-design in https://github.com/stm32duino/Arduino_Core_STM32/pull/1638
fix(cli): optional column number in error pattern by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1658
Bootloader jump to application by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1653
add STM32G031FxPx (and STM32G031Y8Yx, STM32G041F6Px, STM32G041F8Px STM32G041Y8Yx) by @olikraus in https://github.com/stm32duino/Arduino_Core_STM32/pull/1655
Wire: implement STOP sequence to recover I2C bus. by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1663
fix(WL): wrong arm cortex math library and VECT_TAB_OFFSET used for CM4 by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1665
feat: Add No Optimization (-O0) option to menus by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1666
feat: Add STM32Cube HAL getter to SPI, Wire and HardwareSerial by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1674
Variant update 6.0.50 by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1683
fix: Stabilize SWD Programming for Swan (STM32L4R5) by @zfields in https://github.com/stm32duino/Arduino_Core_STM32/pull/1694
core: fix HardwareSerial compilation failed when USART disabled by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1697
wire: add fix for toggling NoStretch by @ric96 in https://github.com/stm32duino/Arduino_Core_STM32/pull/1691
Add flags about fpv4 for cortex-m33 on platformio-build.py by @asukiaaa in https://github.com/stm32duino/Arduino_Core_STM32/pull/1704
chore: Prepare for next STM32CubeProgrammer release by @zfields in https://github.com/stm32duino/Arduino_Core_STM32/pull/1711
fix: make micros compatible with ISR by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1702
Cleaning the build process by @massonal in https://github.com/stm32duino/Arduino_Core_STM32/pull/1708
HAL legacy support by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1710
Added new Agafia SG0 Board by @harji2130 in https://github.com/stm32duino/Arduino_Core_STM32/pull/1690
Add support to CRC peripheral by default by @cparata in https://github.com/stm32duino/Arduino_Core_STM32/pull/1715
fix: allow to disable HAL CRC module by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1716
HardwareTimer: call refresh() after parameter update when timer not running by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1721
Improve Swan initialization by @zfields in https://github.com/stm32duino/Arduino_Core_STM32/pull/1722
feat: allows arduino-cli to override build property by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1725
Improve support for hand-written asm source files by @ivankravets in https://github.com/stm32duino/Arduino_Core_STM32/pull/1729
Added F722RE Variant to boards.txt, added F722RE ldscript.ld by @geosmall in https://github.com/stm32duino/Arduino_Core_STM32/pull/1712
Added the N-Versions of G0(7,8)1G(8,B)U generic Boards by @microtronics in https://github.com/stm32duino/Arduino_Core_STM32/pull/1730
Added STM32F765IIKx by @PumaFPV in https://github.com/stm32duino/Arduino_Core_STM32/pull/1732
variant: update entries and ci config by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1734
variant: add AcSIP S76S support by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1733
fix: add COM port prefix in bmp_upload pattern on Windows by @reppad in https://github.com/stm32duino/Arduino_Core_STM32/pull/1737
Review get adc/dac/timer channel functions by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1735
Error management: save space when core logs are not enabled by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1739
Add functionality to ignore library examples in CI for PlatformIO by @valeros in https://github.com/stm32duino/Arduino_Core_STM32/pull/1746
fix: CMSIS STM32G491and STM32G4A1 : add missing aliases for TIM7 and COMP4/5/6 by @ABOSTM in https://github.com/stm32duino/Arduino_Core_STM32/pull/1744
Arduino lint by @fpistm in https://github.com/stm32duino/Arduino_Core_STM32/pull/1743
Adding L431RC Generic by @mackelec in https://github.com/stm32duino/Arduino_Core_STM32/pull/1736
variant: G0: add Nucleo-G070RB by @TDhaouST in https://github.com/stm32duino/Arduino_Core_STM32/pull/1745
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.2.0...2.3.0
Full Changelog: https://github.com/stm32duino/Arduino_Core_STM32/compare/2.1.0...2.2.0
Several components libraries are available on stm32duino organization. They are also available through the Arduino library manager. Search for STM32duino 😉
i2c_getClkFreq()
spi_getClkFreqInst()
MasterKeepIOState
to avoid glitchesADC_VER_V5_V90
available with some STM32H7xx
...MAX_PWM_RESOLUTION
instead of MAX_ADC_RESOLUTION
(#1378)FLASH_FLAG_ALL_ERRORS
build.opt
instead of build_opt.h
. See: https://github.com/arduino/arduino-cli/issues/1338
When the above issue will be fix. This change should be reviewed. This is backward compatible.Plus several other fixes: See https://github.com/stm32duino/Arduino_Core_STM32/compare/2.0.0...2.1.0
Several components libraries are available on stm32duino organization. They are also available through the Arduino library manager. Search for STM32duino 😉
The board package index has changed to better follow the package index specification. New link is:
https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json
As the number of variants continues to grow and in order to ease navigation, they have been grouped in sub-folders per series.
To improve variants support and generic ones several enhancements/fixes has been done:
PeriperhalPins.c
PinMap array. ALTx
pin naming allows to use all alternative possibilities which use other Hardware peripheral instances.All generic variants are now automatically generated thanks the STM32_open_pin_data repository which provides all the information required for the pin configuration of products based on STM32 MCU. All the generic variants are generated in the variant folder, this means all the generic STM32 MCU are generated. Only the linker script and the clock config are missing. A board_entry.txt
file is generated to ease board declaration.
Note that flash size used can be increased by 2k as now all pins are available in the PeripheralPins.c
. To decrease it you can redefine the \ PinMap
arrays at sketch level to only provide access to the used pins. See the Wiki custom pinmap array section.
PinMap_PWM
to PinMap_TIM
ALTx
) managementPinName
mentioned Px_y_ALTz
(described in the PeripheralPins.c
/PinNames.h
files)
are alternative possibilities which use other HW peripheral instances.
To access those alternative PinName name using a pin number can be performed like this:
PYn_ALTx
Ax | ALTx
Dx | ALTx
x | ALTx
Ax
constants to an enumgenpinmap
from Arduino_Tools repository and renamed stm32variant.py
xxx.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Nucleo_64.menu.pnum.NUCLEO_L476RG.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
Then add a file with ".c" extension like "PeripheralPins_<board>.c
" in the variantfolder.
At sketch folder:
CUSTOM_PERIPHERAL_PINS
could now be overridden using the build_opt.h
, ex:
-DCUSTOM_PERIPHERAL_PINS=\"PeripheralPins_NUCLEO_L476RG.c\"
variant.h
will include variant_generic.h file
.
*.build.variant_h=variant_{build.board}.h
can be added in the boards.txt to define the dedicated header to a board.Stream.flush()
to Print.flush()
(#1170)Print.availableForWrite()
(#1170)requestFrom(uint8_t address, size_t quantity, bool sendStop)
MASTER_ADDRESS
to avoid potential conflict.write()
calls in i2cRequestEvent()
as SlaveUSART10
supportSERIAL_UART_INSTANCE
for LPUART1
(101 instead of 0)NVIC SetPriority
callsdtostrf
should not print fractional part if prec is 0HSE_VALUE
if already user-overridden (#1281)ADC_IN0
to ADC_IN31
are available
in Bank A and channels ADC_IN0b
to ADC_IN31b
are available in Bank B.USE_FULL_LL_DRIVER
at top levelIPCC
by defaultHAL_DAC_DeInit
to avoid other channel deconfigurationSTM32/tools/STM32Tools/<version>/tools/
now:
STM32/tools/STM32Tools/<version>/
AFIO
definition for F1stopListening
at the beginingpause()
need to call HAL API to restore HAL stategetTimerClkFreq()
add comment to avoid confusionTIMER_OUTPUT_COMPARE
(#1244)TIM13_BASE
in IRQ handler.onReceiveEvent()
not being triggered when a repeated start/no stop condition is sent in slave modeUSER_BTN
on PA0
PF9
and PF10
in digitalPin[]
noTone()
when no TIMER_TONE
is defined
…Plus several other fixes: See https://github.com/stm32duino/Arduino_Core_STM32/compare/1.9.0...2.0.0
WiKi pages will be updated to accordiling.
Several components libraries are available on stm32duino organization. They are also available through the Arduino library manager. Search for STM32duino 😉
I2C_TXRX_BUFFER_SIZE
)USBD_VBUS_DETECTION_ENABLE
Plus several other fixes: See https://github.com/stm32duino/Arduino_Core_STM32/compare/1.8.0...1.9.0
Several components libraries are available on stm32duino organization. They are also available through the Arduino library manager. Search for STM32duino 😉