<!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 STM32L0xx 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-stm32l0xx-hal-drivers"><small>Release Notes for</small> <mark>STM32L0xx HAL Drivers</mark></h1>
<p>Copyright © 2017 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">License</h1>
<p>Licensed by ST under BSD 3-Clause license (the "License"). You may not use this package except in compliance with the License. You may obtain a copy of the License at:</p>
<p><a href="https://opensource.org/licenses/BSD-3-Clause">https://opensource.org/licenses/BSD-3-Clause</a></p>
<h1 id="purpose">Purpose</h1>
<p>The STM32Cube HAL and LL, an STM32 abstraction layer embedded software, ensure maximized portability across STM32 portfolio.</p>
<p>The portable APIs layer provides a generic, multi instanced and simple set of APIs to interact with the upper layer (application, libraries and stacks). It is composed of native and extended APIs set. It is directly built around a generic architecture and allows the build-upon layers, like the middleware layer, to implement its functions without knowing in-depth the used STM32 device. This improves the library code reusability and guarantees an easy portability on other devices and STM32 families.</p>
<p>The Low Layer (LL) drivers are part of the STM32Cube firmware HAL that provides a basic set of optimized and one shot services. The Low layer drivers, contrary to the HAL ones are not fully portable across the STM32 families; the availability of some functions depends on the physical availability of the relative features on the product. The Low Layer (LL) drivers are designed to offer the following features:</p>
<ul>
<li>New set of inline functions for direct and atomic register access</li>
<li>One-shot operations that can be used by the HAL drivers or from application level</li>
<li>Full independence from HAL and standalone usage (without HAL drivers)</li>
<li>Full features coverage of all the supported peripherals</li>
</ul>
</div>
<div class="col-sm-12 col-lg-8">
<h1 id="update-history">Update History</h1>
<div class="collapse">
<input type="checkbox" id="collapse-section1_10_3" checked aria-hidden="true"> <label for="collapse-section1_10_3" aria-hidden="true">V1.10.3 / 07-August-2020</label>
<div>
<h2 id="main-changes">Main Changes</h2>
<ul>
<li>General updates to fix known defects and enhancements implementation</li>
</ul>
<h2 id="contents">Contents</h2>
<ul>
<li><strong>HAL Generic</strong> update
<ul>
<li>Add new template driver to configure timebase using TIMER :
<ul>
<li>stm32l0xx_hal_timebase_tim_template.c</li>
</ul></li>
</ul></li>
<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 improve robustness: allow multi Pin’s toggling</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>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section15" aria-hidden="true"> <label for="collapse-section15" aria-hidden="true">V1.10.2 / 22-February-2019</label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<h3 id="patch-release">Patch release</h3>
<ul>
<li>Update of <strong>HAL</strong> driver to include latest corrections and ensure compatibility with legacy code.</li>
<li>The <strong>V1.10.2</strong> version contains all the updates implemented in <strong>V1.10.1</strong> version. For more details, please refer to the History.</li>
</ul>
<h2 id="contents-1">Contents</h2>
<ul>
<li><strong>HAL </strong>
<ul>
<li>Updated HAL_GetUID() functions to correct address offset.</li>
</ul></li>
<li><strong>Legacy</strong>
<ul>
<li>Updated stm32_hal_legacy.h file to add missing definitions and ensure compatibility with legacy code.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section14" aria-hidden="true"> <label for="collapse-section14" aria-hidden="true">V1.10.1 / 08-February-2019</label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<h3 id="patch-release-1">Patch release</h3>
<ul>
<li>Update of <strong>HAL FLASH, RCC and SPI</strong> drivers to include latest corrections</li>
</ul>
<h2 id="contents-2">Contents</h2>
<ul>
<li><strong>HAL RCC</strong>
<ul>
<li>Updated HAL_RCC_OscConfig() to add missing checks and to modify return status.</li>
</ul></li>
<li><strong>HAL FLASH</strong>
<ul>
<li>Updated HAL_FLASH_Unlock() and HAL_FLASH_OB_Unlock() to handle interrupts disabling.</li>
<li>Updated FLASH_OB_GetRDP() to return the correct RDP level.</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Updated HAL SPI driver to handle STM32L0 erratasheets.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section13" aria-hidden="true"> <label for="collapse-section13" aria-hidden="true">V1.10.0 / 26-October-2018</label>
<div>
<h2 id="main-changes-3">Main Changes</h2>
<h3 id="major-maintenance-release">Major maintenance release</h3>
<ul>
<li>Add support of new <strong>L0 Value Line</strong> devices</li>
<li>Add support of <strong>HAL callback registration</strong> feature</li>
<li>Add several enhancements implementation</li>
<li>Fix known defects to be aligned with others STM32 series</li>
</ul>
<h2 id="contents-3">Contents</h2>
<ul>
<li><strong>HAL/LL generic</strong>
<ul>
<li>Add support of HAL callback registration feature
<ul>
<li>The feature disabled by default is available for the following HAL drivers:
<ul>
<li>ADC, COMP, DAC, I2C, I2S, IRDA, LPTIM, PCD, RNG, RTC, SMARTCARD, SMBUS, SPI, TIM, TSC, UART, USART and WWDG</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 stm32l0xx_hal_conf.h project configuration file (template file stm32l0xx_hal_conf_template.h available from Drivers/STM32L0xx_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>
<li>Updated HAL/LL Driver compliancy with MISRA C 2004 rules
<ul>
<li>MISRA C 2004 rules 10.4, 11.4, 12.4</li>
</ul></li>
<li>Updated HAL/LL Driver compliancy with MISRA C 2012 rules
<ul>
<li>MISRA C 2012 rules 16.3, 17.4, 21.1</li>
</ul></li>
<li>Corrected Doxygen tags in macros description to have generate correct CHM format.</li>
<li>stm32l0xx_hal_def.h
<ul>
<li>Updated file to avoid compiler warnings from __packed definitions.</li>
<li>Updated UNUSED() macro to fix compilation warning with g++ compiler.</li>
<li>Replaced include stdio.h by stddef.h.</li>
<li>Updated __RAM_FUNC define to not impose function type.</li>
</ul></li>
<li>stm32l0xx_hal_conf_template.h
<ul>
<li>Updated default MSI_VALUE reset value set in SystemCoreClock.</li>
<li>Added USE_SPI_CRC definition to be aligned with SPI driver.</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL</strong>
<ul>
<li>Added HAL_GetUIDw0(), HAL_GetUIDw1() and HAL_GetUIDw2() for 96-bit UID.</li>
<li>Modified default HAL_Delay implementation to guarantee minimum delay.</li>
</ul></li>
<li><strong>HAL/LL ADC</strong>
<ul>
<li>Updated IS_ADC_EOC_SELECTION macro (removed unused literal).</li>
<li>Updated LL_ADC_Init function to apply correct clock settings in init structure.</li>
<li>Added missing define for regular external trigger source definitions.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_ADC_RegisterCallback() and HAL_ADC_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_ADC_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>Updated HAL_COMP_Init, HAL_COMPEx_EnableVREFINT, HAL_COMPEx_DisableVREFINT functions after reintroduction of EN_VREFINT bit in SYSCFG_CFGR3 register.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_COMP_RegisterCallback() and HAL_COMP_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_COMP_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL CORTEX</strong>
<ul>
<li>Modified HAL_MPU_Enable()/HAL_MPU_Disable() functions to allow clear of the whole control register.</li>
</ul></li>
<li><strong>HAL CRC</strong>
<ul>
<li>Aligned HAL/LL CRC driver with latest updates and enhancements.</li>
<li>Updated CRC driver to remove compilation warnings.</li>
</ul></li>
<li><strong>HAL DAC</strong>
<ul>
<li>Add callback registration feature
<ul>
<li>Add HAL_DAC_RegisterCallback() and HAL_DAC_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_DAC_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL DMA</strong>
<ul>
<li>Aligned HAL/LL DMA drivers with latest updates and enhancements .</li>
</ul></li>
<li><strong>HAL FIREWALL</strong>
<ul>
<li>Ensured Non-Volatile Data Segment length is set to protect code segment.</li>
</ul></li>
<li><strong>HAL FLASH</strong>
<ul>
<li>Corrected inconsistency between HAL_Flash_Lock and HAL_Flash_Unlock.</li>
<li>Corrected __HAL_FLASH_BUFFER_CACHE_ENABLE() and __HAL_FLASH_BUFFER_CACHE_DISABLE() for FLASH Buffer cache management.</li>
<li>Updated HAL_FLASHEx_DATAEEPROM_Unlock() to protect writing of PEKEY1/PEKEY2 against interrupts.</li>
<li>Updated IS_OBEX macro to fix issue in FLASH_DualBoot Example.</li>
</ul></li>
<li><strong>LL GPIO</strong>
<ul>
<li>Renamed GPIO_AFRL_AFRLx and GPIO_AFRL_AFRHx bit to GPIO_AFRL_AFSELx.</li>
</ul></li>
<li><strong>HAL/LL I2C</strong>
<ul>
<li>Add callback registration feature
<ul>
<li>Add HAL_I2C_RegisterCallback(), HAL_I2C_UnRegisterCallback(), HAL_I2C_RegisterAddrCallback() and HAL_I2C_UnRegisterAddrCallback() APIs</li>
<li>Add callback identifiers in HAL_I2C_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
<li>Added missing cast in I2C_GET_DMA_REMAIN_DATA macro definition.</li>
<li>Updated I2C_WaitOnRXNEFlagUntilTimeout function to check I2C_FLAG_RXNE.</li>
<li>Updated comments about Device Address parameter (DevAddress) description in I2C functions header.</li>
<li>Updated IS_I2C_TRANSFER_OPTIONS_REQUEST definition by adding I2C_LAST_FRAME_NO_STOP option, which allows to call transmit or receive at any know time.</li>
<li>Added restart condition for each call of HAL_I2C_Master_Sequential_xxxx_IT.</li>
<li>Updated ErrorCode to correct wrong returned value after waiting until BUSY flag is reset.</li>
<li>Updated error management in I2C_ITSlaveCplt() function.</li>
<li>Corrected issue in HAL_I2C_Mem_Read_DMA() function.</li>
<li>Corrected issue in I2C slave when master sends RESTART instead of STOP.</li>
<li>Fix issue with clearing ADDR flag in I2C_ITSlaveCplt() function.</li>
<li>Fix MISRAC2012 issue
<ul>
<li>Renamed HAL_I2C_Master_Sequential_Transmit_IT(DMA) to HAL_I2C_Master_Seq_Transmit_IT(DMA).</li>
<li>Renamed HAL_I2C_Master_Sequential_Receive_IT(DMA) to HAL_I2C_Master_Seq_Receive_IT(DMA).</li>
<li>Renamed HAL_I2C_Slave_Sequential_Transmit_IT(DMA) to HAL_I2C_Slave_Seq_Transmit_IT(DMA).</li>
<li>Renamed HAL_I2C_Slave_Sequential_Receive_IT(DMA) to HAL_I2C_Slave_Seq_Receive_IT(DMA).</li>
</ul></li>
</ul></li>
<li><strong>HAL I2S</strong>
<ul>
<li>Aligned HAL I2S driver with latest updates and enhancements.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_I2S_RegisterCallback() and HAL_I2S_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_I2S_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL IRDA</strong>
<ul>
<li>Aligned HAL IRDA driver with latest updates and enhancements.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_IRDA_RegisterCallback() and HAL_IRDA_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_IRDA_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL LPTIM</strong>
<ul>
<li>Aligned HAL/LL LPTIM driver with updates and enhancements.</li>
<li>Corrected LL_LPTIM_TRIG_SOURCE_RTCTAMP1 and LL_LPTIM_TRIG_SOURCE_RTCTAMP3 definitions according to supported devices.</li>
<li>Corrected management of EXTI line during LPTIM wakeup</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_LPTIM_RegisterCallback() and HAL_LPTIM_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_LPTIM_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL PWR</strong>
<ul>
<li>Rename LL_PWR_IsActiveFlag_VOSF() to LL_PWR_IsActiveFlag_VOS() to be compliant with all STM32 families.</li>
<li>Updated HAL_PWR_EnterSLEEPMode() to add NOP to ensure all pending instructions are flushed before entering low power mode.</li>
</ul></li>
<li><strong>HAL RNG</strong>
<ul>
<li>Aligned HAL RNG driver with latest updates and enhancements.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_RNG_RegisterCallback(), HAL_RNG_UnRegisterCallback(), HAL_RNG_RegisterReadyDataCallback() and HAL_RNG_UnRegisterReadyDataCallback() APIs</li>
<li>Add callback identifiers in HAL_RNG_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL RCC</strong>
<ul>
<li>Updated HAL_RCC_OscConfig(), which returns HAL_ERROR to apply HSI divider 4 when HSI used as clock source.</li>
<li>Updated HAL_RCC_OscConfig() to reset HSI on state when RCC_HSI_OUTEN configuration is selected .</li>
<li>Updated value of RCC_FLAG_FWRST.</li>
<li>Changed HAL_RCC_DeInit() to HAL_StatusTypeDef.</li>
<li>Updated HAL_RCC_DeInit() and LL_RCC_DeInit() to also clear interrupts and reset flags.</li>
<li>Updated HAL_RCC_DeInit() and LL_RCC_DeInit() to add check on PLLRDY before clearing PLLCFGR register.</li>
<li>Added new LL_RCC_PLL_SetMainSource macro to set the PLL source without enabling any PLL.</li>
<li>Updated RCC_GetSystemClockFreq() by checking HSIDIVF for divider 4 when HSI is used.</li>
<li>Updated HAL_RCC_OscConfig() to not return HAL_ERROR if request repeats the current configuration.</li>
</ul></li>
<li><strong>HAL/LL RTC</strong>
<ul>
<li>Aligned HAL/LL RTC driver with latest updates and enhancements.</li>
<li>Updated RTC driver to use the bit RTC_CR_BKP instead of RTC_CR_BCK.</li>
<li>Updated implementation of LL_RTC_DATE_Get() function().</li>
<li>Corrected __HAL_RTC_TAMPER_GET_IT() macro definition.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_RTC_RegisterCallback() and HAL_RTC_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_RTC_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong>
<ul>
<li>Aligned HAL SMARTCARD driver with latest updates and enhancements.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_SMARTCARD_RegisterCallback() and HAL_SMARTCARD_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_SMARTCARD_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL SMBUS</strong>
<ul>
<li>Aligned HAL SMBUS driver with latest updates and enhancements.</li>
<li>Updated HAL_SMBUS_ER_IRQHandler function to manage SMBUS interrupts error handler.</li>
<li>Updated SMBUS_TransferConfig function (I2C_CR2 register update).</li>
<li>Updated comments about Device Address parameter (DevAddress) description in SMBUS functions header.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_SMBUS_RegisterCallback(), HAL_SMBUS_UnRegisterCallback(), HAL_SMBUS_RegisterAddrCallback() and HAL_SMBUS_UnRegisterAddrCallback() APIs</li>
<li>Add callback identifiers in HAL_SMBUS_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL SPI</strong>
<ul>
<li>Aligned HAL/LL SPI driver with latest updates and enhancements.</li>
<li>Fixed issue in HAL_SPI_Transmit() and HAL_SPI_TransmitReceive() functions.</li>
<li>Removed define LL_SPI_SR_UDR which available only for I2S feature.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_SPI_RegisterCallback() and HAL_SPI_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_SPI_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL TIM</strong>
<ul>
<li>Aligned L0 HAL/LL TIM driver with latest updates and enhancements.</li>
<li>Fixed error in LL_TIM_EnableUpdateEvent, LL_TIM_DisableUpdateEvent functions.</li>
<li>Updated comments in HAL/LL functions to describe how to switch from Center Aligned counter mode to Edge Aligned Down mode.</li>
<li>Corrected offset definitions (TIM_DMABASE_DMAR, TIM_DMABASE_OR) for burst access.</li>
<li>Updated HAL_TIM_OnePulse_xxx functions to prevent unused argument(s) compilation warnings.</li>
<li>Add support of preload control in HAL TIM API.</li>
<li>Removed usage of STM32L0 device compilation switch in remap constant and HAL_TIMEx_RemapConfig definitions.</li>
<li>Remove reference to TIMx_SMCR.OCCS related constants/functions, not supported by L0 serie.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_TIM_RegisterCallback() and HAL_TIM_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_TIM_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL TSC</strong>
<ul>
<li>Aligned HAL TSC driver with latest updates and enhancements.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_TSC_RegisterCallback() and HAL_TSC_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_TSC_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL UART/USART/LPUART</strong>
<ul>
<li>Aligned HAL UART/USART/LPUART drivers with latest updates and enhancements.</li>
<li>Aligned __HAL_UART_GET_IT and __HAL_UART_GET_IT_SOURCE macros with others series.</li>
<li>Add missing HAL_UARTEx_EnableClockStopMode() function.</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_UART_RegisterCallback() and HAL_UART_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_UART_CallbackIDTypeDef enumerated typedef</li>
<li>Add HAL_USART_RegisterCallback() and HAL_USART_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_USART_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>LL UTILS</strong>
<ul>
<li>Corrected LL_GetUID_Word2 function to fix error in UID flash location.</li>
<li>Fixed mismatch return type in LL_GetPackageType(void).</li>
<li>Update UTILS_MAX_FREQUENCY_SCALE3 value.</li>
</ul></li>
<li><strong>HAL USB</strong>
<ul>
<li>Aligned HAL USB driver with latest updates and enhancements.</li>
<li>Upgrade to USB Device Library v2.5.1.</li>
</ul></li>
<li><strong>HAL WWDG</strong>
<ul>
<li>ligned HAL WWDG driver with latest updates and enhancements.</li>
<li>dd callback registration feature
<ul>
<li>Add HAL_WWDG_RegisterCallback() and HAL_WWDG_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_WWDG_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section12" aria-hidden="true"> <label for="collapse-section12" aria-hidden="true">V1.9.0 / 12-January-2018</label>
<div>
<h2 id="main-changes-4">Main Changes</h2>
<h3 id="internal-release">Internal release</h3>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section11" aria-hidden="true"> <label for="collapse-section11" aria-hidden="true">V1.8.2 / 25-August-2017</label>
<div>
<h2 id="main-changes-5">Main Changes</h2>
<h3 id="maintenance-release">Maintenance release</h3>
<h2 id="contents-4">Contents</h2>
<ul>
<li><strong>HAL/LL generic</strong>
<ul>
<li>Updated :</li>
<li>Removed DATE and VERSION fields from header files.</li>
<li>Updated CHM User Manual for Drivers/STM32L0xx_HAL_Driver.</li>
</ul></li>
<li><strong>LL ADC</strong>
<ul>
<li>Updated LL ADC driver to exclude __LL_ADC_CALC_TEMPERATURE macro for STM32L011xx devices.</li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>Updated HAL_COMP_Init manage default case as LPTIM1 for COMP1 and LPTIM2 for COMP2.</li>
</ul></li>
<li><strong>HAL/LL I2C</strong>
<ul>
<li>Replaced POSITION val notion by associated I2C_xxx_pos CMSIS definition.</li>
<li>Updated LL_I2C_Init() function to add condition to test the value of OwnAddress1 before calling the inline LL function LL_I2C_EnableOwnAddress1().</li>
<li>Updated implementation of I2C_TransferConfig() function.</li>
</ul></li>
<li><strong>HAL PCD</strong>
<ul>
<li>Removed the lock/unlock from HAL_PCD_EP_Receive/HAL_PCD_EP_Transmit functions.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section10" aria-hidden="true"> <label for="collapse-section10" aria-hidden="true">V1.8.1 / 14-April-2017</label>
<div>
<h2 id="main-changes-6">Main Changes</h2>
<h3 id="patch-release-2">Patch release</h3>
<h2 id="contents-5">Contents</h2>
<ul>
<li><strong>HAL LCD</strong>
<ul>
<li>Update of stm32l0xx_hal_lcd.h to avoid C++ compilation errors.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section9" aria-hidden="true"> <label for="collapse-section9" aria-hidden="true">V1.8.0 / 25-November-2016</label>
<div>
<h2 id="main-changes-7">Main Changes</h2>
<h3 id="maintenance-release-1">Maintenance release</h3>
<h2 id="contents-6">Contents</h2>
<ul>
<li><strong>HAL generic</strong>
<ul>
<li>Updated HAL Driver compliancy with MISRA C 2004 rules:
<ul>
<li>MISRA C 2004 rule 2.2 (source code shall only use /* */ style comments)</li>
<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.4 (value of a complex expression of floating type shall only be cast to a floating type that is narrower or of the same size)</li>
<li>MISRA C 2004 rule 10.6 (U suffix applied to all constants of unsigned type)</li>
<li>MISRA C 2004 rule 12.6 (logical operators should not be confused with bitwise operators)</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.8 (statement forming the body of a switch, while, do while or for statement shall be a compound statement)</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 19.10 (in function-like macro definition, each instance of a parameter shall be enclosed in parenthesis)</li>
<li>MISRA C 2004 rule 19.11 (all macro identifiers in preprocessor directives shall be defined before use)</li>
<li>MISRA C 2004 rule 19.15 (precautions shall be taken in order to prevent the contents of a header file being included twice)</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL ADC</strong>
<ul>
<li>Corrected ADC_SAMPLETIME_xCYCLE_5 naming to be aligned to reference manual.</li>
<li>Enabled management of low power auto-wait: flags must be cleared by user when fetching ADC conversion data.</li>
<li>Disabled DMA transfer during ADC calibration.</li>
</ul></li>
<li><strong>HAL CRC</strong>
<ul>
<li>Updated HAL_CRC_DeInit() function (restored IDR Register to Reset value).</li>
</ul></li>
<li><strong>HAL COMP</strong>
<ul>
<li>Updated HAL_COMP_Init() function to clear EXTI interrupt mode in case comparator is re-configured in mode trigger none.</li>
<li>Updated HAL_COMP_IRQHandler() function in window mode, so that both EXTI flags are cleared and HAL_COMP_TriggerCallback() function is called only once.</li>
<li>Updated HAL COMP init() function: VrefInt startup delay is taken into account, with delay of duration COMP_DELAY_VOLTAGE_SCALER_STAB_US.</li>
<li>Updated HAL_COMPEx_EnableVREFINT() by adding Wait Time.</li>
</ul></li>
<li><strong>HAL DMA</strong>
<ul>
<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 FLASH </strong>
<ul>
<li>Updated HAL_FLASH_IRQHandler(), HAL_FLASHEx_Erase_IT(), HAL_FLASH_Program_IT(), and HAL_FLASHEx_Erase_IT() functions.</li>
<li>Renamed HAL_FLASHRAMFUNC_GetError() sto HAL_FLASHEx_GetError().</li>
</ul></li>
<li><strong>HAL GPIO</strong>
<ul>
<li>Updated IS_GPIO_PIN() macro to cover full u32 bits.</li>
<li>Updated HAL_GPIO_DeInit() function to configure GPIO port mode register to input state.</li>
</ul></li>
<li><strong>HAL I2C</strong>
<ul>
<li>Aligned HAL I2C driver with the new state machine definition.</li>
<li>Added support of repeated start feature with the following new APIs
<ul>
<li>HAL_I2C_Master_Sequential_Transmit_IT(), HAL_I2C_Master_Sequential_Receive_IT() and HAL_I2C_Master_Abort_IT(),</li>
<li>HAL_I2C_Slave_Sequential_Transmit_IT() and HAL_I2C_Slave_Sequential_Receive_IT()</li>
<li>HAL_I2C_EnableListen_IT() and HAL_I2C_DisableListen_IT()</li>
<li>New user callbacks HAL_I2C_ListenCpltCallback() and HAL_I2C_AddrCallback()</li>
</ul></li>
<li>Reworked DMA end process and I2C error management during DMA transfer.</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>Added error management in case of DMA transfer through HAL_DMA_Abort_IT() and DMA XferAbortCallback().</li>
<li>Updated HAL_I2CEx_EnableFastModePlus() enabling fast mode plus driving capability through CFGR2 register.</li>
<li>Disabled I2C_OARx_EN bit before any configuration in OAR1 or 2 in HAL_I2C_Init().</li>
<li>Add I2C_FIRST_AND_NEXT_FRAME for I2C Sequential transfer options: allow to manage a sequence with start condition, address and data to transfer without a final stop condition, an then permit a call to the same master sequential interface several times.</li>
<li>Updated HAL_I2C_Master_Sequential_Transmit_IT() function (wrong state check).</li>
<li>Moved I2C_NO_OPTION_FRAME to private section.</li>
<li>Updated I2C driver documentation concerning I2C address management.</li>
<li>Updated I2C driver to reset state to LISTEN before calling HAL_I2C_Slave_Sequential_Transmit_IT() function.</li>
</ul></li>
<li><strong>HAL I2S</strong>
<ul>
<li>Updated LL_I2S_Init() function to use default ou computed values for prescaler.</li>
</ul></li>
<li><strong>HAL IWDG</strong>
<ul>
<li>Overall driver rework for better implementation
<ul>
<li>Removed HAL_IWDG_Start(), HAL_IWDG_MspInit() and HAL_IWDG_GetState() APIs.</li>
</ul></li>
</ul></li>
<li><strong>HAL PWR</strong>
<ul>
<li>Added new HAL_PWREx_GetVoltageRange()function returning Voltage Scaling range, to be aligned with L1 serie.</li>
</ul></li>
<li><strong>HAL RCC</strong>
<ul>
<li>Aligned HAL RCC driver with others series.</li>
<li>Renamed RCC_PLLMUL_x to RCC_PLL_MULx and RCC_PLLDIV_x to RCC_PLL_DIVx, to be aligned with L1 serie.</li>
<li>Updated declaration of HAL_RCC_NMI_IRQHandler() function.</li>
<li>Updated HAL IRQHandler and callbacks API for CRS management.</li>
</ul></li>
<li><strong>HAL SMBUS</strong>
<ul>
<li>Aligned driver with others series: fix known defects and added several enhancements implementation.</li>
<li>Added support of new feature Zone Read/Write.</li>
</ul></li>
<li><strong>HAL SPI</strong>
<ul>
<li>Added missing __IO in SPI_HandleTypeDef definition.</li>
</ul></li>
<li><strong>HAL TIM</strong>
<ul>
<li>Corrected TIM22_ETR_GPIO and TIM22_ETR_LSE definitions for STM32L011xx and STM32L021xx devices.</li>
</ul></li>
<li><strong>HAL UART-USART / IRDA / SMARTCARD</strong>
<ul>
<li>Added missing __IO in UART/USART/IRDA/SMARTCARD_HandleTypeDef definition (for TxXferCount and RxXferCount).</li>
<li>Modified UART/SMARTCARD configuration sequence order in HAL_UART/SMARTCARD_Init() function, to avoid issue on Transmit line when UART/SMARTCARD_SetConfig() is called before UART/SMARTCARD_AdvFeatureConfig().</li>
<li>Removed RXNE check in UART/USART/IRDA/SMARTCARD_Receive_IT() function, as RXNE is already cleared by reading RDR, or by writing 1 to RXFRQ in the RQR register.</li>
<li>Reviewed UART/IRDA/SMARTCARD state machine to avoid cases where UART/IRDA/SMARTCARD state is overwritten by UART/IRDA/SMARTCARD IRQ.</li>
<li>Ensure proper alignment of data pointer in Transmit and Receive functions to avoid toolchain compilation hardfault.</li>
<li>Optimized WaitOnFlag management in HAL_UART/USART/IRDA/SMARTCARD_Transmit() function.</li>
<li>Optimized all HAL IRQ Handler routines.</li>
<li>Implemented new APIs for HAL UART/USART/IRDA/SMARTCARD Abort management: HAL_PPP_Abort(), HAL_PPP_AbortTransmit(), HAL_PPP_AbortReceive(), HAL_PPP_Abort_IT(), HAL_PPP_AbortTransmit_IT(), HAL_PPP_AbortReceive_IT().</li>
<li>Added definition of USART_STOPBITS_0_5 (in addition to 1, 1.5, 2 stop bits).</li>
<li>Updated USART_GETCLOCKSOURCE() macro definition in order to reflect USART instances availability on L0 devices.</li>
<li>Updated HAL_UART_Init() that can not be performed on USART4 and USART5 instances for L07x/L08x.</li>
</ul></li>
<li><strong>HAL USB</strong>
<ul>
<li>Added missing USB_CNTR_SOFM in the setting of wInterrupt_Mask global variable.</li>
<li>Updated HAL_PCD_ActivateRemoteWakeup() and HAL_PCD_DeActivateRemoteWakeup() functions to check on LPM state before USB resume.</li>
</ul></li>
<li><strong>HAL WWDG</strong>
<ul>
<li>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>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section8" aria-hidden="true"> <label for="collapse-section8" aria-hidden="true">V1.7.0 / 31-May-2016</label>
<div>
<h2 id="main-changes-8">Main Changes</h2>
<h3 id="maintenance-release-2">Maintenance release</h3>
<h2 id="contents-7">Contents</h2>
<ul>
<li><strong>HAL/LL COMP</strong> update
<ul>
<li>Added missing definition for COMP_INPUT_PLUS_IO6 and LL_COMP_INPUT_PLUS_IO6, supported by STM32L0 Category1 (STM32L011xx, STM32L021xx).</li>
<li>Removed COMP_INVERTINGINPUT_IO3 definition.</li>
<li>Renamed COMP_INVERTINGINPUT_IO2 to COMP_INPUT_MINUS_DAC1_CH2.</li>
<li>The EXTI set-up is now managed by HAL_COMP_Init() function, using updated definitions of COMP_TRIGGERMODE_xxx.
<ul>
<li>Therefore, the functions HAL_COMP_Start_IT() and HAH_COMP_Stop_IT() have been removed.</li>
<li>In any mode, the application must use HAL_COMP_Start() and HAL_COMP_Stop().
<ul>
<li>For information, this update was already available in V1.6.0.</li>
</ul></li>
</ul></li>
</ul></li>
<li><strong>HAL RTC</strong> update
<ul>
<li>Updated HAL_RTCEx_SetWakeUpTimer_IT() function by adding clear of Wake-Up flag before enabling the interrupt.</li>
</ul></li>
<li><strong>HAL LCD</strong> update
<ul>
<li>Corrected SYSCFG LCD External Capacitors definitions.</li>
<li>Added new __HAL_SYSCFG_VLCD_CAPA_CONFIG() macro to configure the VLCD Decoupling capacitance connection.</li>
<li>Added new __HAL_SYSCFG_GET_VLCD_CAPA_CONFIG() macro to return the decoupling of LCD capacitance configured by user.</li>
<li>Added LCD Voltage output buffer enable macro definitions.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section7" aria-hidden="true"> <label for="collapse-section7" aria-hidden="true">V1.6.0/ 15-April-2016</label>
<div>
<h2 id="main-changes-9">Main Changes</h2>
<h3 id="maintenance-release-3">Maintenance release</h3>
<ul>
<li>First official release supporting the <strong>Low Level</strong> drivers for the <strong>STM32L0xx</strong> family:
<ul>
<li>Low Layer drivers APIs provide register level programming: they require deep knowledge of peripherals described in STM32L0xx Reference Manual.</li>
<li>Low Layer drivers are available for: ADC, COMP, CORTEX, CRC, CRS,DAC, DMA, EXTI, GPIO, I2C, IWDG, LPTIM, LPUART, PWR, RCC, RNG, RTC, SPI, TIM, USART, 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/stm32l0xx_ll_ppp.h files for PPP peripherals, there is no configuration file and each stm32l0xx_ll_ppp.h file must be included in user code.</li>
</ul></li>
</ul>
<h2 id="contents-8">Contents</h2>
<ul>
<li><strong>Updates of the HAL</strong>
<ul>
<li>HAL_SYSCFG_EnableVREFINT() and HAL_SYSCFG_DisableVREFINT() functions and HAL_VREFINT_Cmd macro suppressed since VREFINT is managed by the system.</li>
<li>Several updates on dedicated HAL as specified in the list below. The major changes concerns HAL_COMP and HAL_UART.</li>
</ul></li>
<li><strong>HAL</strong> update
<ul>
<li>Change the way the APB AHB prescaler table is defined inside the HAL.</li>
<li>Change the variable ‘uwTick’ from ‘static’ to ‘global’.</li>
<li>Compliancy with MISRA C 2004 rule 10.6 (A “U” suffix shall be applied to all constants of unsigned type)</li>
<li>Compliancy with MISRA C 2004 rule 16.4. (The identifiers used in the declaration and definition of a function shall be identical)</li>
</ul></li>
<li><strong>HAL COMP</strong> update
<ul>
<li>Major rework on the lock and on the state machine associated to the COMP HAL.</li>
<li>Optimization of several functions and uniformization of the driver within the whole STM32 family.</li>
</ul></li>
<li><strong>HAL CRYPT</strong> update
<ul>
<li>Correct the usage of several compilation switches related to STM32L081xx.</li>
</ul></li>
<li><strong>HAL DMA</strong> update
<ul>
<li>Add the following macro : HAL_DMA_GET_COUNTER.</li>
</ul></li>
<li><strong>HAL FLASH</strong> update
<ul>
<li>Update the two following macros : __HAL_FLASH_PREFETCH_BUFFER_ENABLE and __HAL_FLASH_PREFETCH_BUFFER_DISABLE.</li>
</ul></li>
<li><strong>HAL IRDA</strong> update
<ul>
<li>Improve management of the EIE bits for Tx and Rx transfers.</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>Allow I2C transmission with data size equal to 0.</li>
<li>Add new macro IS_I2C_WAKEUP_FROMSTOP_INSTANCE.</li>
</ul></li>
<li><strong>HAL LPTIM</strong> update
<ul>
<li>Update of the LPTIM driver in order to support the exti line 23.</li>
</ul></li>
<li><strong>HAL UART</strong> update
<ul>
<li>Improve UART state machine behavior in case of interrupts.</li>
<li>Update the macros UART_DIV_SAMPLING8 and UART_DIV_SAMPLING16 to correct UART baudrate calculation</li>
<li>Add an RXDATA flush request inside the UART_Receive_IT function when the RxState is not in reception state.</li>
</ul></li>
<li><strong>HAL RCC</strong> update
<ul>
<li>Correct the setup of the global variable ‘SystemCoreClock’.</li>
<li>Update of the CRS interrupt sources.</li>
<li>Renamed RCC_CRS_SYNCWARM into RCC_CRS_SYNCWARN and renamed RCC_CRS_TRIMOV into RCC_CRS_TRIMOVF.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section6" aria-hidden="true"> <label for="collapse-section6" aria-hidden="true">V1.5.0/ 8-January-2016</label>
<div>
<h2 id="main-changes-10">Main Changes</h2>
<h3 id="maintenance-release-4">Maintenance release</h3>
<h2 id="contents-9">Contents</h2>
<ul>
<li><strong>Main HAL</strong> updates
<ul>
<li>Compliancy with MISRA coding rules (MISRA C 2004 rule 10.5 except for hal_pcd.c file and MISRA C 2004 rule 5.3).</li>
<li>Several functions inside the HAL have been updated in order to prevent unused argument compilation warnings.</li>
<li>The startup timeout value for many clocks (as HSE, HSI, LSI, MSI, PLL) have been updated to reach a more accurate value (alignement to the Datasheet).</li>
<li>The macro __HAL_CORTEX_SYSTICKCLK_CONFIG() has been removed since this service is already covered by the function HAL_SYSTICK_CLKSourceConfig().</li>
</ul></li>
<li><strong>HAL</strong> update
<ul>
<li>Update the SYSCFG_BOOT_SYSTEMFLASH definition. (SYSCFG_BOOT_SYSTEMFLASH is now equal to SYSCFG_CFGR1_BOOT_MODE_0 instead of SYSCFG_CFGR1_MEM_MODE_0)</li>
<li>The HSE_STARTUP_TIMEOUT is now equal to 100 instead of 5000.</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>Update the HAL_I2C_Slave_Receive function. Store last data received when requested.</li>
<li>Improvement of the HAL_I2C_MasterReceive function. Error management update. (HAL_ERROR detection versus HAL_TIMEOUT)</li>
<li>Improvement of the I2C_MasterTransmit_ISR function. Adding of several error checks, unlock of the process when requested.</li>
<li>Improvement of the I2C_MasterReceive_DMA function. Adding of several error checks and abort DMA when requested.</li>
</ul></li>
<li><strong>HAL UART</strong> update
<ul>
<li>Update the check of parameters inside the function HAL_LIN_SendBreak().</li>
<li>Correction of an error present on the V1.4.0 release. On the V1.4.0 release, the clock used inside the function USART_SetConfig(..) was never set.</li>
</ul></li>
<li><strong>HAL DMA</strong> update
<ul>
<li>Update the DMA_handler structure in order to be MISRA-C 2004 rule 5.3 compliant.</li>
</ul></li>
<li><strong>HAL SPI</strong> update
<ul>
<li>Update the SPI_handler structure in order to be MISRA-C 2004 rule 5.3 compliant.</li>
</ul></li>
<li><strong>HAL RCC</strong> update
<ul>
<li>Update support of RCC_MC03 when requested.</li>
<li>Update support of dynamic HSE prescaler configuration for LCD/RTC peripherals.</li>
<li>Some updates inside the HAL_RCC_ClockConfig function.</li>
<li>Some updates inside the HAL_RCC_MCOConfig function. The enabling of the MCO clocks (__MC01_CLK_ENABLE() or __MCO2_CLK_ENABLE()) is done separately depending on the MCO selected.</li>
<li>The function HAL_RCCEx_GetPeriphCLKFreq() has been reworked.</li>
<li>The function HAL_RCCEx_PeriphCLKConfig() has been updated. A new error is now detected when trying to update the HSE divider dynamically.</li>
</ul></li>
<li><strong>HAL TSC</strong> update
<ul>
<li>Several updates inside the HAL_TSC_Start function and HAL_TSC_Init function. Check of input parameters</li>
</ul></li>
<li><strong>HAL ADC</strong> update
<ul>
<li>The channel 16 (ADC_CHANNEL_16) is not available on all devices.</li>
</ul></li>
<li><strong>HAL CORTEX</strong> update
<ul>
<li>The macro __HAL_CORTEX_SYSTICKCLK_CONFIG(..) has been removed since this service is already covered by the function HAL_SYSTICK_CLKSourceConfig().</li>
</ul></li>
<li><strong>HAL FLASH</strong> update
<ul>
<li>The restriction which was present on V1.4.0 and linked to the OPTVERR bit usage on STM32L031xx and STM32L041xx has been removed.
<ul>
<li>This is due to the fact that the new STM32L031xx/STM32L041xx devices supports now this feature.</li>
<li>On the first revision of the STM32L031xx/STM32L031xx devices (RevID = 0x1000 retrieved via HAL_GetREVID()), the OPTVERR bit was not functional. The OPTVERR (Option valid error bit) is set by hardware when, during an Option byte loading, there was a mismatch for one or more configurations.</li>
</ul></li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section5" aria-hidden="true"> <label for="collapse-section5" aria-hidden="true">V1.4.0/ 16-October-2015</label>
<div>
<h2 id="main-changes-11">Main Changes</h2>
<h3 id="maintenance-release-5">Maintenance release</h3>
<ul>
<li>This release includes the support of the support of <strong>STM32L011xx</strong> and <strong>STM32L021xx</strong> devices</li>
<li>On STM32L011xx/STM32L021xx, compared to STM32L07xxx/STM32L08xxx, some of the main differences are listed hereafter :
<ul>
<li>SRAM size set to 2KB (instead of 20KB)</li>
<li>Flash size set to 16KB (instead of 192KB)</li>
<li>GPIO available :A,B,C (instead of A,B,C,D,E,H)</li>
<li>Timers available : TIM2,TIM21,LPTIM1 (instead of TIM2,TIM3,TIM6,TIM7,TIM21,TIM22,LPTIM1)</li>
</ul></li>
</ul>
<h2 id="contents-10">Contents</h2>
<ul>
<li><strong>HAL COMP</strong> update
<ul>
<li>Update of the non inverting inputs available on the whole L0 family.</li>
</ul></li>
<li><strong>HAL RCC</strong> update
<ul>
<li>Usage of a common PLLMulTable[] defined in system_stm32l0xx.c.</li>
<li>Update in the definition of the different tampers.</li>
<li>Minor renaming of several macros.</li>
</ul></li>
<li><strong>HAL TIMER</strong> update
<ul>
<li>Handle lock initialization in all TIM init functions.</li>
</ul></li>
<li><strong>HAL LCD</strong> update
<ul>
<li>Add support of new MuxSegment field inside the init structure.</li>
</ul></li>
<li><strong>HAL DMA</strong> update
<ul>
<li>Alignment of the different channels within the L0 family.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section4" aria-hidden="true"> <label for="collapse-section4" aria-hidden="true">V1.3.0/ 09-September-2015</label>
<div>
<h2 id="main-changes-12">Main Changes</h2>
<h3 id="major-maintenance-release-1">Major maintenance release</h3>
<ul>
<li>Major update of the HAL API :
<ul>
<li>all MACROs and LITERALs values have been reworked to align all STM32 Families as much as possible</li>
<li>Important information : A stm32_hal_legacy.h file has been added to the FW package in order to support the old MACROs and LITERAL values used in the previous versions of customer applications</li>
<li>In HAL MACROs definitions : do { } while(0) have been used in multi statement macros</li>
</ul></li>
<li>This release includes the support of the support of <strong>STM32L031xx</strong> and <strong>STM32L041xx</strong> devices On STM32L031xx/STM32L041xx, compared to STM32L07xxx/STM32L08xxx, the main differences are as follow :
<ul>
<li>SRAM size set to 8KB (instead of 20KB)</li>
<li>Flash size set to 32KB (instead of 192KB)</li>
<li>GPIO available :A,B,C,H (instead of A,B,C,D,E,H)</li>
<li>Timers available : TIM2,TIM21,TIM22,LPTIM1 (instead of TIM2,TIM3,TIM6,TIM7,TIM21,TIM22,LPTIM1)</li>
</ul></li>
</ul>
<h2 id="contents-11">Contents</h2>
<ul>
<li><strong>HAL ADC</strong> update
<ul>
<li>ADC assert param needs to be more specific for discontinuous mode, nb of discont conversions</li>
<li>ADC external trigger definition is not complete Flag EOS should not be reset in HAL_ADC_GetValue()</li>
<li>ADC poll for event must return timeout instead of error</li>
<li>ADC state machine update - States with bitfields are now used for a more accurate status</li>
<li>ADC run in LPrun mode needs SYSCFG buffers enabled</li>
<li>ADC_CLOCK_SYNC_PCLK_DIVx was not correct</li>
<li>Remove WaitLoopIndex at the beginning of the function HAL_ADC_Enable</li>
<li>ADC parameter “ADC_SOFTWARE_START” for compatibility with other STM32 devices</li>
<li>ADC poll for conversion must return error status in case of ADC-DMA mode</li>
<li>ADC identical error code returned generates confusion</li>
<li>Issue observed with ADC start simultaneous commands</li>
<li>The HAl_Delay() is not required when ADVREGEN is set</li>
<li>[STM32L07xxx/STM32L08xxx] ADC Interface modification : ADC_Init structure** update</li>
<li>[STM32L07xxx/STM32L08xxx] ADC Interface modification LowPowerAutoOff is now LowPowerAutoPowerOff</li>
<li>ADC_Enable does not support the LowPowerAutoOff function</li>
</ul></li>
<li><strong>HAL COMP</strong> update
<ul>
<li>COMP_TRIGGERMODE_NONE missing in stm32l0xx_hal_comp.h</li>
<li>COMP wrong implementation of the macro : IS_COMP_WINDOWMODE_INSTANCE</li>
<li>Misplaced user callback at HAL_COMP_IRQHandler</li>
<li>EXTI Usage model update - add MACROs __HAL_COMP_COMPx_EXTI_GENERATE_SWIT()</li>
<li>HAL COMP update in HAL_COMP_Lock() to handle state change and prevent C++ compilation error</li>
<li>Add the LPTIM Comparator connection</li>
</ul></li>
<li><strong>HAL Cortex</strong> update
<ul>
<li>[MISRA] bitwise operators ~ and &lt;&lt; (MISRA C 2004 rule 10.5)</li>
<li>Cortex The function HAL_NVIC_GetPriority(IRQn_Type IRQn) was missing</li>
<li>Cortex HAL_NVIC_DisableIRQ()/HAL_NVIC_EnableIRQ() Add a check on negative parameter values</li>
</ul></li>
<li><strong>HAL CRC</strong> update
<ul>
<li>__HAL_CRC_SET_IDR macro improvement</li>
<li>CRC wrong definition of __HAL_CRC_SET_IDR macro</li>
<li>Uncorrect CRC functions naming, portability failing, out of topic comments</li>
<li>Useless Assignment in stm32l0xx_hal_crc.c detected by CodeSonar</li>
</ul></li>
<li><strong>HAL DAC</strong> update
<ul>
<li>Missing define for DAC Trigger (010: Timer 3 CH3 event)</li>
<li>Complete DAC update as per HAL_API_Reference</li>
<li>DAC HAL_DAC_Stop_DMA() code clean up</li>
<li>HAL_DAC_ConfigChannel: use “hdac-&gt;Instance-&gt;XXX” instead of “DAC-&gt;XXX”</li>
<li>No reset of previous bits WAVEx / MAMPx before setting values in HAL_DACEx_NoiseWaveGenerate &amp; HAL_DACEx_TriangleWaveGenerate</li>
</ul></li>
<li><strong>HAL DMA</strong> update
<ul>
<li>The description of __HAL_DMA_GET_IT_SOURCE() was incorrect</li>
</ul></li>
<li><strong>HAL FLASH</strong> update
<ul>
<li>FLASH Missing macro __HAL_FLASH_GET_LATENCY</li>
<li>FLASH_WaitForLastOperation issue</li>
<li>FLASH_Program_IT unlock() issue</li>
<li>FLASH Crash during HAL_FLASHEx_HalfPageProgram and HAL_FLASHEx_ProgramParallelHalfPage</li>
<li>FLASH Ramfunc error management</li>
<li>FLASH IS_OPTIONBYTE(VALUE) is not correct if all options are selected</li>
<li>HAL_FLASH Otpion Byte “BootConfig” and “BOOTBit1Config”</li>
<li>FLASH SPRMOD option bit is impacted by FLASH_OB_RDPConfig()</li>
<li>__HAL_FLASH_GET_FLAG was not functional</li>
</ul></li>
<li><strong>HAL GPIO</strong> update
<ul>
<li>GPIO The Clear of the External Interrupt is not properly done</li>
<li>GPIO GPIO_SPEED LITERALS renaming</li>
<li>GPIO_AF for LPTIM is no more compatible with HAL L0 V1.1</li>
<li>GPIO AF2 defines for RTC should be aligned for all L0 devices</li>
<li>GPIO AF defines for LPTIM1 should be the same for all devices.</li>
<li>GPIO Bug at EXTi register GPIO config in HAL_GPIO_Init() function</li>
<li>GPIO GPIO_AF5_I2S3ext Update the defined name to be more generic</li>
<li>GPIO Protect init from impossible AF configuration</li>
<li>GPIO interrupt mode is not reset</li>
<li>GPIO Check of the Pin availability according to the GPIO in use</li>
<li>GPIO rework GPIO_GET_SOURCE</li>
<li>[STM32L07xxx/STM32L08xxx] GPIO updates (HAL driver and associated validation test prg)</li>
<li>The GET_GPIO_SOURCE() macro is wrongly implemented</li>
<li>GPIO alternate functions defined in stm32l0xx_hal_gpio_ex.h not aligned with the spec</li>
<li>GPIO private Macro __HAL_GET_GPIO_SOURCE must be renamed GET_GPIO_SOURCE</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>New SYSCFG Define MACROs to manage FM+ on GPIOs</li>
<li>NACK is not treated during wait on flag treatment</li>
</ul></li>
<li><strong>HAL I2S</strong> update
<ul>
<li>I2S HAL_I2S_Transmit() API update to keep the check on busy flag only for the slave</li>
<li>I2S busy flag issue</li>
<li>I2S Management of the bit ASTREN for the I2S various modes</li>
</ul></li>
<li><strong>HAL LCD</strong> update
<ul>
<li>LCD HD field initialization of LCD_FCR register is missing in HAL_LCD_init() function</li>
</ul></li>
<li><strong>HAL LPUART </strong> update
<ul>
<li>HAL _DIV_LPUART macro possible value saturation</li>
<li>LPUART CR3 register bit 11 must be kept at reset value.</li>
</ul></li>
<li><strong>HAL PWR</strong> update
<ul>
<li>Cortex SCR SLEEPONEXIT and SEVONPEND bits management</li>
<li>PWR PVD feature need falling/rising Event modes</li>
<li>PWR REGLPF and VOSF polling request</li>
</ul></li>
<li><strong>HAL RCC</strong> update
<ul>
<li>RCC Bug in HAL_RCC_GetSysClockFreq</li>
<li>Missing RCC IRQ handler for LSE CSS interrupt</li>
<li>Missing external macro __HAL_RCC_MCO_CONFIG</li>
<li>RCC Enable automatically backup domain</li>
<li>In HAL_RCCEx_PeriphCLKConfig, Reset backup domain only if RTC clock source has been changed</li>
<li>RCC update LSE_CONFIG to remove transaction LSE On to LSE Bypass</li>
<li>Issue on MSI setting</li>
<li>Rework __HAL_RCC_LSE_CONFIG macro to manage correctly LSE_Bypass</li>
<li>Rename HSI48_TIMEOUT_VALUE into RCC_HSI_TIMEOUT_VALUE</li>
<li>Add defines for RCC_System_Clock_Source_Status</li>
<li>New HAL RCC macro to configure the SYSCLK clock source</li>
<li>Wrong calculation of sysclk in case of PLL clocked by HSI_Div4</li>
<li>RCC_CRSStatusTypeDef must be typed uint32_t</li>
<li>RCC Implement workaround to cover RCC limitation regarding Peripheral enable delay</li>
<li>RCC issue in HAL_RCC_OscConfig when RCC_OscInitStruct-&gt;HSEState = RCC_HSE_BYPASS</li>
<li>RCC Check if need to add interface HAL_RCCEx_GetPeriphCLKFreq</li>
<li>RCC Add a comment in the How to use section to mention the Peripheral enable delay</li>
<li>RCC Some values in MSIRangeTable are wrong</li>
<li>RCC missing macros to easily Enable/Disable HSI48(RC) clock for RNG analog config</li>
<li>RCC HSERDY must be checked even in HSE_BYPASS mode</li>
<li>RCC Improve HAL_RCC_OscCOnfig() function</li>
</ul></li>
<li><strong>HAL RNG</strong> update
<ul>
<li>RNG Type inconsistency of value returned by HAL_RNG_GetRandomNumber() and HAL_RNG_GetRandomNumber_IT() functions.</li>
<li>RNG Process lock and array of random numbers generation in interrupt mode</li>
<li>RNG Incorrect DRDY flag resetting</li>
<li>RNG Incorrect interrupt mode random number generation</li>
<li>RNG Incorrect TimeOut handling in polling mode random number generation</li>
</ul></li>
<li><strong>HAL RTC</strong> update
<ul>
<li>RTC macro __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG erroneous definition</li>
<li>RTC alignment of different HAL_RTC_XXIRQHandler() implementations</li>
<li>RTC Bits Mask literals to be used in macro definition</li>
<li>RTC macro __HAL_RTC_TAMPER_GET_IT() issue in param: <strong>INTERRUPT</strong> <span class="citation" data-cites="arg">@arg</span> list</li>
<li>RTC wrong description of the subsecond item of RTC_TimeTypeDef structure in the header file</li>
<li>RTC WUTWF is not reliable</li>
<li>HAL_RTC_GetTime function does not return the actual subfraction</li>
<li>[STM32L031xx/STM32L041xx] RTC macros renaming for RTC_OUTPUT_REMAP_XX and RTC_TIMESTAMPPIN_XX</li>
<li>Enhance <span class="citation" data-cites="note">@note</span> describing the use of HAL RTC APIs</li>
</ul></li>
<li><strong>HAL SPI</strong> update
<ul>
<li>SPI HAL_SPI_TransmitReceive_DMA() Remove DMA Tx Callback in case of RxOnly mode</li>
<li>SPI HandleTypeDef.ErrorCode must be typed uint32_t</li>
<li>Warnings with True Studio IDE (tempreg variable not used)</li>
</ul></li>
<li><strong>HAL TIM</strong> update
<ul>
<li>TIM problem to use ETR as OCrefClear source</li>
<li>TIM Wrong remaping of the TIM2_ETR</li>
<li>TIM register BDTR does not exist</li>
<li>The assert on trigger polarity for TI1F_ED should be removed</li>
<li>TIM Add macros to ENABLE/DISABLE URS bit in TIM CR1 register</li>
<li>TIM HAL_TIM_OC_ConfigChannel() / HAL_TIM_PWM_ConfigChannel() Missed/Unused assert param to be added/removed</li>
<li>TIM Remove HAL_TIM_SlaveConfigSynchronization_DMA() from HAL_TIM API</li>
<li>TIM Trigger DMA request should be activated when working with a slave mode</li>
<li>TIM Timer Register Corruption using HAL_TIM_IC_ConfigChannel</li>
<li>TIM DMA transfer should be aborted when stopping a DMA burst</li>
<li>Add “TIM_CHANNEL_ALL” as an argument for all Encoder Start/Stop process in the comment section</li>
<li>HAL_TIM_DMADelayPulseCplt callback missing information</li>
<li>HAL_TIM_DMACaptureCplt callback missing information</li>
<li>TIM Trigger DMA request should be activated when working with a slave mode</li>
<li>TIM Trigger interrupt should be activated when working with a slave mode</li>
<li>__HAL_TIM_PRESCALER() shall be corrected: use ‘=’ instead of ‘|=’</li>
</ul></li>
<li><strong>HAL UART/USART</strong> update
<ul>
<li>UART Incorrect UART speed setting on HSI clock</li>
<li>Wrong Baud Rate calculation in case of OVER8</li>
<li>UART missing closing bracket in header file</li>
<li>UART Circular mode when transmitting data not well supported</li>
<li>UART/LPUART number of stop bits to correct</li>
<li>USART Incorrect number of stop bits definition</li>
<li>UART HAL_UART_IRQHandler function not clearing correctly the interrupt flags</li>
<li>USART Setting of BRR register bit3:0 not inline with RM when OVER8 sampling mode is used</li>
<li>UART UART_WaitOnFlagUntilTimeout should not assign UART handle state to HAL_UART_STATE_TIMEOUT</li>
<li>USART Wrong values used as parameter of __HAL_USART_CLEAR_IT() in HAL_USART_IRQHandler()</li>
<li>USART BRR setting is wrong compared to Baudrate value</li>
<li>USART HAL_USART_Init() update to reach max frequencies (enable oversampling by 8)</li>
<li>USART USART_DMAReceiveCplt() Update to set the USART state after performing the test on it</li>
<li>UART The code associated to several macros need to be completed</li>
<li>USART UART DMA implementation issue: missed clear the TC bit in the SR</li>
<li>Wrong USART_IT_CM defined value</li>
<li>Issue with Lin mode data length</li>
<li>Wrong description for Interrupt mode IO operation within HAL UART driver</li>
<li>Change UART_DMATransmitCplt- new implementation to remove WaitOnFlag in ISR</li>
<li>Change UART TX-IT implementation to remove WaitOnFlag in ISR</li>
<li>The IS_UART_OVERSAMPLING(SAMPLING) is not called in UART_SetConfig()</li>
<li>HAL UART enhancement: remove the check on RXNE flag after reading the DR register</li>
<li>UART/USART/IRDA/SMARTCARD transmit process enhancement to use TXE instead of TC</li>
<li>Add MACRO to UART HAL to control CTS and RTS from the customer application</li>
</ul></li>
<li><strong>HAL PCD</strong> update
<ul>
<li>HAL_PCD_EP_Transmit() not functional</li>
<li>HAL PCD clear flag macros configuration</li>
<li>Bad IN/OUT EndPoint parameter array size</li>
<li>HAL PCD miss #define for ep0_mps parameter</li>
<li>USB HAL PCD missing #define PCD_SPEED_HIGH</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true">V1.2.0 / 06-Feb-2015</label>
<div>
<h2 id="main-changes-13">Main Changes</h2>
<h3 id="official-release">Official release</h3>
<ul>
<li>This release includes the support of the <strong>STM32L071xx, STM32L072xx, STM32L073xx, STM32L082xx, STM32L083xx</strong> devices</li>
<li>Fix known defects and add several enhancements implementation</li>
</ul>
<h2 id="contents-12">Contents</h2>
<ul>
<li><strong>HAL Flash</strong>** update
<ul>
<li>Flash : 192K Dual Bank</li>
</ul></li>
<li><strong>HAL TIM</strong>** update
<ul>
<li>4 new instances : TIM3, TIM7, TIM21, TIM22</li>
</ul></li>
<li><strong>HAL USART</strong>** update
<ul>
<li>2 new instances : USART 4, USART 5</li>
</ul></li>
<li><strong>HAL I2C</strong>** update
<ul>
<li>1 new instance I2C3</li>
</ul></li>
<li><strong>HAL GPIO</strong>** update
<ul>
<li>GPIO Port E</li>
</ul></li>
<li><strong>HAL DAC</strong>** update
<ul>
<li>A second channel has been introduced</li>
</ul></li>
<li><strong>HAL FIREWALL</strong> introduction</li>
</ul>
<h2 id="known-limitations">Known Limitations</h2>
<ul>
<li>Introduced a FW patch to deactivate the HW SPI-V2.3 correction in case of I2S PCM Short mode usage (Please refer to the STM32L073xx Errata Sheet for more details). In this use case, we come back to the HW SPI 2.2 behavior which is correct for the I2S PCM short mode</li>
</ul>
<p><br />
</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.1.0 / 18-June-2014</label>
<div>
<h2 id="main-changes-14">Main Changes</h2>
<h3 id="official-release-1">Official release</h3>
<h2 id="contents-13">Contents</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>Common update for the following communication peripherals: SPI, UART, USART and IRDA
<ul>
<li>Add DMA circular mode support</li>
<li>Remove lock from recursive process</li>
</ul></li>
<li>Add new macro __HAL_RESET_HANDLE_STATE to reset a given handle state</li>
<li>When USE_RTOS == 1 (in stm32l0xx_hal_conf.h), the __HAL_LOCK() is not defined instead of being defined empty</li>
<li>Use "__IO const" instead of "__I", to avoid any compilation issue when __cplusplus switch is defined</li>
<li>Add new functions for the DBGMCU module
<ul>
<li>HAL_EnableDBGSleepMode()</li>
<li>HAL_DisableDBGSleepMode()</li>
<li>HAL_EnableDBGStopMode()</li>
<li>HAL_DisableDBGStopMode()</li>
<li>HAL_EnableDBGStandbyMode()</li>
<li>HAL_DisableDBGStandbyMode()</li>
</ul></li>
<li>Miscellaneous comments update</li>
</ul></li>
<li><strong>HAL FLASH</strong>** update
<ul>
<li>Add new functions: HAL_FLASHEx_OB_SelectPCROP() and HAL_FLASHEx_OB_DeSelectPCROP()</li>
<li>Some functions was renamed and moved to the extension files (stm32l0xx_hal_flash_ex.h/.c)
<ul>
<li>Rename FLASH_HalfPageProgram() into HAL_FLASHEx_HalfPageProgram()</li>
<li>Rename FLASH_EnableRunPowerDown() into HAL_FLASHEx_EnableRunPowerDown()</li>
<li>Rename FLASH_DisableRunPowerDown() into HAL_FLASHEx_DisableRunPowerDown()</li>
<li>Rename all HAL_DATA_EEPROMEx_xxx() functions into HAL_FLASHEx_DATAEEPROM_xxx()</li>
<li>Note: aliases has been added to keep compatibility with previous version</li>
</ul></li>
</ul></li>
<li><strong>HAL GPIO</strong>** update
<ul>
<li>Remove IS_GET_GPIO_PIN macro</li>
<li>Add a new function HAL_GPIO_LockPin()</li>
<li>Private Macro __HAL_GET_GPIO_SOURCE renamed into GET_GPIO_SOURCE</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 PWR</strong>** update
<ul>
<li>HAL_PWR_PVDConfig(): add clear of the EXTI trigger before new configuration</li>
<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>Allow to calibrate the HSI when it is used as system clock source</li>
<li>Fix implementation of IS_RCC_OSCILLATORTYPE() macro</li>
</ul></li>
<li><strong>HAL ADC</strong>** update
<ul>
<li>Update ADC internal channels mapping: TEMPSENSOR connected to ADC_CHANNEL_18 and VLCD mapped to ADC_CHANNEL_16</li>
<li>Skip polling for ADRDY flag when Low Power Auto Off mode is enabled</li>
</ul></li>
<li><strong>HAL COMP</strong>** update
<ul>
<li>Add LPTIMConnection field in the COMP_InitTypeDef structure.</li>
<li>Add new defines: COMP_LPTIMCONNECTION_DISABLED, COMP_LPTIMCONNECTION_ENABLED</li>
<li>Add new macro IS_COMP_LPTIMCONNECTION</li>
</ul></li>
<li><strong>HAL LPTIM</strong>** update
<ul>
<li>Add CKPOL configuration for encoder mode</li>
</ul></li>
<li><strong>HAL WWDG</strong>** update
<ul>
<li>Miscellaneous minor update on the source code</li>
</ul></li>
<li><strong>HAL IWDG</strong>** update
<ul>
<li>Miscellaneous minor update on the source code</li>
</ul></li>
<li><strong>HAL CRC</strong>** update
<ul>
<li>Some functions was renamed and moved to the extension files (stm32l0xx_hal_crc_ex.h/.c)
<ul>
<li>HAL_CRC_Input_Data_Reverse() renamed into HAL_CRCEx_Input_Data_Reverse()</li>
<li>HAL_CRC_Output_Data_Reverse() renamed into HAL_CRCEx_Output_Data_Reverse()</li>
<li>Note: aliases has been added to keep compatibility with previous version</li>
</ul></li>
</ul></li>
<li><strong>HAL CRYP</strong>** update
<ul>
<li>HAL_CRYP_ComputationCpltCallback() renamed into HAL_CRYPEx_ComputationCpltCallback() and moved to the extension files (stm32l0xx_hal_cryp_ex.h/.c)</li>
<li>Note: alias has been added to keep compatibility with previous version</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 SMBUS</strong>** update
<ul>
<li>Add a new function: HAL_SMBUS_DisableListen_IT()</li>
<li>Add aliases for the following functions
<ul>
<li>#define HAL_SMBUS_Slave_Listen_IT HAL_SMBUS_EnableListen_IT</li>
<li>#define HAL_SMBUS_SlaveAddrCallback HAL_SMBUS_AddrCallback</li>
<li>#define HAL_SMBUS_SlaveListenCpltCallback HAL_SMBUS_ListenCpltCallback</li>
</ul></li>
<li>Add alias HAL_SMBUS_STATE_SLAVE_LISTEN for the constant HAL_SMBUS_STATE_LISTEN</li>
</ul></li>
<li><strong>HAL UART</strong>** update
<ul>
<li>HAL_UART_WakeupCallback() renamed into HAL_UART_WakeupCallback() and moved to the extension files (stm32l0xx_hal_cryp_ex.h/.c)</li>
<li>Add new macros to control CTS and RTS</li>
<li>Add specific macros to manage the flags cleared only by a software sequence
<ul>
<li>__HAL_UART_CLEAR_PEFLAG()</li>
<li>__HAL_UART_CLEAR_FEFLAG()</li>
<li>__HAL_UART_CLEAR_NEFLAG()</li>
<li>__HAL_UART_CLEAR_OREFLAG()</li>
<li>__HAL_UART_CLEAR_IDLEFLAG()</li>
</ul></li>
<li>Add several enhancements without affecting the driver functionalities
<ul>
<li>Remove the check on RXNE set after reading the Data in the DR register</li>
<li>Update the transmit processes to use TXE instead of TC</li>
<li>Update HAL_UART_Transmit_IT() to enable UART_IT_TXE instead of UART_IT_TC</li>
</ul></li>
</ul></li>
<li><strong>HAL USART</strong>** update
<ul>
<li>Add specific macros to manage the flags cleared only by a software sequence
<ul>
<li>__HAL_USART_CLEAR_PEFLAG()</li>
<li>__HAL_USART_CLEAR_FEFLAG()</li>
<li>__HAL_USART_CLEAR_NEFLAG()</li>
<li>__HAL_USART_CLEAR_OREFLAG()</li>
<li>__HAL_USART_CLEAR_IDLEFLAG()</li>
</ul></li>
<li>Update HAL_USART_Transmit_IT() to enable USART_IT_TXE instead of USART_IT_TC</li>
</ul></li>
<li><strong>HAL IRDA</strong>** update
<ul>
<li>Add specific macros to manage the flags cleared only by a software sequence
<ul>
<li>__HAL_IRDA_CLEAR_PEFLAG()</li>
<li>__HAL_ IRDA _CLEAR_FEFLAG()</li>
<li>__HAL_ IRDA _CLEAR_NEFLAG()</li>
<li>__HAL_ IRDA _CLEAR_OREFLAG()</li>
<li>__HAL_ IRDA _CLEAR_IDLEFLAG()</li>
</ul></li>
<li>Add several enhancements without affecting the driver functionalities
<ul>
<li>Remove the check on RXNE set after reading the Data in the DR register</li>
<li>Update HAL_IRDA_Transmit_IT() to enable IRDA_IT_TXE instead of IRDA_IT_TC</li>
</ul></li>
<li>Add the following APIs used within DMA process
<ul>
<li>HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);</li>
<li>HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);</li>
<li>HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);</li>
<li>void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);</li>
<li>void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);</li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong>** update
<ul>
<li>Add specific macros to manage the flags cleared only by a software sequence
<ul>
<li>__HAL_SMARTCARD_CLEAR_PEFLAG()</li>
<li>__HAL_SMARTCARD_CLEAR_FEFLAG()</li>
<li>__HAL_SMARTCARD_CLEAR_NEFLAG()</li>
<li>__HAL_SMARTCARD_CLEAR_OREFLAG()</li>
<li>__HAL_SMARTCARD_CLEAR_IDLEFLAG()</li>
</ul></li>
<li>Add several enhancements without affecting the driver functionalities
<ul>
<li>Add a new state HAL_SMARTCARD_STATE_BUSY_TX_RX and all processes has been updated accordingly</li>
<li>Update HAL_SMARTCARD_Transmit_IT() to enable SMARTCARD_IT_TXE instead of SMARTCARD_IT_TC</li>
</ul></li>
</ul></li>
<li><strong>HAL SPI</strong>** update
<ul>
<li>Bugs fix
<ul>
<li>SPI interface is used in synchronous polling mode: at high clock rates like SPI prescaler 2 and 4, calling HAL_SPI_TransmitReceive() returns with error HAL_TIMEOUT</li>
<li>HAL_SPI_TransmitReceive_DMA() does not clean up the TX DMA, so any subsequent SPI calls return the DMA error</li>
<li>HAL_SPI_Transmit_DMA() is failing when data size is equal to 1 byte</li>
</ul></li>
<li>Add the following APIs used within the DMA process
<ul>
<li>HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);</li>
<li>HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);</li>
<li>HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);</li>
<li>void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);</li>
<li>void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);</li>
<li>void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);</li>
</ul></li>
</ul></li>
<li><strong>HAL TSC</strong>** update
<ul>
<li>Fix value of the constant TSC_ACQ_MODE_SYNCHRO</li>
</ul></li>
<li><strong>HAL PCD</strong>** update
<ul>
<li>Add new macro __HAL_USB_EXTI_GENERATE_SWIT()</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true">V1.0.0 / 22-April-2014</label>
<div>
<h2 id="main-changes-15">Main Changes</h2>
<h3 id="first-official-release">First official release</h3>
</div>
</div>
</div>
</div>
<footer class="sticky">
For complete documentation on <mark>STM32 Microcontrollers</mark> , visit: <a href="http://www.st.com/STM32">http://www.st.com/STM32</a>
</footer>
</body>
</html>
