STMCube is an STMicroelectronics original initiative to ease developers
life by reducing development efforts, time and cost.
STM32Cube covers STM32 portfolio.
STM32Cube Version 1.x includes:
- The
STM32CubeMX, a graphical software configuration tool that allows to
generate C initialization code using graphical wizards.
- A
comprehensive embedded software platform, delivered per series (such as
STM32CubeF1 for STM32F1 series)
- The
STM32Cube HAL, an STM32 abstraction layer embedded software, ensuring
maximized portability across STM32 portfolio
- A
consistent set of middleware components such as RTOS, USB, TCP/IP,
Graphics
All
embedded software utilities come with a full set of examples.
- The
STM32Cube firmware solution offers a straightforward API with a modular
architecture, making it simple to fine tune custom applications and
scalable to
fit most requirements

-
The
HAL
(Hardware Abstraction Layer) drivers provided within this
package supports
the following STM32F100xx
STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and STM32F107xx
Series.
- The
STM32CubeF1 firmware package comes with an updater utility, STM32CubeUpdater,
that can be configured for automatic
or on-demand checks for new firmware package updates (new
releases or/and patches).
- For quick getting started with the
STM32CubeF1 firmware package, refer to UM1847 and you can
download firmware updates and all the latest documentation from www.st.com/stm32cube
- Below
links to
the most useful documents
- Latest release of STM32CubeF1 Firmware package.
- UM1847: Getting started with STM32CubeF1 for STM32F1 Series.
- UM1853: STM32CubeF1 Nucleo demonstration firmware.
- UM1850: Description of STM32F1xx HAL drivers.
- UM1734: STM32Cube USB Device library.
- UM1720: STM32Cube USB host library.
- UM1721: Developing Applications on STM32Cube with FatFs.
- UM1722: Developing Applications on STM32Cube with RTOS.
- UM1713: Developing applications on STM32Cube with LwIP TCP/IP stack.
- UM1709: STM32Cube Ethernet IAP example.
Update
History
V1.6.1 / 09-March-2018Main Changes - Patch release to fix issues in GPIO, RCC, SMARTCARD, I2C and Generic HAL/LL drivers
Contents V1.6.0 / 12-May-2017Main Changes - General update to fix known defects and several implementations enhancement
- \HAL
- stm32f1xx_hal_conf_template.h fix typo: update to refer to stm32f1xx_hal_mmc.h instead of stm32f4xx_hal_mmc.h
- stm32f1xx_hal_mmc.c add missing () to fix compilation warning detected with SW4STM32 when extra feature is enabled.
- stm32f1xx_ll_system.h: fix typo in LL_DBGMCU_APB1_GRP1_I2C1_STOP and LL_DBGMCU_APB1_GRP1_I2C2_STOP literals definition
- \Projects
- General updates to be compliant with Linux platforms
- For the complete list of changes, please refer to the release notes of each firmware component
Contents - The
STM32CubeF1 Firmware package comes with a rich set of examples running
on STMicroelectronics boards, organized by board and provided with
preconfigured projects for the main supported toolchains. The
exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
- Projects
release notes
- STM32F103RB-Nucleo
- STM32VL-Discovery
- STM3210C_EVAL
- STM3210E_EVAL
- Drivers
Development Toolchains and Compilers - IAR Embedded Workbench for ARM (EWARM) toolchain v7.80.4
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.23
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.5.2
- System
Workbench for STM32 (SW4STM32) toolchain V1.13
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
- SW4STM32 projects aren't provided for STM32VL-Discovery board because it embeds STLinv1 version that is not hardware supported by SW4STM32 toolchain.
V1.5.0 / 14-April-2017Main Changes - Add Low Layer drivers under Drivers\STM32F1xx_HAL_Driver
- Low Layer drivers allow performance and memory footprint optimization
- Low
Layer drivers APIs provide register level programming: they require
deep knowledge of peripherals described in STM32F1xx Reference Manuals
- Low Layer drivers are available for: ADC, Cortex,
CRC, DAC, DMA, EXTI, GPIO, I2C, IWDG, PWR, RCC, RNG, RTC,
SPI, TIM, USART, WWDG peripherals and additionnal Low Level Bus, System
and Utilities APIs.
- Low Layer drivers APIs are implemented as static inline function in new Inc/stm32f1xx_ll_ppp.h files for PPP peripherals, there is no configuration file and each stm32f1xx_ll_ppp.h file must be included in user code.
- Refer to UM1847 for Low Layer presentation and UM1850 for API list
- General update to fix known defects and several implementations enhancement
- \HAL
- Add Low Layer drivers under Drivers\STM32F1xx_HAL_Driver
- Add new MMC HAL driver
- The following changes done on the HAL drivers require an update on the application code based on older HAL versions
- HAL UART, USART, IRDA, SMARTCARD, SPI, I2C,FMPI2C, QSPI (referenced as PPP here below) drivers
- Add PPP error management during DMA process. This requires the following updates on user application:
- Configure and enable the PPP IRQ in HAL_PPP_MspInit() function
- In stm32f1xx_it.c file, PPP_IRQHandler() function: add a call to HAL_PPP_IRQHandler() function
- Add customize the Error Callback API: HAL_PPP_ErrorCallback()
- HAL SD driver:
- Overall rework of the driver for a more efficient implementation
- Modify initialization API and structures
- Modify Read / Write sequences: separate transfer process and SD Cards state management
- Adding interrupt mode for Read / Write operations
- Update the HAL_SD_IRQHandler function by optimizing the management of interrupt errors
- Refer to the following example to identify the changes: BSP example and USB_Device/MSC_Standalone application
- HAL NAND driver:
- Modify NAND_AddressTypeDef, NAND_DeviceConfigTypeDef and NAND_HandleTypeDef structures fields
- Add new HAL_NAND_ConfigDevice API
- HAL CEC driver: Overall driver rework with compatibility break versus previous HAL version
- Remove HAL CEC polling Process functions: HAL_CEC_Transmit() and HAL_CEC_Receive()
- Remove
HAL CEC receive interrupt process function HAL_CEC_Receive_IT()
and enable the "receive" mode during the Init phase
- Rename HAL_CEC_GetReceivedFrameSize() funtion to HAL_CEC_GetLastReceivedFrameSize()
- Add new HAL APIs: HAL_CEC_SetDeviceAddress() and HAL_CEC_ChangeRxBuffer()
- Remove the 'InitiatorAddress'
field from the CEC_InitTypeDef structure and manage
it as a parameter in the HAL_CEC_Transmit_IT() function
- Add new parameter 'RxFrameSize' in HAL_CEC_RxCpltCallback() function
- Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to CEC_InitTypeDef structure
- HAL IWDG driver: rework overall driver for better implementation
- Remove HAL_IWDG_Start(), HAL_IWDG_MspInit() and HAL_IWDG_GetState() APIs
- HAL WWDG driver: rework overall driver for better implementation
- Remove HAL_WWDG_Start(), HAL_WWDG_Start_IT(), HAL_WWDG_MspDeInit() and HAL_WWDG_GetState() APIs
- Update the HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg, uint32_t counter) function and API by removing the "counter" parameter
- \CMSIS
- Fix known defects and several implementation enhancement
- General update to support Low layer drivers (LL)
- \Middleware
- Update STemWin Library V5.32 with a new build with EWARM V7.80
- Upgrade to use new version of LwIP V2.0.0
- Note: Applications based on previous version LwIP V1.4.1
require update to cope with the upgrade to the currently used V2.0.0.
For details please refer to its Release Note and to the updated LwIP
applications provided by this firmware package.
- Update to new version of FreeRTOS V9.0.0
- Update FatFS to implement changes on sd_diskio.c file to be aligned with HAL SD driver and BSP drivers API changes.
- \Projects
- General updates to fix known defects and enhancements implementation
- Add Low Layer examples and MIX examples on the STM32F103RB-Nucleo, STM32F10E-EVAL boards
- Update overall projects to be aligned with latest version of HAL, BSP and Middleware drivers
- Add HAL_TimeBase RTC examples on all the supported boards
- Add I2C_TwoBoards_RestartAdvComIT and I2C_TwoBoards_RestartComIT Examples
- For the complete list of changes, please refer to the release notes of each firmware component
Contents - The
STM32CubeF1 Firmware package comes with a rich set of examples running
on STMicroelectronics boards, organized by board and provided with
preconfigured projects for the main supported toolchains. The
exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
- Projects
release notes
- STM32F103RB-Nucleo
- STM32VL-Discovery
- STM3210C_EVAL
- STM3210E_EVAL
- Drivers
Development Toolchains and Compilers - IAR Embedded Workbench for ARM (EWARM) toolchain v7.80.4
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.23
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.5.2
- System
Workbench for STM32 (SW4STM32) toolchain V1.13
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
V1.4.0 / 29-April-2016
Main
Changes
- Maintenance release to fix known defects and several enhancements
implementation.
- HAL
- HAL RCC
- Add suffix U for defines equals to 0xFFFFFFFF (fix MISRA error 10.6)
- Optimization of HAL_RCC_ClockConfig().
- Replace aAPBAHBPrescTable by APBPrescTable and AHBPrescTable defined inside system_stm32f1xx.c.
- When using HAL_RCC_OscConfig
to activate LSE, if LSE is already ON, it remains in its state ON.
Previously, it was turned OFF then ON in all cases.
- The backup domain is no more reset when changing the RTC clock source from reset value.
- Correct strange behavior in HAL_RCCEx_PeriphCLKConfig.
- HAL UART
- Correct the macro UART_BRR_SAMPLING16
- HAL SMARTCARD
- Correct the macro SMARTCARD_BRR
- HAL IRDA
- Correct the macro IRDA_BRR
- EIE bit is no more activated in transmit (this bit only triggers errors in reception)
- EIE bit is reset at the end of the reception.
- HAL DMA
- Add macro __HAL_DMA_GET_COUNTER to get the number of remaining data units in the current channel.
- HAL FSMC
- Adapt FSMC_NAND_Init behavior to the others STM32 series by reseting the bit FSMC_PCRx_PBKEN.
- CMSIS
- Add _Pos and _Msk defines to be used with _VAL2FLD(field, value) and _FLD2VAL(field, value).
- The previous naming are kept for backward compatibility.
- Add APBPrescTable constant to list APB prescalers values.
- BSP
STM32F1xx_Nucleo
- Add support for 4 Gb sd cards.
- BSP
STM3210E_EVAL
- Set the NVIC priority to the lowest possible to not interfere with user settings.
- BSP
STM3210C_EVAL
- Set the NVIC priority to the lowest possible to not interfere with user settings.
- Middlewares
- Update to FreeRTOS
V8.2.3.
- Update to STM32 USB Device Library V2.4.2
- Others
- Add latest version of STM32CubeUpdater (V4.10.0).
- Contents
- The
STM32CubeF1 Firmware package comes with a rich set of examples running
on STMicroelectronics boards, organized by board and provided with
preconfigured projects for the main supported toolchains. The
exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
- Projects
release notes
- STM32F103RB-Nucleo
- STM32VL-Discovery
- STM3210C_EVAL
- STM3210E_EVAL
- Drivers
- Middlewares
Development
Toolchains and Compilers
- IAR Embedded
Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
- System
Workbench for STM32 (SW4STM32) toolchain V1.5.0 + ST-LINK
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
V1.3.1 / 11-January-2016
Main
Changes
- Patch release to fix issue in HAL driver:
- Remove the #if defined(USE_HAL_LEGACY) condition to include Legacy/stm32_hal_legacy.h by default, in stm32f1xx_hal_def.h.
Contents V1.3.0
/ 18-December-2015
Main
Changes
- Maintenance release to fix known defects and several enhancements
implementation.
- HAL
- Insure that do {} while(0) are used in in multi statement macros. (hal eth and pcd)
- Manage simultaneous errors in IRQHandler. (hal uart, smartcard, usart and uart)
- To
ensure the full compatibility of the GPIO interfaces across all the
STM32 families, the gpio speed definition have been renamed:
- GPIO_SPEED_LOW to GPIO_SPEED_FREQ_LOW
- GPIO_SPEED_MEDIUM to GPIO_SPEED_FREQ_MEDIUM
- GPIO_SPEED_HIGH to GPIO_SPEED_FREQ_HIGH
- aliases are created to keep backward compatibility
- Reduce the default timeout value for the startup of the HSE form 5s to 100ms.
- Update HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers.
- CMSIS
- Align bit name across all STM32 families (EXTI, WWDG) and keeping backward compatibility with aliases.
- Middlewares
- Projects
- Update all Keil project from Keil V4 to Keil V5.
- Update all SW4STM32 projects to version 1.5.0.
- Others
- Add latest version of STM32CubeUpdater (V4.10.0).
- Contents
- The
STM32CubeF1 Firmware package comes with a rich set of examples running
on STMicroelectronics boards, organized by board and provided with
preconfigured projects for the main supported toolchains. The
exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
- Projects
release notes
- STM32F103RB-Nucleo
- STM32VL-Discovery
- STM3210C_EVAL
- STM3210E_EVAL
- Drivers
- Middlewares
Development
Toolchains and Compilers
- IAR Embedded
Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
- System
Workbench for STM32 (SW4STM32) toolchain V1.5.0 + ST-LINK
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
V1.2.0
/ 31-July-2015
Main
Changes
- Maintenance release.
- Fix known defects and several enhancements
implementation.
- \Projects
- Adding new projects to introduce the FreeRTOS
V8.2.1
- FreeRTOS_SignalFromISR (thread signaling from
an interrupt)
- FreeRTOS_Signal (thread signaling)
- FreeRTOS_Mail (mail queues)
- Adding
new application IAP for STM3210E_EVAL board.
- \FatFs
- Upgrade to
use FatFs R0.11.
- Add new APIs
FATFS_LinkDriverEx() and FATFS_UnLinkDriverEx() to manage USB Key Disk
having
multi-lun capability. These
APIs are equivalent to FATFS_LinkDriver() and FATFS_UnLinkDriver()
with "lun" parameter set to 0.
- ff_conf.h:
add new define "_USE_BUFF_WO_ALIGNMENT".
- Important
note:
For application code
based on previous FatFs version; when moving to R0.11
the changes that
need to be done is to update ffconf.h file, taking
ffconf_template.h
file as reference.
- \STM32 USB Host and STM32 USB Device Library
- This new versions implements only bug fixes
with minor enhancements, it doesn’t impact neither the APIs nor the
behavior of applications developed so far.
- \STemWin
- Upgrade
to use SEGGER emWin version V5.28, for more
details about the
changes in this version refer to "Revision History" section in STemWin528.pdf document
- \FreeRTOS
- No changes in file naming/set of sources
files.
- Align
Port.c for CM7, CM4 and CM3 to M0 regarding
function
“vPortSuppressTicksAndSleep : Same implementation for CM7, CM4 and CM3
as CM0
- Macros “configPRE_SLEEP_PROCESSING” and
“configPOST_SLEEP_PROCESSING are now passing the parameter
ulExpectedIdleTime by pointer
- Adding implementation for APIs “osSignalSet”
and “osSignalWait”.
- API changes on CMSIS-RTOS (osDelayUntil()).
- Internal enhancements and bug fixes.
- CMSIS-RTOS
V1.02 (unchanged)
Contents
- The
STM32CubeF1 Firmware package comes with a rich set of examples running
on STMicroelectronics boards, organized by board and provided with
preconfigured projects for the main supported toolchains. The
exhaustive list of projects is provided in this table (STM32CubeProjectsList.html).
- Projects
release notes
- STM32F103RB-Nucleo
- STM32VL-Discovery
- STM3210C_EVAL
- STM3210E_EVAL
- Drivers
- Middlewares
Development
Toolchains and Compilers
- IAR Embedded
Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
- Important
note: some of MDK-ARM projects were
created with previous version like v4.73. If you are using
MDK-ARM v5.10 (and later) you have to install a legacy patch to be able
to open projects built with v4.73, here is the download link
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
- System
Workbench for STM32 (SW4STM32) toolchain V1.2.0 + ST-LINK
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
V1.1.0
/ 05-June-2015
Main
Changes
- Add support of System Workbench
for STM32 (SW4STM32) toolchain
- \HAL
- \Middlewares
- \BSP
- \Projects
- Add projects for SW4STM32 toolchain
Contents
Development
Toolchains and Compilers
- IAR Embedded
Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
- System
Workbench for STM32 (SW4STM32) toolchain V1.2.0 + ST-LINK
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
V1.0.0
/ 17-December-2014
Main
Changes
- First
official release of STM32CubeF1 (STM32Cube for STM32F1 Series)
Contents
STM32Cube_FW_F1
Projects (details)
Board
|
Examples
|
Applications
|
Demonstration
|
STM3210E-EVAL
|
30
|
8
|
N/A
|
STM3210C-EVAL
|
17
|
19
|
N/A
|
STM32VL-Discovery
|
16
|
N/A
|
N/A
|
NUCLEO-F103RB
|
24
|
3
|
1
|
Development
Toolchains and Compilers
- IAR Embedded
Workbench for ARM (EWARM) toolchain V7.20 + ST-LINK
- RealView
Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
- Atollic
TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
Supported
Devices and EVAL boards
- STM32F1xx
Value, Access, USB, Performance, OTG & Ethernet Lines
- STM3210E-Eval
board RevD
- STM3210C-Eval
board RevC
- STM32VL-Discovery
board RevC
- STM32F1xx-Nucleo
board RevC
Known
Limitations
License
Licensed
under MCD-ST Liberty SW License Agreement V2, (the "License"); You may
not use this package
except in compliance with the License. You may obtain a copy of the
License at:
Unless
required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See
the License for the specific language governing permissions and
limitations under the License.
For
complete documentation on STM32 Microcontrollers visit www.st.com/STM32
|