<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>Release Notes for STM32F0xx HAL Drivers</title>
  <style>
      code{white-space: pre-wrap;}
      span.smallcaps{font-variant: small-caps;}
      span.underline{text-decoration: underline;}
      div.column{display: inline-block; vertical-align: top; width: 50%;}
  </style>
  <link rel="stylesheet" href="_htmresc/mini-st.css" />
  <!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
  <![endif]-->
</head>
<body>
<div class="row">
<div class="col-sm-12 col-lg-4">
<div class="card fluid">
<div class="sectione dark">
<center>
<h1 id="release-notes-for-stm32f0xx-hal-drivers"><strong>Release Notes for STM32F0xx HAL Drivers</strong></h1>
<p>Copyright © 2016 STMicroelectronics<br />
</p>
<a href="https://www.st.com" class="logo"><img src="../../_htmresc/st_logo.png" alt="ST logo" /></a>
</center>
</div>
</div>
<h1 id="license"><strong>License</strong></h1>
This software component is licensed by ST under BSD 3-Clause license, the “License”; You may not use this component except in compliance with the License. You may obtain a copy of the License at:
<center>
<a href="https://opensource.org/licenses/BSD-3-Clause">https://opensource.org/licenses/BSD-3-Clause</a>
</center>
</div>
<div class="col-sm-12 col-lg-8">
<h1 id="update-history"><strong>Update History</strong></h1>
<div class="collapse">
<input type="checkbox" id="collapse-section1_7_4" checked aria-hidden="true"> <label for="collapse-section1_7_4" aria-hidden="true"><strong>V1.7.4 / 24-July-2020</strong></label>
<div>
<h2 id="main-changes">Main Changes</h2>
<ul>
<li>Maintenance release to fix known defects and enhancements implementation</li>
<li><strong>HAL Drivers changes</strong>
<ul>
<li><strong>HAL/LL GPIO</strong> update
<ul>
<li>Update GPIO initialization sequence to avoid unwanted pulse on GPIO Pin’s</li>
<li>Update HAL_GPIO_TogglePin() API to allow the toggling of many pins</li>
</ul></li>
<li><strong>HAL/LL I2C</strong> update
<ul>
<li>Update HAL_I2C_ER_IRQHandler() API to fix acknowledge failure issue with I2C memory IT processes
<ul>
<li>Add stop condition generation when NACK occurs.</li>
</ul></li>
<li>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).
<ul>
<li>Add additional check on hi2c-&gt;hdmtx and hi2c-&gt;hdmarx before resetting DMA Tx/Rx complete callbacks</li>
</ul></li>
<li>Update Sequential transfer APIs to adjust xfermode condition.
<ul>
<li>Replace hi2c-&gt;XferCount &lt; MAX_NBYTE_SIZE by hi2c-&gt;XferCount &lt;= MAX_NBYTE_SIZE which corresponds to a case without reload</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL USB</strong> driver
<ul>
<li>Bug fix: USB_ReadPMA() and USB_WritePMA() by ensuring 16-bits access to USB PMA memory</li>
<li>Bug fix: correct USB RX count calculation</li>
<li>Fix USB Bulk transfer double buffer mode</li>
<li>Remove register keyword from USB defined macros as no more supported by C++ compiler</li>
<li>Minor rework on USBD_Start() and USBD_Stop() APIs: stopping device will be handled by HAL_PCD_DeInit() API.</li>
<li>Remove non used API for USB device mode.</li>
</ul></li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_7_3" aria-hidden="true"> <label for="collapse-section1_7_3" aria-hidden="true"><strong>V1.7.3 / 12-September-2019</strong></label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<ul>
<li>General updates to fix known defects and enhancements implementation</li>
<li>Add support of HAL callback registration feature</li>
<li>Add new <strong>HAL EXTI</strong> driver</li>
<li><strong>The following changes done on the HAL drivers require an update on the application code based on older HAL versions</strong>
<ul>
<li><strong>HAL/LL Generic</strong> update
<ul>
<li>Add support of <strong>HAL callback registration</strong> feature
<ul>
<li>The feature disabled by default is available for the following HAL drivers:
<ul>
<li><strong>ADC, CAN, COMP, CEC, DAC, I2C, SMBUS, UART, USART, WWDG, RTC, SPI, SMARTCARD, IrDA, I2S, TIM, TSC and PCD</strong></li>
</ul></li>
<li>The feature may be enabled individually per HAL PPP driver by setting the corresponding definition USE_HAL_PPP_REGISTER_CALLBACKS to 1U in stm32f0xx_hal_conf.h project configuration file (template file stm32f0xx_hal_conf_template.h available from Drivers/STM32F0xx_HAL_Driver/Inc)</li>
<li>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()</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL/LL Generic</strong> update
<ul>
<li>Update HAL driver to allow user to change systick period to 1ms, 10 ms or 100 ms :
<ul>
<li>Add the following API’s :
<ul>
<li>HAL_GetTickPrio(): Returns a tick priority.</li>
<li>HAL_SetTickFreq(): Sets new tick frequency.</li>
<li>HAL_GetTickFreq(): Returns tick frequency.</li>
</ul></li>
<li>Add HAL_TickFreqTypeDef enumeration for the different Tick Frequencies: 10 Hz, 100 Hz and 1KHz (default).</li>
</ul></li>
<li>Add UNUSED() macro implementation to avoid GCC warning
<ul>
<li>The warning is detected when the UNUSED() macro is called from C++ file</li>
</ul></li>
<li>General updates to fix MISRA 2012 compilation errors
<ul>
<li>HAL_IS_BIT_SET()/HAL_IS_BIT_CLR() macros implementation update</li>
<li>stdio.h include updated with stddef.h</li>
<li>Update assert_failed() API prototype to use pointer on uint8_t instead of char</li>
</ul></li>
</ul></li>
<li><strong>HAL CRC</strong> update
<ul>
<li>Remove extended initialization HAL_CRCEx_Init() API
<ul>
<li>HAL_CRC_Init() call HAL_CRCEx_Polynomial_Set() to initialize the CRC polynomial</li>
</ul></li>
<li>Remove extra call to HAL_LOCK/HAL_UNLOCK from the followings APIs:
<ul>
<li>HAL_CRC_Accumulate()</li>
<li>HAL_CRC_Calculate()</li>
</ul></li>
</ul></li>
<li><strong>HAL DAC</strong> update
<ul>
<li>Update to check on DAC_CHANNEL2_SUPPORT instead of device part number</li>
</ul></li>
<li><strong>HAL DMA</strong> update
<ul>
<li>Add clean of callbacks in HAL_DMA_DeInit() API</li>
<li>Update HAL_DMA_Abort() API to
<ul>
<li>Be able to return HAL_ERROR when DMA is already busy</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL RTC</strong> update
<ul>
<li>HAL/LL drivers optimization
<ul>
<li>HAL driver: remove unused variables to fix CodeSonar warnings</li>
<li>LL driver: getter APIs optimization</li>
</ul></li>
</ul></li>
<li><strong>HAL GPIO</strong> update
<ul>
<li>HAL_GPIO_TogglePin() API implementation update: to improve robustness</li>
<li>HAL_GPIO_DeInit() API update to ensure clear all GPIO EXTI pending interrupts.</li>
</ul></li>
<li><strong>HAL CEC</strong> update
<ul>
<li>update CEC states definition</li>
</ul></li>
<li><strong>HAL COMP</strong> update
<ul>
<li>Add HAL_COMP_GetError() API to return the COMP error code</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>I2C API changes for MISRA-C 2012 compliance:
<ul>
<li>Rename HAL_I2C_Master_Sequential_Transmit_IT() to HAL_I2C_Master_Seq_Transmit_IT()</li>
<li>Rename HAL_I2C_Master_Sequentiel_Receive_IT() to HAL_I2C_Master_Seq_Receive_IT()</li>
<li>Rename HAL_I2C_Slave_Sequentiel_Transmit_IT() to HAL_I2C_Slave_Seq_Transmit_IT()</li>
<li>Rename HAL_I2C_Slave_Sequentiel_Receive_DMA() to HAL_I2C_Slave_Seq_Receive_DMA()</li>
</ul></li>
<li>Add support of I2C repeated start feature in DMA Mode With the following new APIs
<ul>
<li>HAL_I2C_Master_Seq_Transmit_DMA()</li>
<li>HAL_I2C_Master_Seq_Receive_DMA()</li>
<li>HAL_I2C_Slave_Seq_Transmit_DMA()</li>
<li>HAL_I2C_Slave_Seq_Receive_DMA()</li>
</ul></li>
<li>Add new I2C transfer options to easy manage the sequential transfers
<ul>
<li>I2C_OTHER_FRAME</li>
<li>I2C_OTHER_AND_LAST_FRAME</li>
</ul></li>
<li>Fix I2C send break issue in IT processes
<ul>
<li>Add additional check on hi2c-&gt;hdmatx and hi2c-&gt;hdmarx to avoid the DMA request enable when ITmode is used.</li>
</ul></li>
</ul></li>
<li><strong>HAL SPI</strong> update
<ul>
<li>General update to enhance robustness for HAL SPI driver</li>
</ul></li>
<li><strong>HAL I2S</strong> update
<ul>
<li>General update to enhance robustness for HAL I2S driver</li>
</ul></li>
<li><strong>HAL SMBUS</strong> update
<ul>
<li>General update to enhance robustness for HAL SMBUS driver</li>
</ul></li>
<li><strong>HAL TIM</strong> update
<ul>
<li>Move the following TIM structures from stm32f0xx_hal_tim_ex.h into stm32f0xx_hal_tim.h
<ul>
<li>TIM_MasterConfigTypeDef()</li>
<li>TIM_BreakDeadTimeConfigTypeDef()</li>
</ul></li>
<li>TIM API changes for MISRA-C 2012 compliance:
<ul>
<li>Rename HAL_TIM_SlaveConfigSynchronization to HAL_TIM_SlaveConfigSynchro</li>
<li>Rename HAL_TIM_SlaveConfigSynchronization_IT to HAL_TIM_SlaveConfigSynchro_IT</li>
<li>Rename HAL_TIMEx_ConfigCommutationEvent to HAL_TIMEx_ConfigCommutEvent</li>
<li>Rename HAL_TIMEx_ConfigCommutationEvent_IT to HAL_TIMEx_ConfigCommutEvent_IT</li>
<li>Rename HAL_TIMEx_ConfigCommutationEvent_DMA to HAL_TIMEx_ConfigCommutEvent_DMA</li>
<li>Rename HAL_TIMEx_CommutationCallback to HAL_TIMEx_CommutCallback</li>
</ul></li>
<li>Add a call to HAL_DMA_Abort_IT from HAL_TIM_XXX_Stop_DMA</li>
</ul></li>
<li><strong>HAL TSC</strong> update
<ul>
<li>HAL_TSC_IODischarge() API: update choice parameter to be on FunctionalState instead of uint32_t.</li>
<li>Add new field ErrorCode in TSC_HandleTypeDef structure</li>
<li>HAL_TSC_Init() API add new assert_param() on ChannelIOs, ShieldIOs and SamplingIOs fields.</li>
</ul></li>
<li><strong>HAL UART</strong> update
<ul>
<li>Update to manage UART LIN and UART wakeUp features in stm32f0xx_hal_uart.c/.h instead of stm32f0_hal_uart_ex.c/.h</li>
<li>General update to enhance robustness for HAL UART driver</li>
<li>Major Update to improve performance in polling/interrupt mode to reach max frequency:
<ul>
<li>Polling mode :
<ul>
<li>Use API data pointer instead of UART handle data pointer.</li>
</ul></li>
<li>Interrupt mode
<ul>
<li>Minimize access on UART registers.</li>
<li>Split the UART modes into dedicated static functions to minimize checking statements under HAL_IRQHandler():
<ul>
<li>8 bit/ 16 bits data formats</li>
</ul></li>
</ul></li>
<li>All modes:
<ul>
<li>Update Timeout management to check on global process.</li>
<li>Update Error code management in all processes.</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL USART</strong> update
<ul>
<li>General update to enhance robustness for HAL USART driver</li>
<li>Major Update to improve performance in polling/interrupt mode to reach max frequency:
<ul>
<li>Polling mode :
<ul>
<li>Use API data pointer instead of USART handle data pointer.</li>
<li>Update HAL USART Transmit/Receive processes to support Word Length 9 Bits with/No parity transfer</li>
</ul></li>
<li>Interrupt mode
<ul>
<li>Minimize access on USART registers.</li>
<li>Split the USART modes into dedicated static functions to minimize checking statements under HAL_IRQHandler():
<ul>
<li>8 bit/ 16 bits data formats</li>
</ul></li>
</ul></li>
<li>All modes:
<ul>
<li>Update Timeout management to check on global process.</li>
<li>Update Error code management in all processes.</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> update
<ul>
<li>General update to enhance robustness for HAL SMARTCARD driver</li>
<li>Major Update to improve performance in polling/interrupt mode to reach max frequency:
<ul>
<li>Polling mode :
<ul>
<li>Use API data pointer instead of SMARTCARD handle data pointer.</li>
<li>Update HAL SMARTCARD Transmit/Receive processes to support Word Length 9 Bits with/No parity transfer</li>
</ul></li>
<li>Interrupt mode
<ul>
<li>Minimize access on SMARTCARD registers.</li>
<li>Split the SMARTCARD modes into dedicated static functions to minimize checking statements under HAL_IRQHandler():
<ul>
<li>8 bit/ 16 bits data formats</li>
</ul></li>
</ul></li>
<li>All modes:
<ul>
<li>Update Timeout management to check on global process.</li>
<li>Update Error code management in all processes.</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL IrDA</strong> update
<ul>
<li>General update to enhance robustness for HAL IrDA driver</li>
<li>Update HAL IrDA Transmit/Receive processes to support Word Length 9 Bits with/No parity transfer</li>
<li>Remove unused IRDA_ControlTypeDef() enumeration</li>
</ul></li>
<li><strong>LL/HAL RCC</strong> update
<ul>
<li>Add new LL/HAL macros
<ul>
<li>LL_RCC_PLL_SetMainSource() allowing to configure PLL main clock source</li>
<li>__HAL_RCC_GET_RTC_SOURCE() allowing to get the RTC clock source</li>
</ul></li>
<li>Update HAL_RCC_ClockConfig() API to:
<ul>
<li>update to use __HAL_FLASH_GET_LATENCY() flash macro instead of using direct register access to LATENCY bits in FLASH ACR register.</li>
</ul></li>
<li>Update HAL_RCC_DeInit() and LL_RCC_DeInit() APIs to
<ul>
<li>Add checks for HSI and PLL ready before modifying RCC CFGR registers</li>
<li>Clear all interrupt falgs</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL USB</strong> update
<ul>
<li>Add stm32f0xx_ll_usb.c/h driver</li>
<li>cleanup reference to low speed in device mode</li>
<li>Software Quality improvement with a fix of CodeSonar warning on PCD_Port_IRQHandler() interrupt handlers</li>
<li>Remove wrongly coded PCD_GET6_DB_DIR macro</li>
<li>Improve software quality to be MISRA-C 2012 and CodeSonar compliant</li>
<li>STM32F0 Fix USB Exti Wakeup signal by removing non used macro</li>
<li>Ensure 16bits access to USB PMA</li>
<li>Make sure to set correct count for receive fifo</li>
<li>Rework USB BCD driver and fix required timing to initiate primary and secondary detection</li>
<li>Prevent clearing CTR_RX and CTR_TX flags when setting the EP type</li>
<li>Add error check during USB init</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_7_2" aria-hidden="true"> <label for="collapse-section1_7_2" aria-hidden="true"><strong>V1.7.2 / 09-May-2019</strong></label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<ul>
<li>Maintenance release to fix known defects and enhancements implementation</li>
<li><strong>HAL Drivers changes</strong></li>
<li><strong>HAL PCD</strong> update
<ul>
<li>Update Memory-mapped peripheral registers definition to be volatile to avoid unwanted optimization with GCC compiler.</li>
</ul></li>
<li><strong>LL TIM</strong> Update
<ul>
<li>Update Memory-mapped peripheral registers definition to be volatile to avoid unwanted optimization with GCC compiler.</li>
</ul></li>
<li><strong>LL DAC</strong> Update
<ul>
<li>Update Memory-mapped peripheral registers definition to be volatile to avoid unwanted optimization with GCC compiler.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_7_1" aria-hidden="true"> <label for="collapse-section1_7_1" aria-hidden="true"><strong>V1.7.1 / 02-April-2019</strong></label>
<div>
<h2 id="main-changes-3">Main Changes</h2>
<ul>
<li><strong>Maintenance release to fix known defects and enhancements implementation</strong></li>
<li><strong>The following changes done on the HAL drivers require an update on the application code based on older HAL versions</strong>
<ul>
<li><strong>Rework of HAL CAN driver (compatibility break)</strong>
<ul>
<li>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.</li>
<li>The new HAL CAN driver is the recommended version. It is located as usual in Drivers/STM32F0xx_HAL_Driver/Src and Drivers/STM32f0xx_HAL_Driver/Inc folders. It can be enabled through switch HAL_CAN_MODULE_ENABLED in stm32f0xx_hal_conf.h</li>
<li>The legacy HAL CAN driver is also present in the release in Drivers/STM32F0xx_HAL_Driver/Src/Legacy and Drivers/STM32F0xx_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 stm32f0xx_hal_conf.h</li>
</ul></li>
</ul></li>
<li><strong>HAL Drivers changes</strong></li>
<li><strong>HAL CAN</strong> update
<ul>
<li>Fields of CAN_InitTypeDef structure are reworked:
<ul>
<li>SJW to SyncJumpWidth, BS1 to TimeSeg1, BS2 to TimeSeg2, TTCM to TimeTriggeredMode, ABOM to AutoBusOff, AWUM to AutoWakeUp, NART to AutoRetransmission (inversed), RFLM to ReceiveFifoLocked and TXFP to TransmitFifoPriority</li>
</ul></li>
<li>HAL_CAN_Init() is split into both HAL_CAN_Init() and HAL_CAN_Start() APIs</li>
<li>HAL_CAN_Transmit() is replaced by HAL_CAN_AddTxMessage() to place Tx Request, then HAL_CAN_GetTxMailboxesFreeLevel() for polling until completion.</li>
<li>HAL_CAN_Transmit_IT() is replaced by HAL_CAN_ActivateNotification() to enable transmit IT, then HAL_CAN_AddTxMessage() for place Tx request.</li>
<li>HAL_CAN_Receive() is replaced by HAL_CAN_GetRxFifoFillLevel() for polling until reception, then HAL_CAN_GetRxMessage() to get Rx message.</li>
<li>HAL_CAN_Receive_IT() is replaced by HAL_CAN_ActivateNotification() to enable receive IT, then HAL_CAN_GetRxMessage() in the receive callback to get Rx message</li>
<li>HAL_CAN_Slepp() is renamed as HAL_CAN_RequestSleep()</li>
<li>HAL_CAN_TxCpltCallback() is split into HAL_CAN_TxMailbox0CompleteCallback(), HAL_CAN_TxMailbox1CompleteCallback() and HAL_CAN_TxMailbox2CompleteCallback().</li>
<li>HAL_CAN_RxCpltCallback is split into HAL_CAN_RxFifo0MsgPendingCallback() and HAL_CAN_RxFifo1MsgPendingCallback().</li>
<li>More complete “How to use the new driver” is detailed in the driver header section itself.</li>
</ul></li>
<li><strong>HAL FLASH</strong> update
<ul>
<li>Update the FLASH_OB_GetRDP() API to return the correct RDP level</li>
</ul></li>
<li><strong>HAL PCD</strong> update
<ul>
<li>PCD_SET_EPTYPE() macro update to prevent clearing USB_EP_CTR_TX and USB_EP_CTR_RX flags.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_7_0" aria-hidden="true"> <label for="collapse-section1_7_0" aria-hidden="true"><strong>V1.7.0 / 25-August-2017</strong></label>
<div>
<h2 id="main-changes-4">Main Changes</h2>
<ul>
<li><strong>Maintenance release to fix known defects and enhancements implementation</strong></li>
<li><strong>Generic drivers changes</strong></li>
<li>MISRA C 2004 rule 11.4 (A cast should not be performed between a pointer to object type and a different pointer to object type).</li>
<li>MISRA C 2004 rule 12.4 (The right-hand operand of a logical or I I operator shall not contain side effects).</li>
<li>Minor improvement of Doxygen Tags for CHM UM generation.</li>
<li><strong>HAL Drivers changes</strong></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>Add definition of GPIO_AF0_TIM3 for STM32F030x6 and STM32F030x8 devices.</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>Editorial modification : astyle clean-up</li>
</ul></li>
<li><strong>HAL PCD</strong>
<ul>
<li>Remove lock/unlock from USB receive and transmit endpoints.</li>
</ul></li>
<li><strong>LL Drivers changes</strong></li>
<li><strong>LL_TIM</strong>
<ul>
<li>Ensure write operation of BKE and BKP bits is effective by adding fake read operation to garantee 1 APB clock cycle before function exit.</li>
<li>Exchange behavior between LL_TIM_EnableUpdateEvent() and LL_TIM_DisableUpdateEvent().</li>
</ul></li>
<li><strong>LL_RCC</strong>
<ul>
<li>Fix issue in RCC_GetSystemClockFreq() when HSI48 oscillator is selected as system clock.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_6_0" aria-hidden="true"> <label for="collapse-section1_6_0" aria-hidden="true"><strong>V1.6.0 / 07-April-2017</strong></label>
<div>
<h2 id="main-changes-5">Main Changes</h2>
<ul>
<li><strong>Maintenance release to fix known defects and enhancements implementation</strong></li>
<li><strong>HAL Drivers changes</strong></li>
<li><strong>HAL Generic</strong>
<ul>
<li>MISRA C 2004 rule 10.6 (U suffix applied to all constants of unsigned type).</li>
<li>Remove useless cast (uint32_t ) cast in case of U suffix.</li>
<li>Fix Code Sonar warnings (useless assignment, cast alters value, empty while statement).</li>
</ul></li>
<li><strong>HAL</strong>
<ul>
<li>Modify HAL_Delay to guarantee the minimum Delay provided as parameter.</li>
<li>Add definition of USE_SPI_CRC to activate CRC feature inside HAL SPI driver.</li>
<li>New API : HAL_GetUID() read the unique device identifier.</li>
<li>Correct RTC_ASYNCH_PREDIV and RTC_SYNCH_PREDIV definition when LSI configured as RTC clock source.</li>
</ul></li>
<li><strong>HAL CAN</strong>
<ul>
<li>Add transmission abort when timeout is reached in HAL_CAN_Transmit().</li>
<li>Add management of overrun error.</li>
<li>Store missing FIFO number in received message.</li>
<li>Extend SET_BIT, CLEAR_BIT macro usage.</li>
<li>Allow possibility to receive messages from the 2 RX FIFOs in parallel via interrupt.</li>
<li>Fix message lost issue with specific sequence of transmit requests.</li>
</ul></li>
<li><strong>HAL ADC</strong>
<ul>
<li>DMA transfer must be disabled during calibration to avoid ADC calibration factor insertion among ADC conversion data.</li>
<li>Remove unused literal ADC_EOC_SINGLE_SEQ_CONV.</li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>Rename LL_COMP_DELAY_STARTUP_US in COMP_DELAY_STARTUP_US.</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Replace hard coded values by CMSIS define.</li>
<li>Extend SET_BIT, CLEAR_BIT macro usage.</li>
<li>Add timeout management in HAL_SPI_Abort() and HAL_SPI_Abort_IT().</li>
<li>Add IS_SPI_DMA_HANDLE macro to check handle validity.</li>
<li>Add IS_SPI_16BIT_ALIGNED_ADDRESS macro to check if data buffer address are 16 bits aligned when transferring more than 1 byte (there is no support for unaligned accesses on the Cortex-M0 processor).</li>
<li>In 2 lines transmission configuration, ensure RXFIFO is empty at the end of transmission. Add SPI_WaitFifoStateUntilTimeout (SPI_FLAG_FRLVL) call.</li>
</ul></li>
<li><strong>HAL RTC</strong>
<ul>
<li>add a wait for synchronization on HAL_RTC_Init function to avoid re-entering in initialization state before previous exit of initialization state.</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>New API to disable unconditionally the Main Output Enable of a timer instance : __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY().
<ul>
<li>DMA burst mode enhancement. Add 2 new API in order to manage serape parameters for burst length and data length:
<ul>
<li>HAL_TIM_DMABurst_MultiWriteStart()</li>
<li>HAL_TIM_DMABurst_MultiReadStart()</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL SMBUS</strong>
<ul>
<li>Add new feature “ZONE READ/WRITE” : The ZONE_READ and ZONE_WRITE protocols are used to simultaneously read from or write to some or all of the devices on a bus. New options defined (SMBUS_OTHER_FRAME_NO_PEC, SMBUS_OTHER_FRAME_WITH_PEC, SMBUS_OTHER_AND_LAST_FRAME_NO_PEC, SMBUS_OTHER_AND_LAST_FRAME_WITH_PEC).</li>
<li>New API : Digital/Analog filter configuration with HAL_SMBUS_ConfigAnalogFilter() and HAL_SMBUS_ConfigDigitalFilter().</li>
</ul></li>
<li><strong>HAL PCD</strong>
<ul>
<li>Modify PCD_ReadPMA() to avoid HardFault when buffers not aligned on 16 bits address.</li>
</ul></li>
<li><strong>LL Drivers changes</strong></li>
<li><strong>LL Generic</strong>
<ul>
<li>MISRA C 2004 rule 10.6 (U suffix applied to all constants of unsigned type).</li>
<li>MISRA C 2004 rule 11.5 (no cast that removes any const or volatile qualification from the type addressed by a pointer).</li>
<li>Remove useless cast (uint32_t ) cast in case of U suffix.</li>
<li>Replace hard coded POSITION definition in driver by the associated PPP_xxx_pos CMSIS define (PPP could be I2C, USART …).</li>
</ul></li>
<li><strong>LL GPIO</strong>
<ul>
<li>Rename GPIO_AFRH and GPIO_AFRL bit fields for alignment with all STM32 series.</li>
</ul></li>
<li><strong>LL DMA</strong>
<ul>
<li>For better performances, use WRITE_REQ() and READ_REG() when accessing CPAR and CMAR registers.</li>
<li>Replace SET_BIT by WRITE_REG macro to clear flags in DMA_ICFR register (register is write only).</li>
</ul></li>
<li><strong>LL USART</strong>
<ul>
<li>Add IS_LL_USART_BRR macro : In case of oversampling by 16 and 8, Baud Rate Register content must be greater than or equal to 16.</li>
</ul></li>
<li><strong>LL I2C</strong></li>
<li>OA1EN bit of OAR1 register should be set only when own address different from 0 (0 reserved for General Call address).</li>
<li><strong>LL CRS</strong>
<ul>
<li>Add missing shift of HSI48CalibrationValue parameter value in LL_CRS_ConfigSynchronization().</li>
</ul></li>
<li><strong>LL RTC</strong>
<ul>
<li>For better performances, simplify implementation of LL_RTC_TIME_Get() and LL_RTC_DATE_Get().</li>
</ul></li>
<li><strong>LL USART</strong>
<ul>
<li>Add ((void)(temp)) to Prevent unused argument(s) compilation warning when USE_FULL_ASSERT not defined.</li>
</ul></li>
<li><strong>LL_TIM</strong>
<ul>
<li>New API : In order to program BDTR register in a single write operation add :
<ul>
<li>LL_TIM_BDTR_StructInit(), LL_TIM_BDTR_Init().</li>
<li>LL_TIM_BDTR_InitTypeDef structure definition with associated macro : IS_LL_TIM_OSSR_STATE, IS_LL_TIM_OSSI_STATE, IS_LL_TIM_LOCK_LEVEL, IS_LL_TIM_BREAK_STATE, IS_LL_TIM_BREAK_POLARITY, IS_LL_TIM_AUTOMATIC_OUTPUT_STATE.</li>
</ul></li>
<li>Add initialization of AutomaticOuput field in LL_TIM_BDTR_StructInit().</li>
</ul></li>
<li><strong>LL UTILS</strong>
<ul>
<li>Use current AHB prescaler valuer instead of the one selected by the user to calculate SYSCLK frequency.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_5_0" aria-hidden="true"> <label for="collapse-section1_5_0" aria-hidden="true"><strong>V1.5.0 / 04-November-2016</strong></label>
<div>
<h2 id="main-changes-6">Main Changes</h2>
<ul>
<li><strong>Maintenance release to fix known defects and enhancements implementation</strong></li>
<li><strong>HAL Drivers changes</strong></li>
<li>Enhance HAL delay and time base implementation:
<ul>
<li>Add new templates stm32f0xx_hal_timebase_rtc_alarm_template.c, stm32f0xx_hal_timebase_rtc_wakeup_template.c and stm32f0xx_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</li>
</ul></li>
<li><strong>The following changes done on the HAL drivers require an update on the application code based on HAL V1.4.0</strong></li>
<li>HAL IWDG driver: Overall driver rework for better implementation
<ul>
<li>Remove HAL_IWDG_Start(), HAL_IWDG_MspInit() and HAL_IWDG_GetState() APIs</li>
</ul></li>
<li>HAL WWDG driver: Overall driver rework for better implementation
<ul>
<li>Remove HAL_WWDG_Start(), HAL_WWDG_Start_IT(), HAL_WWDG_MspDeInit() and HAL_WWDG_GetState() APIs</li>
<li>Update the HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg, uint32_t counter) function and API by removing the counter parameter</li>
</ul></li>
<li>HAL CEC driver: Overall driver rework with compatibility break versus previous HAL version
<ul>
<li>Remove HAL CEC polling Process functions: HAL_CEC_Transmit() and HAL_CEC_Receive()</li>
<li>Remove HAL CEC receive interrupt process function HAL_CEC_Receive_IT() and enable the “receive” mode during the Init phase</li>
<li>Rename HAL_CEC_GetReceivedFrameSize() funtion to HAL_CEC_GetLastReceivedFrameSize()</li>
<li>Add new HAL APIs: HAL_CEC_SetDeviceAddress() and HAL_CEC_ChangeRxBuffer()</li>
<li>Remove the InitiatorAddress field from the CEC_InitTypeDef structure and manage it as a parameter in the HAL_CEC_Transmit_IT() function</li>
<li>Add new parameter RxFrameSize in HAL_CEC_RxCpltCallback() function</li>
<li>Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to CEC_InitTypeDef structure</li>
</ul></li>
<li>HAL TIM driver : add one field (AutoReloadPreload) in TIM_Base_InitTypeDef structure</li>
<li><strong>HAL Generic</strong>
<ul>
<li>Update HAL Driver compliancy with:
<ul>
<li>MISRA C 2004 rule 10.6 (U suffix applied to all constants of unsigned type)</li>
<li>MISRA C 2004 rule 14.8 (the statement forming the body of a switch, while, do … while, or for statement shall be a compound statement)</li>
</ul></li>
</ul></li>
<li><strong>HAL IWDG</strong>
<ul>
<li>New simplified HAL IWDG driver: remove HAL_IWDG_Start(), HAL_IWDG_MspInit() and HAL_IWDG_GetState() APIs</li>
<li>API functions are:
<ul>
<li>HAL_IWDG_Init(): this function insures the configuration and the start of the IWDG counter</li>
<li>HAL_IWDG_Refresh(): this function insures the reload of the IWDG counter</li>
</ul></li>
<li>Refer to the following example to identify the changes : IWDG_Reset, IWDG_WidowMode</li>
</ul></li>
<li><strong>HAL WWDG</strong>
<ul>
<li>New simplified HAL WWDG driver: remove HAL_WWDG_Start(), HAL_WWDG_Start_IT(), HAL_WWDG_MspDeInit() and HAL_WWDG_GetState() APIs
<ul>
<li>Update HAL_WWDG_Refresh() API to remove counter parameter</li>
<li>New field EWIMode in WWDG_InitTypeDef to specify need for Early Wakeup Interrupt</li>
<li>API functions are: HAL_WWDG_Init(), HAL_WWDG_MspInit(), HAL_WWDG_Refresh(), HAL_WWDG_IRQHandler() and HAL_WWDG_EarlyWakeupCallback()</li>
</ul></li>
<li>Refer to the following example to identify the changes: WWDG_Example</li>
</ul></li>
<li><strong>HAL CEC</strong>
<ul>
<li>Overall driver rework with break of compatibility with HAL V1.4.0
<ul>
<li>Remove the HAL CEC polling Process: HAL_CEC_Transmit() and HAL_CEC_Receive()</li>
<li>Remove the HAL CEC receive interrupt process (HAL_CEC_Receive_IT()) and manage the “Receive” mode enable within the Init phase</li>
<li>Rename HAL_CEC_GetReceivedFrameSize() function to HAL_CEC_GetLastReceivedFrameSize() function</li>
<li>Add new HAL APIs: HAL_CEC_SetDeviceAddress() and HAL_CEC_ChangeRxBuffer()</li>
<li>Remove the InitiatorAddress field from the CEC_InitTypeDef structure and manage it as a parameter in the HAL_CEC_Transmit_IT() function</li>
<li>Add new parameter RxFrameSize in HAL_CEC_RxCpltCallback() function</li>
<li>Move CEC Rx buffer pointer from CEC_HandleTypeDef structure to CEC_InitTypeDef structure</li>
</ul></li>
<li>Update driver to implement the new CEC state machine:
<ul>
<li>Add new rxState field in CEC_HandleTypeDef structure to provide the CEC state information related to Rx Operations</li>
<li>Rename state field in CEC_HandleTypeDef structure to gstate: CEC state information related to global Handle management and Tx Operations</li>
<li>Update CEC process to manage the new CEC states.</li>
<li>Update __HAL_CEC_RESET_HANDLE_STATE() macro to handle the new CEC state parameters (gState, rxState)</li>
</ul></li>
</ul></li>
<li><strong>HAL UART/USART/IRDA/SMARTCARD</strong>
<ul>
<li>IRQ Handler global optimization</li>
<li>New abort API: HAL_PPP_Abort(), HAL_PPP_Abort_IT()</li>
<li>Add error management in case of DMA transfer through HAL_DMA_Abort_IT() and DMA XferAbortCallback()</li>
<li>Polling management update:
<ul>
<li>The user Timeout value must be estimated for the overall process duration</li>
</ul></li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Overall driver optimization to improve performance in polling/interrupt mode to reach maximum peripheral frequency
<ul>
<li>Polling mode:
<ul>
<li>Replace the use of SPI_WaitOnFlagUnitTimeout() function by “if” statement to check on RXNE/TXE flage while transferring data</li>
</ul></li>
<li>Interrupt mode:</li>
<li>Minimize access on SPI registers</li>
<li>All modes:
<ul>
<li>Add the USE_SPI_CRC switch to minimize the number of statements when CRC calculation is disabled</li>
<li>Update timeout management to check on global processes</li>
<li>Update error code management in all processes</li>
</ul></li>
</ul></li>
<li>Fix regression in polling mode:
<ul>
<li>Add preparing data to transmit in case of slave mode in HAL_SPI_TransmitReceive() and HAL_SPI_Transmit()</li>
</ul></li>
<li>Fix regression in interrupt mode:
<ul>
<li>Add a wait on TXE flag in SPI_CloseTx_ISR() and in SPI_CloseTxRx_ISR()</li>
<li>Add to manage properly the overrun flag in SPI_CloseRxTx_ISR() and SPI_CloseRx_ISR()</li>
</ul></li>
<li>Prevent data packing mode in reception for STM32F030x6, STM32F030x8, STM32F031x6, STM32F038xx, STM32F051x8 and STM32F058xx</li>
</ul></li>
<li><strong>HAL DMA</strong>
<ul>
<li>Global driver code optimization to reduce memory footprint</li>
<li>Add new APIs HAL_DMA_RegisterCallback() and HAL_DMA_UnRegisterCallback to register/unregister the different callbacks identified by the enum typedef HAL_DMA_CallbackIDTypeDef</li>
<li>Add new Error Code HAL_DMA_ERROR_NOT_SUPPORTED</li>
<li>Remove DMA HAL_DMA_STATE_READY_HALF &amp; HAL_DMA_STATE_ERROR states in HAL_DMA_StateTypeDef</li>
</ul></li>
<li><strong>HAL RTC</strong>
<ul>
<li>Interrupt flag cleared before enabling the interrupt in HAL_RTCEx_SetWakeUpTimer_IT()</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>Disable I2C_OARx_EN bit before any configuration in OAR1 or 2 in HAL_I2C_Init()</li>
<li>Move I2C_NO_OPTION_FRAME in private section</li>
<li>Use CMSIS bit for compilation switch instead of product switch</li>
<li>Update HAL_I2C_Master_Sequential_Transmit_IT() function (wrong state check)</li>
<li>Add I2C_FIRST_AND_NEXT_FRAME option for I2C Sequential Transfer</li>
<li>On slave, reset LISTEN_TX state in case of direction change</li>
<li>Remove GCC warnings</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>API update : add one field (AutoReloadPreload) in TIM_Base_InitTypeDef structure in order to set ARPE bit from TIMx_CR1 register</li>
<li>New API : add 2 macros (__HAL_TIM_ENABLE_OCxPRELOAD() and __HAL_TIM_DISABLE_OCxPRELOAD()) in order to set OCxPE bit from TIMx_CCMR1, TIMx_CCMR2 and TIMx_CCMR3 registers</li>
<li>Update TIM_SET_CAPTUREPOLARITY and TIM_RESET_CAPTUREPOLARITY definition to take into account CC4NP bit</li>
<li>Use MODIFY_REG macro to avoid wrong initialisation in ConfigBreakDeadTime()</li>
</ul></li>
<li><strong>HAL SMBUS</strong>
<ul>
<li>Update SMBUS_Master_ISR() and SMBUS_Slave_ISR() to ensure storage of last receive data</li>
</ul></li>
<li><strong>HAL PCD</strong>
<ul>
<li>Update HAL_PCD_ActivateRemoteWakeup() and HAL_PCD_DeActivateRemoteWakeup() APIs to add condition if LPM activated.</li>
</ul></li>
<li><strong>LL Drivers changes</strong></li>
<li><strong>LL GPIO</strong>
<ul>
<li>Remove LL_GPIO_SPEED_FREQ_VERY_HIGH (GPIO_SPEED_FREQ_VERY_HIGH does not exist for STM32F0xx serie)</li>
</ul></li>
<li><strong>LL_TIM</strong>
<ul>
<li>Remove TIM_SMCR_OCCS compilation switch (useless for STM32F0xx serie)</li>
</ul></li>
<li><strong>LL_CRS</strong>
<ul>
<li>Update CRS_POSITION_XXX definitions to use CMSIS definition instead of hardcoded values</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_4_0" aria-hidden="true"> <label for="collapse-section1_4_0" aria-hidden="true"><strong>V1.4.0 / 27-May-2016</strong></label>
<div>
<h2 id="main-changes-7">Main Changes</h2>
<ul>
<li><strong>First official release supporting the Low Level drivers for the STM32F0xx family:</strong>
<ul>
<li>Low Layer drivers APIs provide register level programming:</li>
<li>they require deep knowledge of peripherals described in STM32F0xx Reference Manual.</li>
<li>Low Layer drivers are available for ADC, COMP, Cortex, CRC, CRS, DAC, DMA, EXTI, GPIO, I2C, IWDG, PWR,</li>
<li>RCC, RTC, SPI, TIM, USART and WWDG peripherals and additional Low Level Bus, System and Utilities APIs.</li>
<li>Low Layer drivers APIs are implemented as static inline function in new Inc/stm32f0xx_ll_ppp.h files for PPP peripherals,</li>
<li>there is no configuration file and each stm32f0xx_ll_ppp.h file must be included in user code.</li>
</ul></li>
<li><strong>Maintenance release to fix known defects and enhancements implementation.</strong></li>
<li><strong>HAL generic</strong>
<ul>
<li>Updated HAL Driver compliancy with MISRA C 2004 rules:
<ul>
<li>MISRA C 2004 rule 5.2 (tmpreg variable shall not be used inside MACRO)</li>
<li>MISRA C 2004 rule 10.3 (illegal explicit conversion from type unsigned int to uint16_t).</li>
<li>MISRA C 2004 rule 10.5 (bitwise operators ~ and &lt;&lt;).</li>
<li>MISRA C 2004 rule 10.6 (U suffix applied to all constants of unsigned type).</li>
<li>MISRA C 2004 rule 11.5 (no cast that removes any const or volatile qualification from the type addressed by a pointer).</li>
<li>MISRA C 2004 rule 12.6 (logical operators should not be confused with bitwise operators).</li>
<li>MISRA C 2004 rule 12.7 (bitwise operations not performed on signed integer types).</li>
<li>MISRA C 2004 rule 14.3 (a null statement shall only occur on a line by itself).</li>
<li>MISRA C 2004 rule 14.9 (if {expression} / else construct shall be followed by a compound statement).</li>
<li>MISRA C 2004 rule 15.3 (all switch statements shall contain a final default clause).</li>
<li>MISRA C 2004 rule 16.3 (identifiers shall be given for all of the parameters in a function prototype declaration).</li>
<li>MISRA C 2004 rule 16.4 (identifiers used in the declaration and definition shall be identical).</li>
<li>MISRA C 2004 rule 19.10 (in function-like macro definition, each instance of a parameter shall be enclosed in parenthesis).</li>
</ul></li>
</ul></li>
<li><strong>HAL</strong>
<ul>
<li>Changed uwTick to global to allow overwrite of HAL_IncTick().</li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>Added delay in COMP startup time required to reach propagation delay specification.</li>
</ul></li>
<li><strong>HAL CRC</strong>
<ul>
<li>Updated devices supporting Programmable Polynomial features: defines and functions prototypes are available only for</li>
<li>STM32F071xB, STM32F072xB, STM32F078xx, STM32F091xC, STM32F098x devices.</li>
<li>Updated HAL_CRC_DeInit() function (restored IDR Register to Reset value).</li>
</ul></li>
<li><strong>HAL DMA</strong>
<ul>
<li>Added __HAL_DMA_GET_COUNTER() macro returning the number of remaining data units in the current DMA Channel transfer.</li>
<li>Provided new function HAL_DMA_Abort_IT() to abort current DMA transfer under interrupt mode without polling for DMA enable bit.</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>Updated IS_GPIO_PIN() macro to cover full u32 bits.</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>Used macro definition for I2C instances supporting Wakeup from Stop mode.</li>
<li>Updated polling flags management within I2C slave DMA drivers.</li>
<li>Added support of repeated start feature in case of multimaster mode (allow master to keep I2C communication with slave).</li>
<li>Updated WaitOnFlag management (timeout measurement should be always cumulative).</li>
<li>Optimized HAL_I2C_XX_IRQHandler() functions (read status registers only once).</li>
<li>Reworked DMA end process and I2C error management during DMA transfer.</li>
</ul></li>
<li><strong>HAL PWR</strong>
<ul>
<li>Aligned EWUPx pins and PWR functions with CMSIS definitions.</li>
</ul></li>
<li><strong>HAL IRDA</strong>
<ul>
<li>Modified IRDA_Receive_IT() to execute the RX flush request only in case no data is read from RDR.</li>
<li>Modified EIE bit setting in Tx and Rx transfers (Interrupt mode).</li>
<li>Updated IRDA_SetConfig() function following UART Baudrate calculation update.</li>
<li>Reviewed IRDA state machine to avoid cases where IRDA state is overwritten by IRDA IRQ.</li>
<li>Ensure proper alignment of data pointer in Transmit and Receive functions to avoid toolchain compilation hardfault.</li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>Performed optimizations for HAL_RCC_ClockConfig(), HAL_RCCEx_PeriphCLKConfig functions.</li>
<li>Updated HAL_RCC_OscConfig() function (Reset HSEON/LSEON and HSEBYP/LSEBYP bits before configuring the HSE/LSE).</li>
<li>Updated HAL_RCC_OscConfig() function to enable PWR only if necessary for LSE configuration.</li>
<li>Corrected CRS interrupt sources.</li>
<li>Modified reset of Backup domain only if the RTC Clock source selection is modified from reset value.</li>
<li>Added missing HAL IRQHandler and callbacks API for CRS management.</li>
<li>Added missing RCC_CFGR_PLLNODIV definition for STM32F030x4/6 devices.</li>
<li>Removed HSI48State from structure RCC_OscInitTypeDef when device does not support HSI48.</li>
<li>Removed RCC_HSI48_OFF.</li>
<li>Removed flag RCC_FLAG_RMV which is write only.</li>
<li>Modified AHBPrescTable and APBPrescTable in HAL.</li>
<li>Renamed RCC_CRS_SYNCWARM to RCC_CRS_SYNCWARN.</li>
<li>Renamed RCC_CRS_TRIMOV to RCC_CRS_TRIMOVF.</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Updated HAL_SPI_TransmitReceive() function in slave mode to receive correctly the CRC when NSS pulse activated.</li>
<li>Added missing __IO in SPI_HandleTypeDef definition.</li>
<li>Updated IS_SPI_CRC_POLYNOMIAL macro definition as polynomial value should be odd only.</li>
<li>Updated SPI_2linesTxISR_8BIT() and SPI_2linesTxISR_16BIT() functions: added return so that SPI_2linesTxISR_8BITCRC() or SPI_2linesTxISR_16BITCRC() function is called from HAL_SPI_TransmitReceive_IT() when CRC is activated.</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>Used IS_TIM_HALL_INTERFACE_INSTANCE macro instead of IS_TIM_XOR_INSTANCE macro in</li>
<li>HAL_TIMEx_HallSensor_xxx() functions.</li>
<li>Updated HAL_TIM_ConfigOCrefClear() function to allow TIM_CLEARINPUTSOURCE_OCREFCLR as new ClearInputSource.</li>
</ul></li>
<li><strong>HAL UART-USART</strong>
<ul>
<li>Updated UART Baudrate calculation (UART_DIV_SAMPLING8() and UART_DIV_SAMPLING16() macros).</li>
<li>Updated USART_SetConfig() function following UART Baudrate calculation update.</li>
<li>Aligned UART-USART Stop Bits with others STM32 series.</li>
<li>Renamed IS_UART_WAKEUP_INSTANCE to IS_UART_WAKEUP_FROMSTOP_INSTANCE.</li>
<li>Modified UART_Receive_IT() to execute the RX flush request only in case no data is read from RDR.</li>
<li>Reviewed UART state machine to avoid cases where UART state is overwritten by UART IRQ.</li>
<li>Ensure proper alignment of data pointer in Transmit and Receive functions to avoid toolchain compilation hardfault.</li>
</ul></li>
<li><strong>HAL USB</strong>
<ul>
<li>Corrected double buffer implementation in PCD_SET_EP_DBUF1_CNT() macro.</li>
<li>Added missing USB_CNTR_SOFM when setting wInterrupt_Mask global variable used in HAL_PCD_Init.</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong>
<ul>
<li>Aligned SMARTCARD Stop Bits with others STM32 series.</li>
<li>Modified SMARTCARD_Receive_IT() to execute the RX flush request only in case no data is read from RDR.</li>
<li>Updated SMARTCARD_SetConfig() function following UART Baudrate calculation update.</li>
<li>Reviewed SMARTCARD state machine to avoid cases where SMARTCARD state is overwritten by SMARTCARD IRQ.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_3_1" aria-hidden="true"> <label for="collapse-section1_3_1" aria-hidden="true"><strong>V1.3.1 / 29-January-2016</strong></label>
<div>
<h2 id="main-changes-8">Main Changes</h2>
<ul>
<li><strong>Maintenance release to fix known defects and enhancements implementation</strong></li>
<li><strong>HAL Generic</strong>
<ul>
<li>Updated HAL Driver compliancy with:
<ul>
<li>MISRA C 2004 rule 10.6 (U suffix applied to all constants of unsigned type).</li>
<li>MISRA C 2004 rule 10.5 (bitwise operators ~ and &lt;&lt;).</li>
<li>MISRA C 2004 rule 12.7 (bitwise operations not performed on signed integer types).</li>
</ul></li>
<li>Updated HAL weak empty callbacks to prevent unused argument compilation warnings.</li>
<li>Updated stm32f3xx_hal_msp.c files:
<ul>
<li>Removed reference to MicroXplorer.</li>
</ul></li>
<li>Updated stm32f3xx_hal_conf.h files:
<ul>
<li>Set HSE_STARTUP_TIMEOUT value to 100ms instead of 5000ms</li>
</ul></li>
</ul></li>
<li><strong>HAL ADC</strong>
<ul>
<li>Corrected ADC_CHANNEL_VREFINT enabling in the CCR register.</li>
<li>Corrected assert param of nb of discontinuous conversions when discontinuous mode is enabled.</li>
<li>Removed Flag EOS in HAL_ADC_GetValue().</li>
</ul></li>
<li><strong>HAL CAN</strong>
<ul>
<li>Corrected missing __HAL_UNLOCK when all Mailboxes are busy.</li>
<li>Added ERRI bit clear besides to clearing LEC bits in CAN_ESR register, in case of Error interrupt.</li>
</ul></li>
<li><strong>HAL CORTEX</strong>
<ul>
<li>Removed __HAL_CORTEX_SYSTICKCLK_CONFIG macro, replaced by HAL_SYSTICK_CLKSourceConfig() function.</li>
</ul></li>
<li><strong>HAL CRC</strong>
<ul>
<li>Updated CRC HAL_CRC_Calculate() and HAL_CRC_Accumulate() comments, handling input data pointers that are not * uint32_t.</li>
</ul></li>
<li><strong>HAL FLASH</strong>
<ul>
<li>Added FLASH API HAL_FLASHEx_OBGetUserData() to get the value saved in User data option byte.</li>
<li>Aligned Return value of HAL_FLASH_EndOfOperationCallback function (0xFFFFFFF) when process is finished.</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>Updated GPIO Output Speed literals naming to ensure HAL full compatibility.</li>
<li>Added GPIOD support for STM32070x6 devices.</li>
<li>Modified ADC poll for event to return timeout instead of error.</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>Corrected wrong management of AF after NACK.</li>
<li>Aligned I2C driver with new state machine definition.</li>
<li>Corrected interrupt disabling in I2C_SlaveReceive_ISR() function.</li>
<li>Modified HAL_I2C_Master_Transmit to handle sending data of size 0.</li>
<li>Renamed I2C_CR1_DFN to I2C_CR1_DNF.</li>
</ul></li>
<li><strong>HAL PCD</strong>
<ul>
<li>Updated call to Double Buffering Counter Function.</li>
</ul></li>
<li><strong>HAL PWR</strong>
<ul>
<li>Added do { } while(0) in __HAL_PWR_VDDIO2_EXTI_DISABLE_FALLING_EDGE() multi statement macro.</li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>Performed optimizations for HAL_RCC_ClockConfig() function.</li>
<li>Corrected inversion in LSE drive capability Bit definition.</li>
<li>Performed optimizations for internal oscillators and PLL startup time.</li>
<li>Added GPIOD support for STM32070x6 devices.</li>
<li>Removed GPIOE support for STM32F030xC devices.</li>
<li>Add RCC_USBCLKSOURCE_NONE when HSI48 is not present.</li>
<li>Corrected definition for flag RCC_FLAG_V18PWRRST.</li>
<li>Added missing macro __HAL_RCC_LSEDRIVE_CONFIG.</li>
<li>Aligned naming of macros related to CRS_CFGR register.</li>
<li>Corrected __HAL_RCC_CRS_CLEAR_IT()/__HAL_RCC_CRS_CLEAR_FLAG() macros.</li>
<li>Removed Bit PLLNODIV for STM32F030x6 devices.</li>
<li>Review implementation to automatically enable backup domain.</li>
<li>Added RCC_IT_HSI48RDY definition.</li>
<li>Renamed __HAL_RCC_MCO_CONFIG() to __HAL_RCC_MCO1_CONFIG().</li>
</ul></li>
<li><strong>HAL RTC</strong>
<ul>
<li>Aligned different HAL_RTC_XXIRQHandler() implementations.</li>
<li>Check the behavior of flag WUTWF and corrected update of wakeup counter registers.</li>
<li>Added subsecond fration formula in HAL_RTC_GetTime() function.</li>
<li>Updated Bits mask literals used in macros definition.</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>Corrected __HAL_TIM_SET_PRESCALER timer prescaler definition.</li>
<li>Protected SMCR register of possible overwrite in HAL_TIM_ConfigOCrefClear().</li>
<li>Corrected assert checks in HAL_TIM_ConfigClockSource().</li>
</ul></li>
<li><strong>HAL TSC</strong>
<ul>
<li>Updated IO default state management.</li>
</ul></li>
<li><strong>HAL UART-USART</strong>
<ul>
<li>Corrected behavior of HAL_UART_IRQ_Handler() (removed enabling/disabling of ERR IT source).</li>
<li>Corrected UART_FLAG_SBKF definition.</li>
<li>Corrected values used for max allowed baudrates constant definitions.</li>
<li>Removed USART_CR2_LINEN/USART_CR3_IREN/USART_CR3_SCEN/USART_CR1_UESM bits definitions for STM32F030x6, STM32F030x8, STM32F070xB, STM32F070x6, STM32F030xC.</li>
</ul></li>
<li><strong>HAL WWDG</strong>
<ul>
<li>Aligned WWDG registers Bits naming between all families.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_3_0" aria-hidden="true"> <label for="collapse-section1_3_0" aria-hidden="true"><strong>V1.3.0 / 26-June-2015</strong></label>
<div>
<h2 id="main-changes-9">Main Changes</h2>
<ul>
<li><strong>Maintenance release to fix known defects and enhancements implementation</strong></li>
<li><strong>Complete HAL API alignment (macro/function renaming)</strong></li>
<li><strong>HAL Generic</strong>
<ul>
<li>Update HAL drivers to be MISRA/C++ compliant.</li>
<li>Initialized handle lock in HAL_PPP_Init().</li>
<li>Add SYSCFG define macros to manage FM+ on GPIOs.</li>
<li>Use uint32_t instead of uint8_t/uint_16.</li>
</ul></li>
<li><strong>HAL ADC</strong>
<ul>
<li>Update ADC state machine. Missing state in function HAL_ADCEx_Calibration_Start().</li>
<li>Align ADC_SOFTWARE_START literal on STM32L0xx.</li>
<li>HAL_ADC_PollForConversion(): update to return error status in case of ADC-DMA mode.</li>
<li>HAL_ADC_Init(): ADC resolution must be changed only when ADC is disabled.</li>
<li>ADC_ConversionStop(): correct wrong timeout value.</li>
<li>HAL_ADC_AnalogWDGConfig(): Add missing assert param.</li>
<li>Remove channel for monitoring VBAT power supply pin on F0 Value line devices.</li>
<li>Move sampling time setting into ADC init stucture (keep setting into ADC channel init stucture with comments of obsolete setting).</li>
<li>Move __HAL_UNLOCK() before peripheral activation because if an interruption occurs between ADC enable &amp; __HAL_UNLOCK(), IRQ handler will be executed while HAL still locked.</li>
<li>ADC_DMAConvCplt(): Add call to ADC error callback in case of error.</li>
<li>Rename local variables for compliancy with coding rules (tmpHALstatus ==&gt; tmp_hal_status).</li>
<li>Simplify __HAL_ADC_GET_IT_SOURCE().</li>
<li>Add use of POSITION_VAL.</li>
<li>Add optimization of ADC stabilization delays.</li>
</ul></li>
<li><strong>HAL CAN</strong>
<ul>
<li>Add management of CAN Slave start bank in HAL_CAN_ConfigFilter().</li>
<li>Unlock the CAN process when communication error occurred.</li>
<li>Replace uint32_t Data[8] by uint8_t Data[8] in structures CanTxMsgTypeDef and CanRxMsgTypeDef.</li>
</ul></li>
<li><strong>HAL CEC</strong>
<ul>
<li>Add new API HAL_CEC_GetReceivedFrameSize() to get size of received frame</li>
<li>HAL CORTEX</li>
<li>Add new macro IS_NVIC_DEVICE_IRQ() to check on negative values of IRQn parameter</li>
</ul></li>
<li><strong>HAL CRC</strong>
<ul>
<li>Add new macros __HAL_CRC_GET_IDR() and __HAL_CRC_SET_IDR().</li>
<li>Update __HAL_CRC_SET_IDR macro in resorting to WRITE_REG instead of MODIFY_REG (cycles gain at execution).</li>
</ul></li>
<li><strong>HAL DAC</strong>
<ul>
<li>HAL_DAC_IRQHandler(): update to check on both DAC_FLAG_DMAUDR1 and DAC_FLAG_DMAUDR2.</li>
</ul></li>
<li><strong>HAL DMA</strong>
<ul>
<li>Correct __HAL_DMA_GET_IT_SOURCE brief comments.</li>
</ul></li>
<li>**HAL FLASH*
<ul>
<li>FLASH_OB_GetRDP(): update function to return the FLASH Read Protection level (OB_RDP_LEVEL_x).</li>
<li>FLASH_OB_RDP_LevelConfig(): update function to set the FLASH Read Protection level (OB_RDP_LEVEL_x).</li>
<li>Add missing macro __HAL_FLASH_GET_LATENCY.</li>
<li>Disable WRP not compliant with other family.</li>
<li>Add FLASH_BANK1_END defines.</li>
<li>Remove WRP defines for few defines under devices swicthes.</li>
<li>Add switch to handle option bits BOOT_SEL &amp; nBOOT1 not present on STM32F030xC &amp; STM32F070x6.</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>stm32f0xx_hal_gpio_ex.h: add IR as possible GPIO alternate function 1 for STM32F030x6.</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>HAL_I2C_ER_IRQHandler(): handle NACK test during wait on flag treatment.</li>
</ul></li>
<li><strong>HAL I2S</strong>
<ul>
<li>HAL_I2S_DMAStop(): Correctt DMA Stop function which stops both Rx and Tx channels regardless which one was set-up.</li>
</ul></li>
<li><strong>HAL IRDA</strong>
<ul>
<li>HAL_IRDA_DMAStop(): update comments regarding deletion of LOCK/UNLOCK mechanism.</li>
</ul></li>
<li><strong>HAL PWR</strong>
<ul>
<li>Add macros __HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_EDGE() and __HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_EDGE.</li>
<li>Update HAL_PWR_EnableBkUpAccess() and HAL_PWR_DisableBkUpAccess() comments.</li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>Implement workaround to cover RCC limitation regarding Peripheral enable delay.</li>
<li>HAL_RCC_OscConfig(): correct test on LSEState.</li>
<li>Rework __HAL_RCC_LSE_CONFIG macro to manage correctly LSE_Bypass.</li>
<li>Add defines for RCC_System_Clock_Source_Status.</li>
<li>Follow specific procedure to enable HSE.</li>
<li>Add macros to get the enable or disable status of peripheral clock.</li>
<li>HAL_RCCEx_PeriphCLKConfig(): reset backup domain only if RTC clock source has been changed.</li>
<li>Add interface HAL_RCCEx_GetPeriphCLKFreq.</li>
</ul></li>
<li><strong>HAL RTC</strong>
<ul>
<li>Add missing RTC_FLAG_INIT in flag list.</li>
<li>HAL_RTC_DeInit(): add switch products condition around WakeUp timer registers (WUTWF,WUTR).</li>
<li>Remove RTC_FLAG_INIT as currently unused.</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong>
<ul>
<li>Add missing IDLE flag management.</li>
<li>Align SMARTCARD_Last_Bit defines.</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Fix issue related to missing reset of the Dma Tx callback inside the function HAL_SPI_TransmitReceive_DMA().</li>
<li>In that case only RX callback are used and the call of TX callback can close the communication before the end of the RX processing.</li>
<li>SPI_2linesRxISR_8BIT(): correct issue on RX 2lines with DataSize8bit, even buffer size and CRC 8bit (SPI_RXFIFO_THRESHOLD is not set).</li>
<li>Fit bit update add BSY flag check for all the process.</li>
<li>Add __IO (volatile) to the State member of the SPI_HandleTypeDef struct. to missing reset of the Dma Tx callback inside the function HAL_SPI_TransmitReceive_DMA().</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>Add __HAL_TIM_SET_CAPTUREPOLARITY, TIM_SET_CAPTUREPOLARITY, TIM_RESET_CAPTUREPOLARITY macros.</li>
</ul></li>
<li><strong>HAL UART</strong>
<ul>
<li>Add macro to control CTS and RTS from the customer applications.</li>
<li>UART_DMATransmitCplt(): change implementation to remove WaitOnFlag in ISR.</li>
<li>Change DMA TX management to remove WaitOnFlag in ISR.</li>
<li>Add DMA circular mode support for the communication peripherals.</li>
<li>Add UART NVIC configuration in the HAL_UART_MspInit().</li>
<li>Add the UARTx_IRQHandler() in the stm32fxxx_it.c and the prototype in the stm32fxxx_it.h.</li>
<li>Modify UART DMA implementation issue (missed clear the TC bit in the SR).</li>
<li>Add a OVR flag clear prior resuming DMA RX transfer.</li>
<li>HAL_UART_DMAResume(): Remove UART_CheckIdleState() call and replace it by unlock + return(HAL_OK).</li>
<li>HAL_UART_DMAStop(): remove LOCK/UNLOCK calls.</li>
<li>HAL_UART_DMAStop(): update comments regarding deletion of LOCK/UNLOCK mechanism.</li>
</ul></li>
<li><strong>HAL USART</strong>
<ul>
<li>HAL_USART_IRQHandler(): Correct parameters values of __HAL_USART_CLEAR_IT().</li>
<li>Replace xxxITxxx defines by xxxCLEARxxxF defines in __HAL_USART_CLEAR_IT calls.</li>
<li>HAL_USART_Init(): update to reach max frequencies (enable oversampling by 8).</li>
<li>HAL_USART_DMAPause()/HAL_USART_DMAResume(): add of a OVR flag clear prior resuming DMA RX transfer.</li>
<li>HAL_USART_DMAResume(): Remove UART_CheckIdleState() call and replace it by just an Unlock + ret(HAL_OK).</li>
<li>HAL_USART_DMAStop(): update comments regarding deletion of LOCK/UNLOCK mechanism.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_2_1" aria-hidden="true"> <label for="collapse-section1_2_1" aria-hidden="true"><strong>V1.2.1 / 09-January-2015</strong></label>
<div>
<h2 id="main-changes-10">Main Changes</h2>
<ul>
<li><strong>HAL</strong>
<ul>
<li>stm32f0xx_hal.h: add missing define for USART3_RX/TX DMA remap on channel3 &amp; channel2 for STM32F070xB only</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>stm32f0xx_hal_gpio_ex.h: add I2C1 as possible GPIO alternate function 3 for STM32F070xB</li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>stm32f0xx_hal_rcc_ex.h: add missing USART2_CLK_ENABLE/DISABLE() macros for STM32F070x6</li>
</ul></li>
<li><strong>HAL RTC</strong>
<ul>
<li>stm32f0xx_hal_rtc_ex.h/.c: Enable RTC periodic Wakeup timer feature on STM32F070xB &amp; STM32F030xC</li>
<li>stm32f0xx_hal_rtc_ex.c: remove HAL_RTCEx_Tamper3EventCallback() API for STM32F070xB &amp; STM32F030xC, since there is no TAMPER3 on those products.</li>
</ul></li>
<li><strong>HAL UART</strong>
<ul>
<li>stm32f0xx_hal_uart_ex.c/.h: add HAL_RS485Ex_Init() API for STM32F0xx Value Line devices</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_2_0" aria-hidden="true"> <label for="collapse-section1_2_0" aria-hidden="true"><strong>V1.2.0 / 05-December-2014</strong></label>
<div>
<h2 id="main-changes-11">Main Changes</h2>
<ul>
<li><strong>HAL generic</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>HandleTypeDef.ErrorCode must be typed uint32_t</li>
<li>Update HAL drivers to ensure compliancy w/ C++</li>
<li>Add some generic defines (__NOINLINE) in stm32f0xx_hal_def.h</li>
<li>Case mismatch between #include typo and effective file name generating compiler errors under Linux</li>
<li>Correct various issues for documentation generation (group name, doxygen tags, etc..)</li>
<li>Missing support of I2C_PAx_FMP of F04xx devices</li>
</ul></li>
<li><strong>HAL ADC</strong>
<ul>
<li>Improve HAL ADC comments</li>
<li>Correct issue observed with ADC start simultaneous commands</li>
<li>Remove macro __HAL_ADC_OFR_CHANNEL() since OFRx register is not available on F0 devices.</li>
</ul></li>
<li><strong>HAL CAN</strong>
<ul>
<li><strong>ErrorCode</strong> field is now declared as __IO uint32 instead of <strong>enum HAL_CAN_ErrorTypeDef</strong> to fix C++ compilation issue</li>
</ul></li>
<li><strong>HAL CEC</strong>
<ul>
<li>change <strong>ErrorCode</strong> field declaration from uint32_t to __IO uint32_t</li>
<li>correct CEC state: Ready to Receive state lost upon Transmission end</li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>State field is now declared as uint32_t instead of <strong>enum HAL_COMP_StateTypeDef</strong> to fix C++ compilation issue</li>
<li>change HAL_COMP_GetState() type declaration from HAL_COMP_StateTypeDef to uint32_t to fix C++ compilation issue</li>
</ul></li>
<li><strong>HAL CRC</strong>
<ul>
<li>Wrong <span class="citation" data-cites="ref">@ref</span> in CRCLength field description for documentation generation</li>
<li>Add support of new STM32F0 value line devices STM32F070xB/x6 and STM32F030xC.</li>
</ul></li>
<li><strong>HAL DAC</strong>
<ul>
<li>HAL_DAC_Stop_DMA() code clean up</li>
<li>Use of internal macro MODIFY_REG() to update CR register</li>
</ul></li>
<li><strong>HAL DMA</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>DMA channel remap register renamed for compatibility with other STM32 devices.</li>
<li>Correct wrong comments in __HAL_DMA_GET_FLAG and __HAL_DMA_CLEAR_FLAG macros description</li>
</ul></li>
<li><strong>HAL FLASH</strong>
<ul>
<li>Fix in macro IS_OPTIONBYTE(VALUE) when all option_OB are selected</li>
<li><strong>ErrorCode</strong> field is now declared as uint32 instead of <strong>enum FLASH_ErrorTypeDef</strong> to fix C++ compilation issue</li>
<li>change HAL_FLASH_GetError() type declaration from FLASH_ErrorTypeDef to uint32_t to fix C++ compilation issue</li>
<li>Clean the error context to FLASH_ERROR_NONE before starting new Flash operation</li>
<li>Put all the clear flags in the FLASH_SetSerrorCode()</li>
<li>Stop the programming procedure in case of error detected in HAL_FLASH_Program()</li>
<li>Check error before doing new procedure in HAL_FLASH_IRQhandler()</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>correct Typo in How to use this driver section &amp; update comments</li>
<li>Add assert on GPIO PIN in HAL_GPIO_DeInit()</li>
<li>Add assert on GPIO AF instance to protect HAL_GPIO_Init() from impossible AF configuration</li>
<li>Rename internal macro GET_GPIO_INDEX() into GPIO_GET_INDEX()</li>
<li>Reset Interrupt mode registers only in HAL_GPIO_DeInit()</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>ErrorCode field is now declared as uint32 instead of <strong>enum HAL_I2C_ErrorTypeDef</strong> to fix C++ compilation issue</li>
</ul></li>
<li><strong>HAL I2S</strong>
<ul>
<li><strong>ErrorCode</strong> field is now declared as uint32 instead of <strong>enum HAL_I2S_ErrorTypeDef</strong> to fix C++ compilation issue.</li>
<li>Change <strong>HAL_I2S_GetError()</strong> type declaration from HAL_I2S_ErrorTypeDef to uint32_t to fix C++ compilation issue.</li>
<li>Add use of UNUSED(tmpreg) in __HAL_I2S_CLEAR_OVRFLAG() &amp; __HAL_I2S_CLEAR_UDRFLAG to fix Unused variable warning w/ TrueSTUDIO.</li>
<li>Typo in I2S HAL driver macros list section of stm32f0xx_hal_i2s.c</li>
<li>Missing doxygen tags for I2S_HandleTypeDef fields description (documentation generation)</li>
</ul></li>
<li><strong>HAL IRDA</strong>
<ul>
<li><strong>ErrorCode</strong> field is now declared as uint32 instead of <strong>enum HAL_IRDA_ErrorTypeDef</strong> to fix C++ compilation issue</li>
<li>Missing doxygen tags for IRDA_HandleTypeDef fields description</li>
</ul></li>
<li><strong>HAL PWR</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>Add new API to manage SLEEPONEXIT and SEVONPEND bits of SCR register:
<ul>
<li>HAL_PWR_DisableSleepOnExit()</li>
<li>HAL_PWR_EnableSleepOnExit()</li>
<li>HAL_PWR_EnableSEVOnPend()</li>
<li>HAL_PWR_DisableSEVOnPend()</li>
</ul></li>
<li>Removed useless regulator parameter setting for F0 family in core of HAL_PWR_EnterSLEEPMode()</li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>Add a comment in the How to use this driver section to mention the Peripheral enable delay</li>
<li>Move __HAL_RCC_USART2_CONFIG() &amp; __HAL_RCC_GET_USART2_SOURCE() from stm32f0xx_hal_rcc.h to stm32f0xx_hal_rcc_ex.h since this feature is not supported on all F0 devices</li>
<li>Change <strong>HAL_RCCEx_CRSWaitSynchronization()</strong> type declaration from RCC_CRSStatusTypeDef to uint32_t to fix C++ compilation issue</li>
</ul></li>
<li><strong>HAL RTC</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>Enhance <span class="citation" data-cites="note">@note</span> describing the use of HAL RTC APIs</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong>
<ul>
<li><strong>ErrorCode</strong> field is now declared as uint32 instead of <strong>enum HAL_SMARTCARD_ErrorTypeDef</strong> to fix C++ compilation issue</li>
</ul></li>
<li><strong>HAL SMBUS</strong>
<ul>
<li><strong>ErrorCode &amp; PreviousState</strong> fields are now declared as uint32 instead of <strong>enum HAL_SMBUS_ErrorTypeDef</strong> &amp; <strong>HAL_SMBUS_StateTypeDef</strong> to fix C++ compilation issue</li>
<li>Change <strong>HAL_SMBUS_GetState()</strong> type declaration from HAL_SMBUS_StateTypeDef to uint32_t to fix C++ compilation issue</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li><strong>ErrorCode</strong> field is now declared as uint32 instead of <strong>enum HAL_SPI_ErrorTypeDef</strong> to fix C++ compilation issue</li>
<li>Add use of UNUSED(tmpreg) in __HAL_SPI_CLEAR_MODFFLAG(), __HAL_SPI_CLEAR_OVRFLAG(), __HAL_SPI_CLEAR_FREFLAG() to fix Unused variable warning w/ TrueSTUDIO.</li>
<li>Add DMA circular mode support on SPI HAL driver.</li>
<li>Internal fucntion renaming: HAL_SPI_DMATransmitCplt(), HAL_SPI_DMAReceiveCplt(), HAL_SPI_DMATransmitReceiveCplt() &amp; HAL_SPI_DMAError() renamed respectively into SPI_DMATransmitCplt(), SPI_DMAReceiveCplt(), SPI_DMATransmitReceiveCplt() &amp; SPI_DMAError().</li>
<li>Remove unused HAL_StatusTypeDef SPI_EndRxTxTransaction() prototype</li>
<li>uint32_t driver alignment for compatibility with other STM32 devices</li>
<li>Add new <strong>API HAL_SPI_GetError()</strong>, which was missing on STM32F0xx family</li>
</ul></li>
<li><strong>HAL UART/USART</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong> and <strong>STM32F030xC</strong>.</li>
<li>structure UART_WakeUpTypeDef moved to stm32f0xx_hal_uart_ex.h since wakeup feature is not available on all F0 devices.</li>
<li><strong>ErrorCode</strong> field is now declared as uint32 instead of <strong>enum HAL_U(S)ART_ErrorTypeDef</strong> to fix C++ compilation issue</li>
<li>unused HAL_USART_SetConfig() prototype to be removed from stm32f0xx_hal_usart.h</li>
<li>Add missing API HAL_StatusTypeDef <strong>HAL_LIN_SendBreak()</strong></li>
<li>correct wrong USART_IT_CM value</li>
<li>correct issue with Lin mode data length</li>
<li>Add new value for Stop bit definition: UART_STOPBITS_1_5</li>
</ul></li>
<li><strong>HAL USB</strong>
<ul>
<li>Add support of new STM32F0 value line devices <strong>STM32F070xB/x6</strong>.</li>
<li>Wrong comment in HAL_PCD_Dev(Connect/Disconnect) functions description</li>
<li>Correct _HAL_PCD_CLEAR_FLAG() macros definition</li>
</ul></li>
<li><strong>HAL WWDG</strong>
<ul>
<li>Add new macro to manage WWDG IT &amp; correction:
<ul>
<li>__HAL_WWDG_DISABLE_IT()</li>
<li>__HAL_WWDG_GET_IT()</li>
<li>__HAL_WWDG_GET_IT_SOURCE()</li>
</ul></li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_1_0" aria-hidden="true"> <label for="collapse-section1_1_0" aria-hidden="true"><strong>V1.1.0 / 03-October-2014</strong></label>
<div>
<h2 id="main-changes-12">Main Changes</h2>
<ul>
<li><strong>HAL generic</strong>
<ul>
<li>general improvement of Doxygen Tags for CHM UM generation</li>
<li>Add support of new devices <strong>STM32F091xC, STM32F098xx</strong> in STM32F0xx HAL drivers</li>
<li>minor corrections for Pdf/Chm UM generation</li>
<li>Correction for MISRA</li>
<li>[F098xx] Remove PVD IT line wrapper</li>
<li>FLAG&amp;IT assert macros to be removed</li>
<li>Bad macro name in stm32F0xx_hal.c/.h files</li>
<li>uint32_t Alignement in HAL driver</li>
</ul></li>
<li><strong>HAL</strong> update (for STM32F091xC/STM32F098xx)
<ul>
<li>Add new define for HAL IRDA Enveloppe source Selection</li>
<li>Add new macro IS_HAL_SYSCFG_IRDA_ENV_SEL()</li>
<li>Add new defines for ISR Wrapper (HAL_SYSCFG_ITLINE0, etc..)</li>
<li>Add new macro __HAL_GET_PENDING_IT()</li>
<li>Add new macro __HAL_SYSCFG_IRDA_ENV_SELECTION()</li>
<li>Add new macro __HAL_SYSCFG_GET_IRDA_ENV_SELECTION()</li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>Missing assert param IS_COMP_TRIGGERMODE</li>
</ul></li>
<li><strong>HAL Cortex</strong>
<ul>
<li>remove Macro not supported by cortex-M0 in stm32f0xx.h</li>
</ul></li>
<li><strong>HAL DMA</strong>
<ul>
<li>Add new defines for DMAx Channel remapping (DMAx_CHANNELx_RMP)</li>
<li>Add new defines for DMAx channels remap bit field definition</li>
<li>Add new macros: IS_HAL_DMA1_REMAP(), IS_HAL_DMA2_REMAP()</li>
<li>Add new macro: __HAL_DMA_GET_TC_FLAG_INDEX(), that returns specified transfer complete flag index</li>
<li>Add new macro: __HAL_DMA_GET_HT_FLAG_INDEX(), that returns specified half transfer complete flag index</li>
<li>Add new macro: __HAL_DMA_GET_TE_FLAG_INDEX(), that returns specified transfer error flag index</li>
<li>Add new macro: __HAL_DMA_GET_FLAG()</li>
<li>Add new macro: __HAL_DMA_CLEAR_FLAG()</li>
<li>Add new macro: __HAL_DMA1_REMAP(), __HAL_DMA2_REMAP()</li>
<li>Bit definition name error for HAL_DMA1_CH2 remap on STM32F091xC</li>
<li>HAL_DMA_PollForTransfer updated</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>BSRR regsiter should not be split in BSRRH/BSRRL</li>
<li>rework GPIO_GET_SOURCE</li>
<li>Add new defines for AF functions selection</li>
</ul></li>
<li><strong>HAL I2S</strong>
<ul>
<li>Supp ClockSource in Init</li>
</ul></li>
<li><strong>HAL IRDA</strong>
<ul>
<li>Incorrect definition for IS_IRDA_REQUEST_PARAMETER macro</li>
</ul></li>
<li><strong>HAL IWDG</strong>
<ul>
<li>Use WRITE_REG instead of SET_BIT</li>
</ul></li>
<li><strong>HAL PWR</strong>
<ul>
<li>Functions for VDDIO2 management missing in all F09xx, F07xx, F04xx</li>
<li>PVD feature need falling/rising Event modes
<ul>
<li>Update defines name PWR_MODE_EVT/PWR_MODE_IT_RISING/PWR_MODE_IT_FALLING/PWR_MODE_IT_RISING_FALLING to PWR_<strong>PVD</strong>_MODE_<strong>NORMAL</strong>/PWR_<strong>PVD</strong>_MODE_IT_RISING/PWR_<strong>PVD</strong>_MODE_IT_FALLING/PWR_<strong>PVD</strong>_MODE_IT_RISING_FALLING</li>
<li>Add new defines PWR_PVD_MODE_EVENT_RISING, PWR_PVD_MODE_EVENT_FALLING, PWR_PVD_MODE_EVENT_RISING_FALLING</li>
<li>Update macro IS_PWR_PVD_MODE()</li>
<li>change macro name: __HAL_<strong>PWR</strong>_PVD_EXTI_ENABLE_IT(), __HAL_<strong>PWR</strong>_PVD_EXTI_DISABLE_IT(), __HAL_<strong>PWR</strong>_PVD_EXTI_GENERATE_SWIT(), __HAL_<strong>PWR</strong>_PVD_EXTI_GET_FLAG(), __HAL_<strong>PWR</strong>_PVD_EXTI_CLEAR_FLAG()</li>
<li>Add new macro __HAL_PWR_PVD_EXTI_ENABLE_EVENT(), __HAL_PWR_PVD_EXTI_DISABLE_EVENT(), __HAL_PWR_PVD_EXTI_CLEAR_EGDE_TRIGGER(), __HAL_PWR_PVD_EXTI_SET_FALLING_EGDE_TRIGGER()</li>
</ul></li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>Defect correction:
<ul>
<li>HAL_RCC_OscConfig: HSERDY has to be checked also in by pass mode</li>
<li>STM32F091xC/STM32F098xx
<ul>
<li>New structure RCC_PeriphCLKInitTypeDef</li>
<li>Add defines for RCC new peripheral clock selection: RCC_PERIPHCLK_USART1, RCC_PERIPHCLK_USART2, RCC_PERIPHCLK_I2C1, RCC_PERIPHCLK_CEC, RCC_PERIPHCLK_RTC, RCC_PERIPHCLK_USART3</li>
<li>Add macro IS_RCC_PERIPHCLK()</li>
<li>Add defines for USART3 clock source selection (RCC_USART3CLKSOURCE_PCLK1, RCC_USART3CLKSOURCE_SYSCLK, CC_USART3CLKSOURCE_LSE, CC_USART3CLKSOURCE_HSI</li>
<li>Add macro IS_RCC_USART3CLKSOURCE()</li>
<li>Add macro __HAL_RCC_GET_USART3_SOURCE()</li>
<li>Add macro __HAL_RCC_USART3_CONFIG()</li>
<li>add clock enable macros for new UART: __USART5_CLK_ENABLE, __USART6_CLK_ENABLE, __USART7_CLK_ENABLE, __USART8_CLK_ENABLE</li>
<li>add clock disable macros for new UART: __USART5_CLK_DISABLE, __USART6_CLK_DISABLE, __USART7_CLK_DISABLE, __USART8_CLK_DISABLE</li>
<li>add Force reset macros for new UART: __USART5_FORCE_RESET, __USART6_FORCE_RESET, __USART7_FORCE_RESET, __USART8_FORCE_RESET</li>
<li>add Release reset macros for new UART: __USART5_RELEASE_RESET, __USART6_RELEASE_RESET, __USART7_RELEASE_RESET, __USART8_RELEASE_RESET</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong>
<ul>
<li>change SMARTCARD_AdvFeatureConfig() from exported to static private function</li>
<li>STM32F091xC/STM32F098xx:
<ul>
<li>Add new macro __HAL_SMARTCARD_GETCLOCKSOURCE() for USART1, USART2, USART3, USAR</li>
</ul></li>
</ul></li>
<li><strong>HAL SMBUS</strong>
<ul>
<li>change SMARTCARD_AdvFeatureConfig() from exported to static private function</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Function HAL_SPI_TransmitReceive muse use SPI_FLAG_RXNE to read CRC</li>
<li>Function HAL_SPI_IRQHandler, in case of error the state must be reset to ready</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>Missed/Unused assert param to be added/removed</li>
<li>Trigger interrupt should be activated when working with a slave mode</li>
<li>Break interrupt should be activated in HAL_TIMEx_OCN_Start_IT</li>
<li>Wrong CCMR register cleared in HAL_TIM_IRQHandler for Input Capture event Channel 3 and 4</li>
<li>missing assert in HAL_TIMEx_ConfigBreakDeadTime</li>
<li>Add URS_ENABLE/ URS_DISABLE macros</li>
</ul></li>
<li><strong>HAL UART/USART</strong>
<ul>
<li>Change UART TX-IT implementation to remove WaitOnFlag in ISR</li>
<li>STM32F091xC/STM32F098xx:
<ul>
<li>Add new macro __HAL_UART_GETCLOCKSOURCE() for USART1, USART2, USART3, USART4</li>
<li>Add new macro __HAL_USART_GETCLOCKSOURCE() for USART1, USART2, USART3, USART4</li>
</ul></li>
</ul></li>
<li><strong>HAL USB</strong>
<ul>
<li>Bad IN/OUT EndPoint parameter array size</li>
</ul></li>
<li><strong>HAL WWDG</strong>
<ul>
<li>improvements from other families</li>
</ul></li>
</ul>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Driver</th>
<th style="text-align: center;">Defect Correction</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">PWR</td>
<td style="text-align: center;">PVD feature need falling/rising Event modes</td>
</tr>
<tr class="even">
<td style="text-align: left;">COMP</td>
<td style="text-align: center;">Missing assert param IS_COMP_TRIGGERMODE</td>
</tr>
<tr class="odd">
<td style="text-align: left;">RCC</td>
<td style="text-align: center;">HAL_RCC_OscConfig: HSERDY has to be checked also in by pass mode</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_0_1" aria-hidden="true"> <label for="collapse-section1_0_1" aria-hidden="true"><strong>V1.0.1 / 18-June-2014</strong></label>
<div>
<h2 id="main-changes-13">Main Changes</h2>
<ul>
<li><strong>HAL generic</strong> update
<ul>
<li>Fix flag clear procedure: use atomic write operation = instead of ready-modify-write operation |= or &amp;=</li>
<li>Fix on Timeout management, Timeout value set to 0 passed to API automatically exits the function after checking the flag without any wait.</li>
<li>Add new macro __HAL_RESET_HANDLE_STATE to reset a given handle state.</li>
</ul></li>
<li><strong>HAL CEC</strong> update
<ul>
<li>Process no more locked during the transmission in interrupt mode.</li>
</ul></li>
<li><strong>HAL COMP</strong> update
<ul>
<li>Add NonInvertingInput field in the COMP_InitTypeDef structure.</li>
<li>Add new defines COMP_NONINVERTINGINPUT_IO1 and COMP_NONINVERTINGINPUT_DAC1SWITCHCLOSED</li>
</ul></li>
<li><strong>HAL DMA</strong> update
<ul>
<li>Fix in HAL_DMA_PollForTransfer() to set error code HAL_DMA_ERROR_TE in case of HAL_ERROR status</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>Add management of NACK event in Master transmitter mode and Slave transmitter/receiver modes (only in polling mode), in that case the current transfer is stopped.</li>
</ul></li>
<li><strong>HAL I2S</strong> update
<ul>
<li>I2S clock source change: new define I2S_CLOCK_SYSCLK, remove I2S_CLOCK_PLL</li>
<li>Improvement done in I2S transfer/receive processes</li>
</ul></li>
<li><strong>HAL IRDA</strong> update
<ul>
<li>Add new enum typedef IRDA_ClockSourceTypeDef</li>
<li>Add new macro __HAL_IRDA_GETCLOCKSOURCE</li>
<li>Change in HAL_IRDA_Transmit_IT() to enable IRDA_IT_TXE instead of IRDA_IT_TC.</li>
<li>Process no more locked during the transmission in interrupt mode.</li>
</ul></li>
<li><strong>HAL PCD</strong> update
<ul>
<li>Add new macro __HAL_USB_EXTI_GENERATE_SWIT</li>
</ul></li>
<li><strong>HAL PWR</strong> update
<ul>
<li>Fix in HAL_PWR_EnterSTANDBYMode() to not clear Wakeup flag (WUF), which need to be cleared at application level before to call this function</li>
</ul></li>
<li><strong>HAL RCC</strong> update
<ul>
<li>Add USB peripheral and clocking macros for STM32F078xx device.</li>
<li>Fix HSI Calibration issue when selected as SYSCLK</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> update
<ul>
<li>Change in HAL_SMARTCARD_Transmit_IT() to enable SMARTCARD_IT_TXE instead of SMARTCARD_IT_TC.</li>
<li>Process no more locked during the transmission in interrupt mode.</li>
</ul></li>
<li><strong>HAL SMBUS</strong> update
<ul>
<li>Fix Slave acknowledge issue: Slave should ack each bit and so stretch the line till the bit is not ack</li>
</ul></li>
<li><strong>HAL TIM</strong> update
<ul>
<li>Fix macro __HAL_TIM_PRESCALER</li>
</ul></li>
<li><strong>HAL TSC</strong> update
<ul>
<li>Fix define TSC_ACQ_MODE_SYNCHRO</li>
</ul></li>
<li><strong>HAL UART</strong> update
<ul>
<li>Change in HAL_LIN_Init() parameter BreakDetectLength to uint32_t</li>
<li>Change in HAL_UART_Transmit_IT() to enable UART_IT_TXE instead of UART_IT_TC.</li>
<li>Process no more locked during the transmission in interrupt mode.</li>
</ul></li>
<li><strong>HAL USART</strong> update
<ul>
<li>Change USART_InitTypeDef fields to uint32_t type</li>
<li>Rename __USART_ENABLE and __USART_DISABLE macros to respectively __HAL_USART_ENABLE and __HAL_USART_DISABLE</li>
<li>Change in HAL_USART_Transmit_IT() to enable USART_IT_TXE instead of USART_IT_TC.</li>
<li>Process no more locked during the transmission in interrupt mode.</li>
<li>Change in HAL_USART_TransmitReceive_DMA() to manage DMA half transfer mode</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1_0_0" aria-hidden="true"> <label for="collapse-section1_0_0" aria-hidden="true"><strong>V1.0.0 / 12-June-2018</strong></label>
<div>
<h2 id="main-changes-14">Main Changes</h2>
<ul>
<li>First official release of STM32F0xx HAL drivers for <strong>STM32F030x4/x6, STM32F030x8, STM32F031x4/x6, STM32F051x4/x6/x8, STM32F071x8/xB, STM32F042x4/x6, STM32F072x8/xB, STM32F038xx, STM32F048xx, STM32F058xx and STM32F078xx devices.</strong></li>
</ul>
</div>
</div>
</div>
</div>
<footer class="sticky">
For complete documentation on STM32 Microcontrollers </mark> , visit: <span style="font-color: blue;"><a href="http://www.st.com/stm32">www.st.com/stm32</a></span> <em>This release note uses up to date web standards and, for this reason, should not be opened with Internet Explorer but preferably with popular browsers such as Google Chrome, Mozilla Firefox, Opera or Microsoft Edge.</em>
</footer>
</body>
</html>
