Release Notes for STM32CubeF3 Firmware Package

Copyright © 2016 STMicroelectronics

Purpose

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 HAL (Hardware Abstraction Layer) drivers provided within this package supports the following STM32F301x6/x8, STM32F302x6/x8, STM32F302xB/xC, STM32F303x6/x8, STM32F303xB/xC, STM32F373xB/xC, STM32F334x4/x6/x8, STM32F318xx, STM32F328xx, STM32F358xx and STM32F378xx devices.

Update History

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation.

  • CMSIS updates
    • Remove duplicated definition of ADC12_CSR_ADRDY_OVR_SLV bit and add definition of ADC34_CSR_ADRDY_OVR_SLV bit
    • Align the CEC_RXDR register bit definition with reference manual
  • HAL updates
    • HAL Generic update
      • Add missing call to UNUSED() macro to avoid compilation warnings related to the unused arguments for the following HAL drivers: ADC, PWR, RCC
      • HAL code quality enhancement for MISRA-C Rule-8.13 by adding const qualifiers.
    • HAL FLASH
      • Correct the setting of option byte OB->WRPx in FLASH_OB_DisableWRP() API and apply MCUAstyle fixes
    • HAL CORTEX
      • Updated HAL_MPU_ConfigRegion() to allow the configuration of the MPU registers independently of the value of Enable/Disable field.
      • Add new APIs HAL_MPU_EnableRegion() / HAL_MPU_DisableRegion().
    • HAL GPIO
      • Replace GPIO_Pin_x with GPIO_PIN_x to be compliant with macros definition
    • LL/HAL RTC_BKP
      • Remove macro __HAL_RTC_TAMPER_GET_IT() as it is redundant with macro __HAL_RTC_TAMPER_GET_FLAG() and create an alias into the hal_legacy.h file
      • Correct misleading note about shadow registers
    • LL/HAL ADC
      • Update description of LL_ADC_DELAY_DISABLE_CALIB_ADC_CYCLES to be aligned with STM32F3 reference manual
    • HAL COMP
      • Update APIs HAL_COMP_Init() and HAL_COMP_Start() to add a delay for startup time as mentioned in the datasheet
    • LL/HAL I2C
      • Update HAL I2C driver to prefetch data before starting the transmission: implementation of errata sheet workaround I2C2-190208 : Transmission stalled after first byte
      • Update HAL I2C driver to disable all interrupts after end of transaction.
      • Update HAL_I2C_Init API to clear ADD10 bit in 7 bit addressing mode.
      • Update HAL_I2C_Mem_Write_IT API to initialize XferSize at 0.
      • Update I2C_Slave_ISR_IT, I2C_Slave_ISR_DMA and I2C_ITSlaveCplt to prevent the call of HAL_I2C_ListenCpltCallback twice.
      • Update I2C_WaitOnRXNEFlagUntilTimeout to check I2C_FLAG_AF independently from I2C_FLAG_RXNE.
      • In function HAL_I2C_IsDeviceReady, remove the unusable code.
      • Update I2C_WaitOnFlagUntilTimeout to handle error case.
      • Update the HAL I2C driver to implement the errata workaround "Last-received byte loss in reload mode"
      • Update HAL_I2C_Slave_Transmit to check if the received NACK is the good one.
      • Update LL_I2C_HandleTranfer() function to prevent undefined behavior of volatile before updating the CR2 register.
    • HAL SMBUS
      • Update HAL SMBUS driver to prefetch data before starting the transmission: implementation of errata sheet workaround I2C2-190208 : Transmission stalled after first byte
      • Update SMBUS_ITErrorHandler to flash TXDR just in case of error
    • HAL UART
      • Update initialisation sequence for TXINV, RXINV and TXRXSWAP settings
      • Fix incorrect gState check in HAL_UART_RegisterRxEventCallback/HAL_UART_UnRegisterRxEventCallback to allow user Rx Event Callback registration when a transmit is ongoing
      • Avoid RTOF flag to be cleared by a transmit process in polling mode
    • HAL SPI
      • Update HAL_SPI_TransmitReceive API to set the bit CRCNEXT in case of one byte transaction.
      • Update IT API to enable interrupts after process unlock.
    • HAL I2S
      • Update HAL I2S driver to fix misplaced __HAL_LOCK and remove ‘go to’ instruction
    • LL/HAL TIM
      • Remove multiple volatile reads from interrupt handler for better performance.
      • Assert check for the right channels.
      • Update interrupt flag is cleared when the update event is generated by software.
      • Improved period configuration parameter check
      • HAL TIM driver’s operational behavior improvement
      • Minor typo correction in hal_tim header file
      • Fix typo in PWM symmetric mode related constants names
      • Remove unnecessary change of MOE bitfield in LL_TIM_BDTR_Init()
      • Remove useless check on IS_TIM_ADVANCED_INSTANCE() within LL_TIM_BDTR_Init() to fix Break Filter configuration problem with specific TIM instances
      • LL_TIM UM generation fix
      • User manual quality improvement
      • MISRA warning fix
      • Add LL_TIM_CC_IsEnabledPreload() function
      • Add system break interrupt handling in IRQ handler
      • Make APIs HAL_TIMEx_OCN_Stop_IT() and HAL_TIMEx_PWMN_Stop_IT() more generic
      • Assert check for the right channels
      • Improve CH4N support handling
      • Improve API LL_TIM_BDTR_Init() implementation consistency
    • HAL CAN
      • Clarify pin configuration in driver header by removing open-drain info
      • Put __CAN_HandleTypeDef definition under a compilation condition to avoid MISRAC2012-Rule-2.4 violation
    • HAL USB_OTG
      • Add new HAL_PCD_EP_Abort() API to abort current USB endpoint transfer.
    • LL UTILS
      • Fix a note about Ticks parameter
  • Project update
    • Update “I2C_EEPROM” example to be aligned with HAL_I2C_IsDeviceReady() API returned value: HAL_I2C_IsDeviceReady() API is no more returning HAL_TIMEOUT.
    • Use a 2nd handler for TIM8 in the “TIM_Asymetric” example to avoid initialization error if only one handler is used for both timers, due to the BUSY state in 1st handler after it has been already used for TIM1 initialization.
  • BSP update
    • Update EEPROM_SPI_IO_WriteData() API to fix warning detected with EWARM 8.50.9: Send zero as high nibble address to keep compliancy with SPI EEPROM memory (M95M01) component specification.
    • Update EEPROM_WritePage() and EEPROM_I2C_WritePage() APIs to add waiting EEPROM internal write cycle duration: Add 5ms max delay required by the M24M01 specification to ensure that the previous EEPROM access is finished.
    • Update LSM303AGR_AccInit() API to correctly initialize the LSM303AGR BSP component: Fix wrong shift direction of init value for CTRL_REG4_A register.
    • I3G4250D Component: Update disclaimer to add reference to the new license agreement.
Projects
Name Version Release notes
Projects see Projects Release note for details release notes


Components

Note: The components in table below are changed versus the STM32CubeF3 V1.11.4 release:

Drivers
Name Version Release note
STM32F3xx CMSIS V2.3.8 release notes
STM32F3xx HAL V1.5.8 release notes
BSP STM32303C_EVAL V2.1.5 release notes
BSP STM32303E_EVAL V2.1.5 release notes
BSP STM32373C_EVAL V2.2.5 release notes
BSP Components lsm303agr V1.0.3 release notes
BSP Components i3g4250d V1.0.1 release notes

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.50.9+ ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.38 + ST-LINK, pack available here:
    • www.keil.com/dd2/Pack/ (Section : STMicroelectronics STM32F3 Series Device Support)
    • Only template projects are migrated to Arm Compiler 6 with MDK-ARM 5.31 (“AC-like Warnings” mode).
  • System Workbench for STM32 (SW4STM32) (7-2018-q2-update) toolchain V2.9.0 + ST-Link

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation.
  • All source files: update disclaimer to add reference to the new license agreement.

  • CMSIS updates
    • GCC start-up files updates
      • Alignment with IAR/MDK-ARM startup files: Update to call SystemInit first in startup/Reset_Handler()
    • STM32F301x8/STM32F302xC/STM32F303x8/STM32F318xx/STM32F328xx/STM32F358xx updates
      • TIM16_OR_TI1_RMP wrong defined value
  • HAL updates
    • HAL Generic update
      • Allow redefinition of macro UNUSED(x).
    • HAL RCC update
      • Add ‘static’ storage-class specifier to ‘const’ arrays.
    • HAL EXTI update
      • Fix computation of pExtiConfig->GPIOSel in HAL_EXTI_GetConfigLine()
    • HAL CRC update
      • Add filter in HAL_CRCEx_Polynomial_Set() to exclude even polynomials.
    • HAL ADC update
      • Remove multiple volatile reads or writes in interrupt handler for better performance.
    • HAL CEC update
      • Better performance by removing multiple volatile reads or writes in interrupt handler.
    • HAL SDADC
      • Better performance by removing multiple volatile reads or writes in interrupt handler.
    • HAL TIM update
      • Fix HAL_TIMEx_RemapConfig() lock issue: __HAL_LOCK is called before calls to assert_param().
    • LL TIM update
      • __LL_TIM_CALC_PSC() macro update to round up the evaluate value when the fractional part of the division is greater than 0.5.
      • Remove useless check on IS_TIM_ADVANCED_INSTANCE() within LL_TIM_BDTR_Init() to fix Break Filter configuration problem with specific TIM instances
    • HAL CAN update
      • Removal of never reached code
      • Improve protection against bad inputs
    • HAL TSC update
    • HAL RTC_BKP update
      • Use bits definitions from CMSIS Device header file instead of hard-coded values.
      • Wrap comments to be 80-character long and correct typos.
      • Move constants RTC_IT_TAMP. from hal_rtc.h to hal_rtc_ex.h.
      • Gather all instructions related to exiting the init mode into new function RTC_ExitInitMode().
      • Add new macro assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper->Filter, sTamper->Trigger)) to check tamper filtering is disabled in case tamper events are triggered on signal edges.
      • Rework functions HAL_RTCEx_SetTamper() and HAL_RTCEx_SetTamper_IT() to:
        • Write in TAFCR register in one single access instead of two.
        • Avoid modifying user structure sTamper.
      • Check if the RTC calendar has been previously initialized before entering initialization mode.
    • HAL NOR update
      • Align HAL_NOR_Init() API with core of the function when write operation is disabled to avoid HardFault.
      • FMC_WRITE_OPERATION_DISABLE for NOR cause Hardfault for Read operations
    • HAL UART update
      • Improve header description of UART_WaitOnFlagUntilTimeout() function
      • Add a check on the UART parity before enabling the parity error interruption.
      • Add const qualifier for read only pointers.
      • Fix wrong cast when computing the USARTDIV value in UART_SetConfig().
      • Add a new API HAL_UARTEx_GetRxEventType() that could be used to retrieve the type of event that has led the RxEventCallback() execution
      • Removal of HAL_LOCK/HAL_UNLOCK calls in HAL UART Tx and Rx APIs
      • Disable the Receiver Timeout Interrupt when data reception is completed.
      • Rework of UART_WaitOnFlagUntilTimeout() API to avoid being stuck forever when UART overrun error occurs and to enhance behavior.
    • HAL SMARTCARD update
      • Improve header description of SMARTCARD_WaitOnFlagUntilTimeout() function
      • Add const qualifier for read only pointers.
      • Fix wrong cast when computing the USARTDIV value in SMARTCARD_SetConfig().
    • HAL IRDA update
      • Improve header description of IRDA_WaitOnFlagUntilTimeout() function
      • Add a check on the IRDA parity before enabling the parity error interrupt.
      • Add const qualifier for read only pointers.
      • Fix wrong cast when computing the USARTDIV value in IRDA_SetConfig().
    • HAL USART update
      • Improve header description of USART_WaitOnFlagUntilTimeout() function
      • Add a check on the USART parity before enabling the parity error interrupt.
      • Add const qualifier for read only pointers.
    • LL USART update
      • Fix compilation warnings generated with ARMV6 compiler.
    • HAL SPI update
      • Fix driver to don’t update state in case of error. (HAL_SPI_STATE_READY will be set only in case of HAL_TIMEOUT).
    • HAL I2C update
      • Improve header description of I2C_WaitOnFlagUntilTimeout() function
      • Update I2C_TransferConfig() API to Fix written reserved bit 28 in I2C_CR2 register.
      • Update to handle errors in polling mode.
        • Rename I2C_IsAcknowledgeFailed() to I2C_IsErrorOccurred() and correctly manage when error occurs.
      • Update to fix issue detected due to low system frequency execution (HSI).
      • Declare an internal macro link to DMA macro to check remaining data: I2C_GET_DMA_REMAIN_DATA
      • Timeout issue using HAL MEM interface through FreeRTOS
      • I2C_IsErrorOccurred does not return error if timeout is detected.
      • Clear the ADDRF flag only when direction is confirmed as changed, to prevent that the ADDRF flag is cleared too early when the restart is received
    • HAL SMBUS update
      • Add flushing of TX register to fix issue of mismatching data received by master in case data size to be transmitted by the slave is greater than the data size to be received by the master.
    • HAL USB_FS update
      • PCD: add supporting multi packets transfer on Interrupt endpoint
      • HAL: PCD: software correction added to avoid unexpected STALL condition during EP0 multi packet OUT transfer.
      • hal_pcd.h: add a mask for USB RX bytes count
  • Project update
  • BSP update
    • General updates to fix known defects and implementation enhancements
    • All source files: update disclaimer to add reference to the new license agreement.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.40.2+ ST-Link
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31 + ST-LINK, pack available here:
    • www.keil.com/dd2/Pack/ (Section : STMicroelectronics STM32F3 Series Device Support)
    • Only template projects are migrated to Arm Compiler 6 with MDK-ARM 5.31 (“AC-like Warnings” mode).
  • System Workbench for STM32 (SW4STM32) (7-2018-q2-update) toolchain V2.9.0 + ST-Link

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation.

  • CMSIS updates
    • Added new atomic register access macros in stm32f3xx.h file.
    • Add LSI maximum startup time datasheet value: LSI_STARTUP_TIME.
    • STM32F334x8 updates
      • HRTIM: Add missing defines to reset all Slave Timer X
    • STM32F373xC/ STM32F378xx updates
      • Start-up files update to call COMP_IRQHandler instead of COMP1_2_IRQHandler
  • HAL updates
    • HAL GPIO driver
      • Update HAL_GPIO_Init() API to avoid the configuration of PUPDR register when Analog mode is selected.
    • HAL EXTI update
      • Update HAL_EXTI_GetConfigLine() API to set default configuration value of Trigger and GPIOSel before checking each corresponding registers.
    • LL/HAL ADC update
      • Update LL_ADC_DMA_GetRegAddr() API to prevent unused argument compilation warning.
      • Update HAL timeout mechanism to avoid false timeout detection in case of preemption.
    • LL/HAL DAC update
      • Remove ‘register’ storage class specifier from LL DAC driver.
    • LL/HAL TIM update
      • Corrected reversed description of TIM_LL_EC_ONEPULSEMODE One Pulse Mode.
      • Update HAL_TIMEx_OnePulseN_Start and HAL_TIMEx_OnePulseN_Stop (pooling and IT mode) to take into consideration all OutputChannel parameters.
      • Update input capture measurement in DMA mode to avoid zero return values at high frequencies.
    • HAL I2C update
      • Updated I2C_IsAcknowledgeFailed() API to avoid I2C in busy state if NACK received after transmitting register address.
    • HAL UART update
      • Fix erroneous UART’s handle state in case of error returned after DMA reception start within UART_Start_Receive_DMA().
      • Correction on UART ReceptionType management in case of ReceptionToIdle API are called from RxEvent callback
      • Handling of UART concurrent register access in case of race condition between Tx and Rx transfers (HAL UART and LL LPUART)
    • HAL CAN update
      • Update HAL_CAN_Init() API to be aligned with STM32F3 documentation and to avoid timeout error:
        • Update CAN Initialization sequence to set “request initialization” bit before exit from sleep mode.
    • LL FMC update
      • Fix compilation warning with gcc -Wpedantic compiler option.
    • HAL SPI update
      • Updated to fix MISRA-C 2012 Rule-13.2.
      • Updated to set the FRXTH bit for 8bit data in LL_SPI_Init() API.
      • Update LL_SPI_TransmitData8() API to avoid casting the result to 8 bits.
    • HAL I2S update
      • Update I2SEx APIs to correctly support circular transfers:
        • Update I2SEx_TxRxDMACplt() API to manage DMA circular mode.
        • Update HAL_I2SEx_TransmitReceive_DMA() to enhance HAL I2S driver robustness:
          • Remove DMA TX transfer complete and half complete callback initialization.
    • HAL IWDG update
      • Updated HAL_IWDG_Init() API in order to fix HAL_GetTick() timeout vulnerability issue.
    • HAL RTC update
      • Update __HAL_RTC_…(__HANDLE__, …) macros to access registers through (__HANDLE__)->Instance pointer and avoid “unused variable” warnings.
      • Correct month management in IS_LL_RTC_MONTH() macro
    • LL USART update
      • Remove useless check on maximum BRR value by removing IS_LL_USART_BRR_MAX() macro.
      • Handling of UART concurrent register access in case of race condition between Tx and Rx transfers (HAL UART and LL LPUART)
    • HAL NAND update
      • Update implementation of “HAL_NAND_Read_SpareArea_16b” and “HAL_NAND_Write_SpareArea_16b” to fix an issue with the spare area Column address calculation
      • Update implementation of “HAL_NAND_Write_Page_16b” and “HAL_NAND_Read_Page_16b” APIs implementation to fix an issue with the page calculation of 8 bits memories
    • HAL USB_FS update
      • HAL PCD: add fix transfer complete for IN Interrupt transaction in single buffer mode
      • Race condition in USB PCD control endpoint receive ISR.
  • Project update
    • General updates to fix compilation warnings with gcc v9.
    • Updated examples and applications to avoid clearing DMA using global flag GIFx.
  • BSP update
    • Add License.md file required for GitHub publication.
    • Add Release Note resource: htmresc folder.

Contents

Maintenance release

Main Changes

  • Patch release to fix known defects and enhancements implementation.
  • Remove “register” keyword to be compliant with new C++ rules:
    • The register storage class specifier was deprecated in C++11 and removed in C++17
  • Updates to fix MISRA C / Code Sonar rules compliance.

  • CMSIS
    • system_stm32f3xx.c
      • Protect Vector table modification following SRAM or FLASH preprocessor directive by a generic preprocessor directive : USER_VECT_TAB_ADDRESS
    • Add License.md and Readme.md files required for GitHub publication
    • Improve GCC startup files robustness.
  • HAL
    • HAL driver update
      • Update hal_def.h to support new ARM compiler Keil V6.
      • Update HAL TimeBase TIM, RTC alarm and RTC WakeUp templates for more robustness
        • Update HAL_InitTick() API to properly store the priority when using the non-default time base.
      • Add new defines for ARM compiler V6:
        • __weak
        • __packed
        • __NOINLINE
      • Remove compile switch “USE_HAL_LEGACY” on #include “Legacy/stm32_hal_legacy.h”
    • HAL/LL ADC update
      • Update HAL_ADC_IRQHandler() API for case of injected conversion with software trigger and end of conversion or sequence triggered
        • disable interruption and update state machine.
      • Update HAL_ADC_Stop_DMA() API to check if DMA state is Busy before calling HAL_DMA_Abort() API to avoid DMA internal error.
      • Update LL_ADC_REG_Init() API to avoid enabling continuous mode and discontinuous mode simultaneously.
      • Support missing trigger Timer 2 Capture Compare 2 of regular source for STM32F301, STM32F302 and STM32F318:
        • Add LL_ADC_REG_TRIG_EXT_TIM2_CH2 in LL driver and ADC_EXTERNALTRIGCONV_T2_CC2 in HAL driver
      • fix codesonar warning: “Negative Shift Amount”
        • impacted API:
          • LL_ADC_REG_SetSequencerRanks
          • LL_ADC_REG_GetSequencerRanks
          • LL_ADC_INJ_SetSequencerRanks
          • LL_ADC_INJ_GetSequencerRanks
      • Update comment to clarify the “How to use low power mode”
    • LL COMP update
      • Fix wrong Value for:
        • LL_COMP_OUTPUT_TIM3_IC1_COMP2
        • LL_COMP_OUTPUT_TIM3_IC1_COMP1_2
    • LL OPAMP update
      • fix wrong description comments for:
        • LL_OPAMP_INPUT_NONINVERT_IO2
        • LL_OPAMP_INPUT_NONINVERT_IO3
    • HAL CEC update
      • Update HAL_CEC_IRQHandler() API to avoid appending an extra byte to the end of message.
    • HAL RTC update
      • Update to support Daylight Saving Time (DST) feature:
        • Subtract or add one hour to the calendar can now be handled outside HAL_RTC_SetTime() thanks to new APIs.
          • HAL_RTC_DST_Add1Hour() API to add one hour to the calendar
          • HAL_RTC_DST_Sub1Hour() API to subtract one hour from the calendar
          • HAL_RTC_DST_SetStoreOperation() API to set the store operation bit
          • HAL_RTC_DST_ClearStoreOperation() API to clear the store operation bit
          • HAL_RTC_DST_ReadStoreOperation() API to read the store operation bit
        • DayLightSaving and StoreOperation interfaces from RTC_TimeTypeDef type are now deprecated.
    • HAL/LL SPI update
      • Update Transmit/Receive processes in half-duplex mode
      • Disable the SPI instance before setting BDIOE bit
      • Disable TX DMA request only in bidirectional receive mode
      • Fix wrong timeout management
        • Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled
      • Update HAL_SPI_Init() API
        • To avoid setting the BaudRatePrescaler in case of Slave Motorola Mode
        • Use the bit-mask for SPI configuration
    • LL I2S update
      • Update LL_I2S_Init() API to correctly calculate sourceclock which used for bitrate calculation.
      • Update HAL_I2S_DMAStop() API to be more safe
        • Add a check on BSY, TXE and RXNE flags before disabling the I2S
      • Update HAL_I2S_DMAStop() API to fix multi-call transfer issue(to avoid re-initializing the I2S for the next transfer).
        • Add __HAL_I2SEXT_FLUSH_RX_DR() and __HAL_I2S_FLUSH_RX_DR() macros to flush the remaining data inside DR registers.
        • Add new ErrorCode define: HAL_I2S_ERROR_BUSY_LINE_RX
    • HAL NOR update
      • Update address calculation in HAL_NOR_ProgramBuffer()
      • Apply adequate commands according to the command set field value
        • command set 1 for Micron JS28F512P33
        • command set 2 for Micron M29W128G and Cypress S29GL128P
      • Add new commands operations:
        • NOR_CMD_READ_ARRAY
        • NOR_CMD_WORD_PROGRAM
        • NOR_CMD_BUFFERED_PROGRAM
        • NOR_CMD_CONFIRM
        • NOR_CMD_BLOCK_ERASE
        • NOR_CMD_BLOCK_UNLOCK
        • NOR_CMD_READ_STATUS_REG
        • NOR_CMD_CLEAR_STATUS_REG
      • Update some APIs in order to be compliant for memories with another command set.
        • HAL_NOR_Init()
        • HAL_NOR_Read_ID()
        • HAL_NOR_ReturnToReadMode()
        • HAL_NOR_Read()
        • HAL_NOR_Program()
        • HAL_NOR_ReadBuffer()
        • HAL_NOR_ProgramBuffer()
        • HAL_NOR_Erase_Block()
        • HAL_NOR_Erase_Chip()
        • HAL_NOR_GetStatus()
    • HAL HRTIM update
      • Update HAL_HRTIM_DLLCalibrationStart() and HAL_HRTIM_DLLCalibrationStart_IT() to set the handler state back to “READY” before exiting.
    • HAL TSC update
      • Update the HAL_TSC_Init() API to add new check condition on “PulseGeneratorPrescaler” Parameter.
    • HAL/LL TIM update
      • Update Encoder input interface to don’t allow both input polarity configuration
        • Replace IS_TIM_IC_POLARITY() macro by IS_TIM_ENCODERINPUT_POLARITY() macro.
      • Update to allow multiple DMA request with different channels in parallel:
        • Implement DMA burst state management mechanism
        • Implement TIM channel state management mechanism
      • Correct inverted values of LL_TIM_COUNTERMODE_CENTER_DOWN and LL_TIM_COUNTERMODE_CENTER_UP
      • Update LL_TIM_GetCounterMode() API to return right counter mode.
      • Add LL_TIM_IsActiveUIFCPY inline function to indicate whether update interrupt flag (UIF) copy is set or not.
    • HAL/LL SMARTCARD update
      • Update smartcard transmit processes to be able to handle data retransmission when NACK is received in smartcard T=0
    • HAL/LL IRDA update
      • Fix typos in IRDA State definition description
    • HAL/LL UART update
      • Update to enhance reception to idle services (ReceptionToIdle):
        • Add a new field HAL_UART_RxTypeTypeDef structure to the UART_HandleTypeDef structure to identify the type of ongoing Reception
        • Add UART Reception Event Callback registration features
        • Add a set of APIs specific to Reception to Idle transfer in different mode
          • Add HAL_UARTEx_ReceiveToIdle API to receive an amount of data in blocking mode till either the expected number of data is received or an IDLE event occurs.
          • Add HAL_UARTEx_ReceiveToIdle_IT() API to receive an amount of data in interrupt mode till either the expected number of data is received or an IDLE event occurs.
          • Add HAL_UARTEx_ReceiveToIdle_DMA() API to receive an amount of data in DMA mode till either the expected number of data is received or an IDLE event occurs.
        • Update HAL_UART_Receive(), HAL_UART_Receive_IT() and HAL_UART_Receive_DMA() APIs to support the new enhancement of ReceptionToIdle
      • Update HAL_UART_IRQHandler() to handle receiver timeout interruption
      • Update UART receive processes (IT & DMA) to handle the UART receive timeout interruption
      • Move the process unlock at the top of the HAL_UART_Receive() and HAL_UART_Transmit() API.
      • Fix typos in UART State definition description
    • HAL/LL USART update
      • Add RTO (Receiver Time Out) support to USART HAL flags and IT management
        • Add HAL_USART_ERROR_RTO define of Receiver Timeout error to the USART Error Definition section
        • Add USART_FLAG_RTOF define of Receiver Timeout flag to the USART Flags section
        • Add USART_CLEAR_RTOF define of Receiver Timeout clear flag to the USART Clear Flags section
        • Update HAL_USART_IRQHandler to add support to the Receiver Timeout Interruption
    • HAL IWDG update
      • Update HAL_IWDG_DEFAULT_TIMEOUT define value to consider LSI value instead of hardcoded value.
    • LL UTILS update
      • UTILS_SetFlashLatency() API renamed to LL_SetFlashLatency() and set exportable.
  • BSP
    • Add new MEMS I3G4250D component support for STM32F3-Discovery board.
    • Add new MEMS LSM303AGR component support for STM32F3-Discovery board.
    • Update stm32f3_discovery_accelerometer driver to support new LSM303AGR component.
    • Update stm32f3_discovery_gyroscope to support new I3G4250D component.
  • Projects
    • STM32F3-Discovery:
      • Update Demo and BSP example to support new MEMS I3G4250D and LSM303AGR.
    • Update All MDK-ARM Templates projects to support new ARM compiler V6.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.22.2 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.26 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.9 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • General updates to fix known defects and enhancements implementation.

  • HAL
    • HAL/LL GPIO update
      • Update GPIO initialization sequence to avoid unwanted pulse on GPIO Pin’s.
      • Update HAL_GPIO_TogglePin() API to allow the toggling of many pins.
      • HAL_GPIO_TogglePin reentrancy robustness improvement by using BSRR register instead of ODR register.
    • HAL/LL I2C update
      • Update HAL_I2C_ER_IRQHandler() API to fix acknowledge failure issue with I2C memory IT processes
        • Add stop condition generation when NACK occurs.
      • Update I2C_DMAXferCplt(), I2C_DMAError() and I2C_DMAAbort() APIs to fix hardfault issue when hdmatx and hdmarx parameters in i2c handle aren’t initialized (NULL pointer).
        • Add additional check on hi2c->hdmtx and hi2c->hdmarx before resetting DMA Tx/Rx complete callbacks
      • Update Sequential transfer APIs to adjust xfermode condition.
        • Replace hi2c->XferCount < MAX_NBYTE_SIZE by hi2c->XferCount <= MAX_NBYTE_SIZE which corresponds to a case without reload
    • HAL/LL USB driver
      • Bug fix: USB_ReadPMA() and USB_WritePMA() by ensuring 16-bits access to USB PMA memory
      • Bug fix: correct USB RX count calculation
      • Fix USB Bulk transfer double buffer mode
      • Remove register keyword from USB defined macros as no more supported by C++ compiler
      • Minor rework on USBD_Start() and USBD_Stop() APIs: stopping device will be handled by HAL_PCD_DeInit() API.
      • Remove non used API for USB device mode.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.22.2 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.26 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.9 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • General updates to fix known defects and enhancements implementation
  • Add support of HAL callback registration feature
  • Add new HAL EXTI driver
  • The following changes done on the HAL drivers require an update on the application code based on older HAL versions
    • HAL/LL Generic update
      • Add support of HAL callback registration feature
        • The feature disabled by default is available for the following HAL drivers:
          • ADC, CAN, COMP, CEC, DAC, SMBUS, HRTIM, I2C, UART, USART, SRAM, NAND, NOR, PCCARD, WWDG, OPAMP, RTC, SDADC, SPI, SMARTCARD, IrDA, I2S, TIM, TSC and PCD
        • The feature may be enabled individually per HAL PPP driver by setting the corresponding definition USE_HAL_PPP_REGISTER_CALLBACKS to 1U in stm32f3xx_hal_conf.h project configuration file (template file stm32f3xx_hal_conf_template.h available from Drivers/STM32F3xx_HAL_Driver/Inc)
        • Once enabled , the user application may resort to HAL_PPP_RegisterCallback() to register specific callback function(s) and unregister it(them) with HAL_PPP_UnRegisterCallback()
  • Demonstrations binaries are no more delivered within the STM32CubeF3 MCU package. They are available for download, in addition to their required media files if any, in a standalone package accessible through each hardware board official web page. Please refer to the corresponding demonstration binary readme.txt to get web page for each board.

  • HAL
    • Add support of HAL callback registration feature
    • Add new HAL EXTI driver
    • Here below the new features introduced on HAL drivers
      • Add support of I2C repeated start feature in DMA Mode With the following new APIs
        • HAL_I2C_Master_Seq_Transmit_DMA()
        • HAL_I2C_Master_Seq_Receive_DMA()
        • HAL_I2C_Slave_Seq_Transmit_DMA()
        • HAL_I2C_Slave_Seq_Receive_DMA()
  • CMSIS
    • Fix known defects and several implementation enhancement
  • BSP
    • Add support of new HX8347I component
    • Update stm32373c_eval_lcd.c to support new HX8347I component
  • Middleware
    • Update to use FreeRTOS V10.0.1 ST modified 20190329
    • Update to use TouchSensing Library V2.2.4
    • Update to use STemWin V5.44 ST modified 20180322
    • Update to use USB Device Library V2.5.3
  • Projects
    • Update HAL I2C examples to be compliant with new I2C API
    • Update HAL TIM examples to be compliant with new TIM API
    • Update HAL IWDG examples to be compliant with new HAL_TIMEx_RemapConfig() API
    • Update HAL HRTIM examples to be compliant with new HRTIM API
    • Update STemWin applications to be compliant with new STemWin architecture
    • Update USB Device projects to be compliant with USB Device V2.5.3
      • Update USB device applications by adding a UNUSED() macro in the following API on file usbd_desc.c files in order to avoid compilation warnings with EWARM 8.30
        • USBD_DFU_DeviceDescriptor()
        • USBD_DFU_LangIDStrDescriptor()
        • USBD_DFU_ManufacturerStrDescriptor()
        • USBD_DFU_SerialStrDescriptor()
      • Remove useless setting of ep0_mps in usbd_conf.c file for USB device applications
      • Remove led toggle behavior inside systick handler API
    • Update FreeRTOS applications to be compliant with FreeRTOS V10.0.1
      • update to use new FreeRTOSConfig.h template file
    • Update TouchSensing applications to be compliant with new TouchSensing version
      • tsl_user.c: Add error management in tsl_user_Exec() API
  • For the complete list of changes, please refer to the release notes of each firmware component

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V8.22.2 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.26 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.9 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • The following changes done on the HAL drivers require an update on the application code based on older HAL versions
    • CAN driver API’s compatibility is broken
      • A new HAL CAN driver has been redesigned with new APIs, to bypass limitations on CAN Tx/Rx FIFO management present with previous HAL CAN driver version.
      • The new HAL CAN driver is the recommended version. It is located as usual in Drivers/STM32F3xx_HAL_Driver/Src and Drivers/STM32F3xx_HAL_Driver/Inc folders. It can be enabled through switch HAL_CAN_MODULE_ENABLED in stm32f3xx_hal_conf.h
      • The legacy HAL CAN driver is also present in the release in Drivers/STM32F3xx_HAL_Driver/Src/Legacy and Drivers/STM32F3xx_HAL_Driver/Inc/Legacy folders for software compatibility reasons. Its usage is not recommended as deprecated. It can however be enabled through switch HAL_CAN_LEGACY_MODULE_ENABLED in stm32f3xx_hal_conf.h
  • Drivers
    • Fix known defects and several enhancements implementation.
    • HAL CAN driver has been redesigned with new APIs.
  • Projects
    • Update CAN examples to support new HAL CAN driver.
    • Update stm32f3xx_hal_conf.h by adding switch HAL_CAN_LEGACY_MODULE_ENABLED.
  • CMSIS
    • Fix known defects and several enhancements implementation.
  • For the complete list of changes, please refer to the release notes of each firmware component

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.0 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix issues in HAL/LL drivers

Contents

Drivers
Name Version License Release note
STM32F3xx HAL V1.5.1 BSD-3-Clause release notes

Maintenance release

Main Changes

  • Drivers
    • Fix known defects and several enhancements implementation. Major ones are :
      • MISRA C / Code Sonar rules compliance.
      • NAND : overall driver rework in order to support NAND flash memories with higher capacities.
      • TIMER : improvement of TIM DMA burst mode.
      • I2S : fix full duplex I2S with circular DMA issues.
      • CAN : overall driver rework to fix several issues (transmission abort when timeout, message lost issue with specific sequence…) and provide improvements : Extend SET_BIT, CLEAR_BIT macro usage, Add management of overrun error.
    • The following changes done on the HAL drivers require an update on the application code based on HAL V1.4.0
      • HAL NAND driver: Overall driver rework with compatibility break versus previous HAL version (see below).
  • BSP
    • Improvement of Doxygen Tags for CHM UM generation.
  • Projects
    • All projects updated following changes in latest version of HAL.
    • General updates to be compliant with Linux platforms
    • Remove support of Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain.
    • Align stm32f3xx_hal_conf.h with latest template defined in HAL.
    • Change assert_failed() prototype to be compliant with MISRA C rule 11.4

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V2.0 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Middlewares FreeRTOS
    • Upgrade to use FreeRTOS V9.0.0 (ST Modified 20170303).
    • Update CMSIS-RTOS drivers to support both CMSIS Core V4.x and V5.x.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.80.4 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.23 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.4.2 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.13.1 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Drivers
    • Fix known defects and several enhancements implementation.
    • Enhance HAL delay and time base implementation:
      • Add new templates stm32f3xx_hal_timebase_rtc_alarm_template.c, stm32f3xx_hal_timebase_rtc_wakeup_template.c and stm32f3xx_hal_timebase_tim_template.c which can be used to override the native HAL time base functions (defined as weak) to use either RTC or Timer as time base tick source. For more details about the usage of these drivers, please refer to HAL_TimeBase examples and FreeRTOS-based applications
    • The following changes done on the HAL drivers require an update on the application code based on HAL V1.3.0
      • 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() API 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 TIM driver : add one field (AutoReloadPreload) in TIM_Base_InitTypeDef structure
  • BSP
    • Remove BSP/CEC driver. Refer to HAL driver for CEC.
  • Projects
    • All projects updated following changes in latest version of HAL and Middlewares.
    • Added new projects HAL_TimBase to illustrate how to customize the HAL time base driver :
      • HAL_TimeBase_RTC_ALARM
      • HAL_TimeBase_RTC_WKUP
      • HAL_TimeBase_TIM (modified and renamed previous HAL_TimeBase)
    • Added new projects LL_Template to provide a reference project through the LL API that can be used to build any firmware application
  • Middlewares STemWin
    • Upgrade to use STemWinLibrary 5.32 (build 20160205)
    • Upgrade to use FreeRTOS V9.0.0 (ST Modified 20160930)

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.60.4 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.21 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.4.2 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.10 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • First official release introducing the STM32Cube LL (Low Layer) APIs for the STM32F3xx series :
    • Low Layer drivers APIs allow performance and memory footprint optimization, with register access level programming.
    • Examples available on the STM32F302R8-Nucleo, STM32F334R8-Nucleo, STM32F303ZE-Nucleo and STM32F3348-Discovery Boards are provided in order to describe how to use the Low Level drivers.
  • Drivers
    • Fix known defects and several enhancements implementation.
  • Projects
    • All projects updated following changes in latest version of HAL and Middlewares.
    • Added new projects LL + MIX
      • LL examples: ADC, COMP, CORTEX, CRC, DMA, EXTI, GPIO, HRTIM, I2C, IWDG, PWR, RCC, RTC, SPI, TIM, USART, WWDG
      • HAL/LL examples: ADC, CRC, DMA, I2C, OPAMP, PWR, TIM, UART

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.60.1 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.4.2 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.8.0 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • HAL
    • Fix known defects and several enhancements implementation.
  • BSP
    • Aligned BSP drivers to use latest BSP components.
  • Projects
    • All projects updated following changes in latest version of HAL and Middlewares.
    • Added new projects I2C: to introduce I2C repeated start feature.
      • I2C_TwoBoards_RestartAdvComIT
      • I2C_TwoBoards_RestartComIT
    • Added new projects CRC:
      • CRC_Bytes_Stream_7bit_CRC: to illustrate the usage Input/Output options CRC calculation.
      • CRC_Data_Reversing_16bit_CRC: to illustrate input/output data reversal features.
    • Added new projects TouchSensing: using the STMTouch driver in Interrupt mode.
      • TouchSensing/TouchSensing_Linear_IT
        • TouchSensing/TouchSensing_2touchkeys_IT
  • CMSIS
    • Upgrade to CMSIS version 4.5.0.
  • Middlewares FreeRTOS
    • Upgrade to use FreeRTOS V8.2.3 (ST modified 20160122).
    • Provided fixes for minor issues in cmsis_os.c and FreeRTOS.h files.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.50.1 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.17 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.4.2 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.8.0 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • All projects updated following changes in latest version of HAL and Middlewares.
  • Fix known defects and several enhancements implementation.
  • HAL
    • Maintenance.
    • Performed HAL API alignment (macros/functions/constants renaming).
  • BSP
    • Maintenance.
    • Adding the new board STM32F3xx_Nucleo_144.
  • 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 project to emulate EEPROM on internal Flash :
      • EEPROM_Emulation (refer to AN2594 for further details)
    • Adding new projects to configure HRTIM :
      • HRTIM_LLC_HalfBridge (control a half-bridge LLC converter with synchronous rectification)
      • HRTIM_Multiphase (control a multiphase buck converter)
    • Adding new projects using In-Application Programming (IAP) through USART (refer to AN4045 for further details) :
      • IAP_Main
      • IAP_Binary_Template
    • Provided extended set of projects on board STM32F3xx_Nucleo_32.
    • Provided extended set of projects on board STM32F3xx_Nucleo_144.
  • Middlewares FatFs
    • Upgrade to use FatFs R0.11 ST modified 20150508.
    • 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.
  • Middlewares FreeRTOS
    • Upgrade to use FreeRTOS V8.2.1
    • No changes in file naming/set of sources files.
    • 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.
  • Middlewares 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.
  • CMSIS
    • CMSIS-CORE 4.10.0. Maintenance release adding SAI CMSIS-Driver and fixing defects.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.40.1 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.16 + ST-LINK
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.1.1 + ST-LINK
  • System Workbench for STM32 (SW4STM32) toolchain V1.4.0 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC), STM32F303RE-Nucleo
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB), STM32303E-EVAL
  • Nucleo32 boards: STM32F303K8-Nucleo
  • Nucleo144 boards: STM32F303ZE-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Add support of Nucleo32 Board (STM32F303K8-NUCLEO).
  • BSP
    • Add the new board STM32F3xx_Nucleo_32.
  • Projects
    • A template project is added to easily start any development on this new board.
    • Basic example (GPIO_IOToggle) is provided to easily start new development on these board.
    • A demonstration using the Gravitech 7segments 4digits shield is added to provide sample code on how to display a counter on this shield.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.30.1 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.11 + 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

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC)
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB)
  • STM32F303RE-Nucleo
  • STM32303E-EVAL
  • STM32F303K8-Nucleo

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Add support of System Workbench for STM32 (SW4STM32) toolchain.
  • HAL
    • Fixed compilation warnings reported by TrueSTUDIO and SW4STM32 toolchains.
  • Middlewares
    • No changes.
  • BSP
    • Fixed compilation warnings reported by TrueSTUDIO and SW4STM32 toolchains.
  • Projects
    • Add projects for SW4STM32 toolchain.

Contents

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.30 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.11 + 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

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC)
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB)
  • STM32F303RE-Nucleo
  • STM32303E-EVAL

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Patch release to fix BSP drivers compilation issue under Linux, this is done by changing “" by”/" in the include path
  • This package contains a fixed version of the impacted BSP drivers, user needs simply to overwrite the old folders with the new ones:
    • BSP Adafruit_Shield
    • BSP Components Common
    • BSP Components cs42l52
    • BSP Components cs43l22
    • BSP Components hx8347d
    • BSP Components hx8347g
    • BSP Components ili9328
    • BSP Components l3gd20
    • BSP Components lsm303dlhc
    • BSP Components spfd5408
    • BSP Components st7735
    • BSP Components stlm75
    • BSP Components stts751
    • BSP STM32303C_EVAL
    • BSP STM32303E_EVAL
    • BSP STM32373C_EVAL
    • BSP STM32F3-Discovery

Contents

Drivers
Name Version License Release note
BSP STM32303C_EVAL V2.0.1 BSD-3-Clause release notes
BSP STM32303E_EVAL V2.0.1 BSD-3-Clause release notes
BSP STM32373C_EVAL V2.0.1 BSD-3-Clause release notes
BSP STM32F3-Discovery V2.1.1 BSD-3-Clause release notes
BSP Adafruit Shield V1.1.1 BSD-3-Clause release notes
BSP Common V1.2.1 BSD-3-Clause release notes
BSP l3gd20 V1.1.1 BSD-3-Clause release notes
BSP lsm303dlhc V1.0.1 BSD-3-Clause release notes
BSP cs43l22 V1.0.1 BSD-3-Clause release notes
BSP hx8347d V1.0.1 BSD-3-Clause release notes
BSP hx8347g V1.0.1 BSD-3-Clause release notes
BSP ili9328 V1.0.1 BSD-3-Clause release notes
BSP spfd5408 V1.0.1 BSD-3-Clause release notes
BSP stts751 V1.0.1 BSD-3-Clause release notes
BSP cs42l52 V1.0.1 BSD-3-Clause release notes
BSP stlm75 V1.0.1 BSD-3-Clause release notes
BSP st7735 V1.0.1 BSD-3-Clause release notes

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.30 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.11 + 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

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC)
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB)
  • STM32F303RE-Nucleo
  • STM32303E-EVAL

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Official release of STM32CubeF3 (added STM32F302xE/STM32F303xE/STM32F398xx)

Contents

Drivers
Name Version License Release note
CMSIS V3.20 BSD-3-Clause release notes
STM32F3xx CMSIS V2.1.0 BSD-3-Clause release notes
STM32F3xx HAL V1.1.0 BSD-3-Clause release notes
BSP STM32303C_EVAL V2.0.1 BSD-3-Clause release notes
BSP STM32303E_EVAL V2.0.1 BSD-3-Clause release notes
BSP STM32373C_EVAL V2.0.1 BSD-3-Clause release notes
BSP STM32F3-Discovery V2.1.1 BSD-3-Clause release notes
BSP STM32F3348-Discovery V2.0.0 BSD-3-Clause release notes
BSP STM32F3xx-Nucleo V1.1.0 BSD-3-Clause release notes
BSP Common V1.1.0 BSD-3-Clause release notes
BSP l3gd20 V1.0.0 BSD-3-Clause release notes
BSP lsm303dlhc V1.0.0 BSD-3-Clause release notes
BSP cs43l22 V1.0.0 BSD-3-Clause release notes
BSP hx8347d V1.0.0 BSD-3-Clause release notes
BSP hx8347g V1.0.0 BSD-3-Clause release notes
BSP ili9328 V1.0.0 BSD-3-Clause release notes
BSP spfd5408 V1.0.0 BSD-3-Clause release notes
BSP stts751 V1.0.0 BSD-3-Clause release notes
BSP cs42l52 V1.0.0 BSD-3-Clause release notes
BSP stlm75 V1.0.0 BSD-3-Clause release notes
BSP st7735 V1.0.0 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.2.0 SLA0044 release notes
STM32 TouchSensing Library V2.0.0 SLA0044 release notes
FatFS R0.10 BSD-3-Clause release notes ST modified 20140422 release notes
FreeRTOS V7.6.0 MIT release notes ST modified 20140613 release notes
STemWin Library 5.24 SLA0044 release notes ST modified 20140613
Utilities
Name Version License Release note
CPU V1.0.0 BSD-3-Clause release notes
Fonts V1.0.0 BSD-3-Clause release notes
Log V1.0.0 BSD-3-Clause release notes

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.10 + 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

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery (RevB)
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo (RevC)
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL (RevB)
  • STM32F303RE-Nucleo
  • STM32303E-EVAL

Backward Compatibility

  • None

Dependencies

  • None

Maintenance release

Main Changes

  • Official release of STM32CubeF3 (added STM32F302xE/STM32F303xE/STM32F398xx)

Contents

Drivers
Name Version License Release note
CMSIS V3.20 BSD-3-Clause release notes
STM32F3xx CMSIS V2.0.1 BSD-3-Clause release notes
STM32F3xx HAL V1.0.1 BSD-3-Clause release notes
BSP STM32303C_EVAL V2.0.0 BSD-3-Clause release notes
BSP STM32303E_EVAL V2.0.0 BSD-3-Clause release notes
BSP STM32373C_EVAL V2.0.0 BSD-3-Clause release notes
BSP STM32F3-Discovery V2.1.0 BSD-3-Clause release notes
BSP STM32F3348-Discovery V2.0.0 BSD-3-Clause release notes
BSP STM32F3xx-Nucleo V1.0.1 BSD-3-Clause release notes
BSP Common V1.1.0 BSD-3-Clause release notes
BSP l3gd20 V1.0.0 BSD-3-Clause release notes
BSP lsm303dlhc V1.0.0 BSD-3-Clause release notes
BSP cs43l22 V1.0.0 BSD-3-Clause release notes
BSP hx8347d V1.0.0 BSD-3-Clause release notes
BSP hx8347g V1.0.0 BSD-3-Clause release notes
BSP ili9328 V1.0.0 BSD-3-Clause release notes
BSP spfd5408 V1.0.0 BSD-3-Clause release notes
BSP stts751 V1.0.0 BSD-3-Clause release notes
BSP cs42l52 V1.0.0 BSD-3-Clause release notes
BSP stlm75 V1.0.0 BSD-3-Clause release notes
BSP st7735 V1.0.0 BSD-3-Clause release notes
Middlewares
Name Version License Release note
STM32 USB Device Library V2.2.0 SLA0044 release notes
STM32 TouchSensing Library V2.0.0 SLA0044 release notes
FatFS R0.10 BSD-3-Clause release notes ST modified 20140422 release notes
FreeRTOS V7.6.0 MIT release notes ST modified 20140613 release notes
STemWin Library 5.24 SLA0044 release notes ST modified 20140613
Utilities
Name Version License Release note
CPU V1.0.0 BSD-3-Clause release notes
Fonts V1.0.0 BSD-3-Clause release notes
Log V1.0.0 BSD-3-Clause release notes

Known Limitations

  • None

Development Toolchains and Compilers

  • IAR Embedded Workbench for ARM (EWARM) toolchain V7.10 + ST-LINK
  • RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.10 + ST-LINK
    • Software patches are needed to use STM32F302x8 and STM32F334x8 devices. If you do not have this patch installed, you can install it from the following folders _Software-ARM_STM32F302x8_Patch and _Software-ARM_STM32F334x8_Patch
  • Atollic TrueSTUDIO STM32 (TrueSTUDIO) toolchain V5.0.0 + ST-LINK

Supported Devices and EVAL boards

  • All STM32F3x1, STM32F3x2, STM32F3x3, STM32F3x4 and STM32F3x8 product lines devices are supported.
  • Discovery boards: STM32F3-Discovery (RevB), STM32F3348-Discovery RevB
  • Nucleo boards: STM32F302R8-Nucleo, STM32F334R8-Nucleo RevC
  • Evaluation boards: STM32303C-EVAL (RevC), STM32373C-EVAL RevB

Backward Compatibility

  • None

Dependencies

  • None