<!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 STM32L1xx HAL Drivers</title>
  <style type="text/css">
      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_2020.css" />
  <!--[if lt IE 9]>
    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
  <![endif]-->
  <link rel="icon" type="image/x-icon" href="_htmresc/favicon.png" />
</head>
<body>
<div class="row">
<div class="col-sm-12 col-lg-4">
<center>
<h1 id="release-notes-forstm32l1xx-hal-drivers"><small>Release Notes for</small><mark>STM32L1xx HAL Drivers</mark></h1>
<p>Copyright © 2017 STMicroelectronics<br />
</p>
<a href="https://www.st.com" class="logo"><img src="_htmresc/st_logo_2020.png" alt="ST logo" /></a>
</center>
<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-section16" checked aria-hidden="true"> <label for="collapse-section16" aria-hidden="true">V1.4.5 / 07-April-2023</label>
<div>
<h2 id="main-changes">Main Changes</h2>
<h3 id="maintenance-release">Maintenance release</h3>
<ul>
<li>Patch release to to fix known defects and enhancements implementation.</li>
<li>HAL code quality enhancement for MISRA-C Rule-8.13 by adding const qualifiers.</li>
<li>All source files: update disclaimer to add reference to the new license agreement.</li>
<li>Add support of HAL SMBUS module.</li>
</ul>
<h2 id="contents">Contents</h2>
<ul>
<li><strong>HAL Generic</strong> update
<ul>
<li>Allow redefinition of macro UNUSED(x).</li>
<li>Update stm32l1xx_hal_conf_template.h template file to add support of HAL SMBUS module.</li>
</ul></li>
<li><strong>HAL GPIO</strong> update
<ul>
<li>Reorder EXTI configuration sequence in order to avoid unexpected level detection.</li>
</ul></li>
<li><strong>HAL EXTI</strong> update
<ul>
<li>Fix computation of pExtiConfig-&gt;GPIOSel in HAL_EXTI_GetConfigLine().</li>
</ul></li>
<li><strong>HAL PWR</strong> update
<ul>
<li>Updated HAL_PWR_EnterSLEEPMode() to add NOP() instruction to ensure all pending instructions are flushed before entering sleep mode.</li>
</ul></li>
<li><strong>HAL FLASH</strong> update
<ul>
<li>Fix wrong defined Flash pages max number value “FLASH_NBPAGES_MAX” for STM32L1 with 256K flash part numbers.</li>
<li>Update FLASH_SIZE value calculation</li>
</ul></li>
<li><strong>HAL ADC</strong> update
<ul>
<li>Better performance by removing multiple volatile reads or writes in interrupt handler.</li>
<li>Add missing LL_ADC_REG_SEQ_SCAN_ENABLE_xxRANKS defines from RANK 17 to RANK 28.</li>
</ul></li>
<li><strong>HAL OPAMP</strong> update
<ul>
<li>LL_OPAMP_SetTrimmingValue()/LL_OPAMP_GetTrimmingValue(): redefinition of registers address MUST be volatile (_IO).</li>
</ul></li>
<li><strong>HAL/LL TIM</strong> update
<ul>
<li>Manage configuration of the Capture/compare DMA request source:
<ul>
<li>Add related new exported constants (TIM_CCDMAREQUEST_CC, TIM_CCDMAREQUEST_UPDATE).</li>
<li>Create a new macro __HAL_TIM_SELECT_CCDMAREQUEST() allowing to program the TIMx_CR2.CCDS bitfield.</li>
</ul></li>
<li>Update __LL_TIM_CALC_PSC() macro to round up the evaluated value when the fractional part of the division is greater than 0.5.</li>
<li>Remove tag ‘/** <span class="citation" data-cites="defgroup">@defgroup</span> TIM_LL_EM_Exported_Macros Exported_Macros’ as redundant with tag ‘/** <span class="citation" data-cites="defgroup">@defgroup</span> TIM_LL_Exported_Macros TIM Exported Macros’.</li>
<li>Fix HAL_TIMEx_RemapConfig() lock issue: __HAL_LOCK is called before calls to assert_param().</li>
<li>Improved driver robustness against wrong period values.</li>
<li>Improved driver robustness against wrong DMA related parameters.</li>
<li>Improved period configuration parameter check.</li>
<li>Removed lock management from calback management functions.</li>
</ul></li>
<li><strong>HAL RTC BKP</strong> update
<ul>
<li>Use bits definitions from CMSIS Device header file instead of hard-coded values.</li>
<li>Wrap comments to be 80-character long and correct typos.</li>
<li>Move constants RTC_IT_TAMP from hal_rtc.h to hal_rtc_ex.h.</li>
<li>Gather all instructions related to exiting the “init” mode into new function RTC_ExitInitMode().</li>
<li>Add new macro assert_param(IS_RTC_TAMPER_FILTER_CONFIG_CORRECT(sTamper-&gt;Filter, sTamper-&gt;Trigger)) to check tamper filtering is disabled in case tamper events are triggered on signal edges.</li>
<li>Rework functions HAL_RTCEx_SetTamper() and HAL_RTCEx_SetTamper_IT() to:
<ul>
<li>Write in TAFCR register in one single access instead of two.</li>
<li>Avoid modifying user structure sTamper.</li>
</ul></li>
<li>Check if the RTC calendar has been previously initialized before entering initialization mode.</li>
<li>Remove macro __HAL_RTC_TAMPER_GET_IT() as it is redundant with macro __HAL_RTC_TAMPER_GET_FLAG() and create an alias into the hal_legacy.h file</li>
</ul></li>
<li><strong>HAL CRYP</strong> update
<ul>
<li>Update Crypt/Decrypt IT processes to avoid Computation Completed IRQ fires before the DINR pointer increment.</li>
</ul></li>
<li><strong>HAL UART</strong> update
<ul>
<li>Handling of UART concurrent register access in case of race condition between Tx and Rx transfers.</li>
<li>Improve header description of UART_WaitOnFlagUntilTimeout() function.</li>
<li>Add a check on the UART parity before enabling the parity error interruption.</li>
<li>Fix typo in UART_IT_TXE bit description.</li>
<li>Removal of HAL_LOCK/HAL_UNLOCK calls in HAL UART Tx and Rx APIs.</li>
<li>Add a new API HAL_UARTEx_GetRxEventType that could be used to retrieve the type of event that has led the RxEventCallback execution.</li>
<li>Remove __HAL_LOCK() from HAL_xxx_RegisterCallback()/HAL_xxx_UnRegisterCallback().</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> update
<ul>
<li>Improve header description of SMARTCARD_WaitOnFlagUntilTimeout() function.</li>
<li>Remove __HAL_LOCK() from HAL_xxx_RegisterCallback()/HAL_xxx_UnRegisterCallback().</li>
</ul></li>
<li><strong>HAL NOR</strong> update
<ul>
<li>Align HAL_NOR_Init() API with core of the function when write operation is disabled to avoid HardFault.</li>
<li>FMC_WRITE_OPERATION_DISABLE for NOR cause Hardfault for Read operations.</li>
</ul></li>
<li><strong>HAL IRDA</strong> update
<ul>
<li>Improve header description of IRDA_WaitOnFlagUntilTimeout() function.</li>
<li>Add a check on the IRDA parity before enabling the parity error interrupt.</li>
<li>Remove __HAL_LOCK() from HAL_xxx_RegisterCallback()/HAL_xxx_UnRegisterCallback().</li>
</ul></li>
<li><strong>HAL/LL USART</strong> update
<ul>
<li>Improve header description of USART_WaitOnFlagUntilTimeout() function.</li>
<li>Add a check on the USART parity before enabling the parity error interrupt.</li>
<li>Handle concurrent register access in case of race condition between Tx and Rx transfers.</li>
<li>Remove __HAL_LOCK() from HAL_xxx_RegisterCallback()/HAL_xxx_UnRegisterCallback().</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>Add new HAL driver for SMBUS module.</li>
<li>Update HAL_I2C_Mem_Write_DMA() and HAL_I2C_Mem_Read_DMA() APIs to add initialization of Devaddress, Memaddress and EventCount parameters.</li>
<li>Update I2C_MasterReceive_RXNE() process to safe manage data N= 2 and N= 3, disable BUF interrupt if nothing to do.</li>
<li>Clear ACK bit once 3 bytes to read remain to be able to send the NACK once the transfer ends.</li>
<li>Duplicate the test condition after timeout detection to avoid false timeout detection.</li>
<li>Update HAL_I2C_Master_Transmit_IT to return HAL_BUSY instead of HAL_ERROR when timeout occur and I2C_FLAG_BUSY is SET.</li>
</ul></li>
<li><strong>HAL SPI</strong> update
<ul>
<li>Fix driver to don’t update state in case of error. (HAL_SPI_STATE_READY will be set only in case of HAL_TIMEOUT).</li>
</ul></li>
<li><strong>HAL USB</strong> update
<ul>
<li>Add function to abort current USB endpoint transfer.</li>
<li>PCD: add supporting multi packets transfer on Interrupt endpoint.</li>
<li>PCD: software correction added to avoid unexpected STALL condition during EP0 multi packet OUT transfer.</li>
<li>Add a mask for USB RX bytes count.</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.4.4 / 21-May-2021</label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<h3 id="maintenance-release-1">Maintenance release</h3>
<ul>
<li>Patch release to to fix known defects and enhancements implementation.</li>
</ul>
<h2 id="contents-1">Contents</h2>
<ul>
<li><strong>HAL Generic</strong> update
<ul>
<li>Update HAL TimeBase TIM template for more robustness
<ul>
<li>Update Hal_Init_Tick() API to propoerty store the priority when using the non-default time base.</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL TIM</strong> update
<ul>
<li>Previous release note corrected by removing reference to ChannelNState.</li>
<li>Made TIM_DMADelayPulseCplt callback as a private function.</li>
<li>Update HAL_TIMEx_OnePulseN_Start and HAL_TIMEx_OnePulseN_Stop (pooling and IT mode) to take into consideration all OutputChannel parameters.</li>
<li>Update input capture measurement in DMA mode to avoid zero return values at high frequencies.</li>
<li>Update LL_TIM_GetCounterMode() API to return the correct counter mode.</li>
<li>Correct reversed description of TIM_LL_EC_ONEPULSEMODE One Pulse Mode.</li>
</ul></li>
<li><strong>HAL/LL SPI</strong> update
<ul>
<li>Update LL_SPI_TransmitData8() API to avoid casting the result to 8 bits.</li>
<li>Update to fix MISRA-C 2012 Rule-13.2.</li>
</ul></li>
<li><strong>HAL/LL USART</strong> update
<ul>
<li>Remove useless check on maximum BRR value by removing IS_LL_USART_BRR_MAX() macro.</li>
</ul></li>
<li><strong>HAL UART</strong> update
<ul>
<li>Correction on UART ReceptionType management in case of ReceptionToIdle API are called from RxEvent callback. Update UART polling and interruption processes to fix issues related to access out of user’s specified buffer. Fix wrong comment related to RX pin configuration within the description section. Enhance reception for idle services (ReceptionToIdle):
<ul>
<li>Add a new field (HAL_UART_RxTypeTypeDef) to the UART_HandleTypeDef structure to identify the type of ongoing reception.</li>
<li>Add UART Reception Event Callback registration.</li>
<li>Add reception specific APIs specific to reception for Idle transfer in different modes:</li>
<li>HAL_UARTEx_ReceiveToIdle(): Receive an amount of data in blocking mode until either the expected number of data is received or an IDLE event occurs.</li>
<li>HAL_UARTEx_ReceiveToIdle_IT(): Receive an amount of data in interrupt mode until either the expected number of data is received or an IDLE event occurs.</li>
<li>HAL_UARTEx_ReceiveToIdle_DMA(): Receive an amount of data in DMA mode until either the expected number of data is received or an IDLE event occurs.</li>
<li>Update HAL_UART_Receive(), HAL_UART_Receive_IT() and HAL_UART_Receive_DMA() APIs to support the new enhancement of ReceptionToIdle.</li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> update
<ul>
<li>Fix typos in the SMARTCARD State definition description.</li>
</ul></li>
<li><strong>HAL IRDA</strong> update
<ul>
<li>Fix typos in the IRDA State definition description.</li>
</ul></li>
<li><strong>HAL RTC</strong> update
<ul>
<li>New APIs to subtract or add one hour to the calendar in one single operation without going through the initialization procedure (Daylight Saving):
<ul>
<li>HAL_RTC_DST_Add1Hour()</li>
<li>HAL_RTC_DST_Sub1Hour()</li>
<li>HAL_RTC_DST_SetStoreOperation()</li>
<li>HAL_RTC_DST_ClearStoreOperation()</li>
<li>HAL_RTC_DST_ReadStoreOperation()</li>
<li>DayLightSaving and StoreOperation interfaces from RTC_TimeTypeDef type and HAL_RTC_DAYLIGHT_SAVING_TIME_ADD1H() and HAL_RTC_DAYLIGHT_SAVING_TIME_SUB1H() macros are now deprecated.</li>
</ul></li>
<li>Fix the wait for the RSF bit to be cleared in the LL_RTC_WaitForSynchro function.</li>
<li>Correct month management in IS_LL_RTC_MONTH() macro.</li>
<li>Update __HAL_RTC_…(__HANDLE__, …) macros to access registers through (__HANDLE__)-&gt;Instance pointer and avoid “unused variable” warnings.</li>
</ul></li>
<li><strong>LL FMC_LL</strong> update
<ul>
<li>Fix compilation warning with gcc -Wpedantic compiler option</li>
</ul></li>
<li><strong>HAL SDMMC</strong> update
<ul>
<li>Update the definition of SDMMC_DATATIMEOUT constant in order to allow the user to redefine it in his proper application.</li>
<li>SD_FindSCR() updated to resolve an issue with FIFO blocking when reading.</li>
<li>Update the definition of SDMMC_DATATIMEOUT constant in order to allow the user to redefine it in his proper application.</li>
<li>Add the block size settings in the initialization functions and remove it from read/write transactions to avoid repeated and inefficient reconfiguration.</li>
<li>Update read/write functions in DMA mode in order to force the DMA direction.</li>
<li>Deploy new functions MMC_ReadExtCSD() and SDMMC_CmdSendEXTCSD () that read and check the sectors number of the device in order to resolve the issue of wrongly reading big memory size.</li>
</ul></li>
<li><strong>HAL FLASH</strong> update
<ul>
<li>Update FLASH_SetErrorCode() to correctly handle the SIZERR flag.</li>
</ul></li>
<li><strong>HAL USB_FS</strong> update
<ul>
<li>HAL PCD: add fix transfer complete for IN Interrupt transaction in single buffer mode.</li>
</ul></li>
<li><strong>HAL OPAMP</strong> update
<ul>
<li>Fix CodeSonar error.</li>
<li>Update HAL_OPAMP_SelfCalibrate() API to avoid wrong configuration of trimming value “n” and “p”.</li>
</ul></li>
<li><strong>HAL I2C</strong> update
<ul>
<li>Update to avoid I2C interrupt in endless loop:
<ul>
<li>Update HAL_I2C_Master_Transmit_IT(), HAL_I2C_Master_Receive_IT(), HAL_I2C_Master_Transmit_DMA() and HAL_I2C_Master_Receive_DMA() APIs to unlock the I2C peripheral before generating the start.</li>
</ul></li>
<li>Update the management of (hi2c-&gt;hdmatx!=NULL) &amp; (hi2c-&gt;hdmarx!=NULL) check.</li>
<li>Update to prevent several calls of Start bit:
<ul>
<li>Update I2C_MemoryTransmit_TXE_BTF() API to increment EventCount.</li>
</ul></li>
<li>Update to use the right macro to clear I2C ADDR flag inside I2C_Slave_ADDR() API as it’s indicated in the reference manual.</li>
</ul></li>
<li><strong>HAL/LL ADC</strong> update
<ul>
<li>Update HAL_ADC_Stop_DMA() API to check if DMA state is Busy before calling HAL_DMA_Abort() API to avoid DMA internal error.</li>
<li>Update timeout mechanism to avoid false timeout detection in case of preemption.</li>
<li>Update LL_ADC_REG_Init() API to avoid enabling continuous mode and discontinuous mode simultaneously.</li>
</ul></li>
<li><strong>HAL WWDG</strong> update
<ul>
<li>Update HAL driver description.</li>
</ul></li>
<li><strong>HAL IWDG</strong> update
<ul>
<li>Update HAL_IWDG_Init() API in order to fix HAL_GetTick() timeout vulnerability issue.</li>
<li>Add LSI startup time in default IWDG timeout calculation (HAL_IWDG_DEFAULT_TIMEOUT).</li>
</ul></li>
<li><strong>HAL EXTI</strong> update
<ul>
<li>Update macros using LINE as a macro parameter to use EXTI_LINE instead to resolve parameter conflicts with standard C usage.</li>
<li>Update HAL_EXTI_GetConfigLine() API to set default configuration value of Trigger and GPIOSel before checking each corresponding registers.</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.4.3 / 22-October-2020</label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<h3 id="maintenance-release-2">Maintenance release</h3>
<ul>
<li>General updates to fix known defect.</li>
</ul>
<h2 id="contents-2">Contents</h2>
<ul>
<li><strong>HAL/LL I2C</strong> driver
<ul>
<li>Update to fix hardfault issue with HAL_I2C_Mem_Write_DMA() API:
<ul>
<li>Abort the right ongoing DMA transfer when memory write access request operation failed: fix typo “hdmarx” replaced by “hdmatx”</li>
</ul></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.4.2 / 28-August-2020</label>
<div>
<h2 id="main-changes-3">Main Changes</h2>
<h3 id="maintenance-release-3">Maintenance release</h3>
<ul>
<li>Patch release to fix issue in I2C HAL driver</li>
</ul>
<h2 id="contents-3">Contents</h2>
<ul>
<li><strong>HAL I2C</strong> driver
<ul>
<li>Update I2C_MasterReceiveRXNE() static API to avoid set the STOP bit again after the bit clearing by Hardware during the masking operation.
<ul>
<li>Add new API I2C_WaitOnSTOPRequestThroughIT() to wait for stop bit.</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.4.1 / 24-June-2020</label>
<div>
<h2 id="main-changes-4">Main Changes</h2>
<h3 id="maintenance-release-4">Maintenance release</h3>
<ul>
<li>Add new HAL EXTI driver</li>
<li>General updates to fix known defects and enhancements implementation</li>
</ul>
<h2 id="contents-4">Contents</h2>
<ul>
<li><strong>HAL</strong> driver
<ul>
<li>Enhance HAL_SetTickFreq() API robustness
<ul>
<li>Restore previous tick frequency when a wrong tick initialization occurs.</li>
</ul></li>
</ul></li>
<li><strong>LL ADC</strong> driver
<ul>
<li>Fix ADC TEMPSENSOR/VREFINT calibration addresses</li>
</ul></li>
<li><strong>HAL/LL GPIO</strong> driver
<ul>
<li>Update HAL_GPIO_TogglePin() API to allow the toggling of many pins</li>
<li>Update GPIO initialization sequence to avoid unwanted pulse on GPIO Pin’s</li>
</ul></li>
<li><strong>HAL EXTI</strong> driver
<ul>
<li>Add new HAL_EXTI driver.</li>
</ul></li>
<li><strong>HAL FLASH</strong> driver
<ul>
<li>Fix assert compilation error with HAL_FLASHEx_DATAEEPROM_Erase() API.</li>
</ul></li>
<li><strong>HAL/LL I2C</strong> driver
<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).</li>
<li>Update HAL_I2C_Init() API to force software reset before setting new I2C configuration</li>
<li>Update HAL I2C processes to report ErrorCode when wrong I2C start condition occurs
<ul>
<li>Add new ErrorCode define: HAL_I2C_WRONG_START</li>
<li>Set ErrorCode parameter in I2C handle to HAL_I2C_WRONG_START</li>
</ul></li>
<li>Update sequential APIs to avoid requesting a START when a STOP condition is not fully treated
<ul>
<li>Wait the end of STOP treatment by polling (with a timeout) the STOP bit on Control register CR1</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL I2S</strong> driver
<ul>
<li>Update HAL_I2S_DMAStop() API to be more safe
<ul>
<li>Add a check on BSY, TXE and RXNE flags before disabling the I2S</li>
</ul></li>
<li>Update HAL_I2S_DMAStop() API to fix multi-call transfer issue(to avoid re-initializing the I2S for the next transfer).
<ul>
<li>Add __HAL_I2SEXT_FLUSH_RX_DR() and __HAL_I2S_FLUSH_RX_DR() macros to flush the remaining data inside DR registers.</li>
<li>Add new ErrorCode define: HAL_I2S_ERROR_BUSY_LINE_RX</li>
</ul></li>
</ul></li>
<li><strong>HAL IRDA</strong> driver
<ul>
<li>Update IRDA interruption handler to manage correctly the overrun interrupt
<ul>
<li>Add in the HAL_IRDA_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.</li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> driver
<ul>
<li>Update SMARTCARD interruption handler to manage correctly the overrun interrupt
<ul>
<li>Add in the HAL_SMARTCARD_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.</li>
</ul></li>
<li>Update SMARTCARD transmission and reception API to handle memory corruption
<ul>
<li>HAL_SMARTCARD_Transmit(), HAL_SMARTCARD_Receive()</li>
<li>SMARTCARD_Transmit_IT(), SMARTCARD_Receive_IT()</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL SPI</strong> driver
<ul>
<li>Update to implement Erratasheet: BSY bit may stay high at the end of a data transfer in Slave mode.</li>
<li>Update SPI_DMAReceiveCplt() API to handle efficiently the repeated transfers.
<ul>
<li>To avoid setting the BaudRatePrescaler in case of Slave Motorola Mode</li>
<li>Use the bit-mask for SPI configuration</li>
</ul></li>
<li>Update Transmit/Receive processes in half-duplex mode
<ul>
<li>Disable the SPI instance before setting BDIOE bit</li>
</ul></li>
<li>Fix wrong timeout management
<ul>
<li>Calculate Timeout based on a software loop to avoid blocking issue if Systick is disabled</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL TIM</strong> driver
<ul>
<li>Align HAL/LL TIM driver with latest updates and enhancements</li>
<li>Add new macros to enable and disable the fast mode when using the one pulse mode to output a waveform with a minimum delay
<ul>
<li>__HAL_TIM_ENABLE_OCxFAST() and __HAL_TIM_DISABLE_OCxFAST().</li>
</ul></li>
<li>Update Encoder interface mode to keep TIM_CCER_CCxNP bits low
<ul>
<li>Add TIM_ENCODERINPUTPOLARITY_RISING and TIM_ENCODERINPUTPOLARITY_FALLING definitions to determine encoder input polarity.</li>
<li>Add IS_TIM_ENCODERINPUT_POLARITY() macro to check the encoder input polarity.</li>
<li>Update HAL_TIM_Encoder_Init() API</li>
<li>Replace IS_TIM_IC_POLARITY() macro by IS_TIM_ENCODERINPUT_POLARITY() macro.</li>
</ul></li>
<li>Fix bug when using multiple DMA request to different channels of same timer
<ul>
<li>Introduce DMA burst state management mechanism
<ul>
<li>Add a new structure for DMA Burst States definition : HAL_TIM_DMABurstStateTypeDef</li>
<li>Update __HAL_TIM_RESET_HANDLE_STATE to support DMABurstState</li>
<li>Add a new API HAL_TIM_DMABurstState() to get the actual state of a DMA burst operation</li>
<li>Add DMABurstState, the DMA burst operation state, in the TIM_HandleTypeDef structure</li>
<li>Add new API TIM_DMAErrorCCxN() for TIM DMA error callback (complementary channel)</li>
<li>Add new API TIM_DMADelayPulseNCplt() for TIM DMA Delay Pulse complete callback (complementary channel)</li>
</ul></li>
</ul></li>
<li>Implement TIM channel state management mechanism
<ul>
<li>Add new macro
<ul>
<li>TIM_CHANNEL_STATE_SET_ALL</li>
<li>TIM_CHANNEL_STATE_SET</li>
<li>TIM_CHANNEL_STATE_GET</li>
</ul></li>
<li>Add new API HAL_TIM_GetActiveChannel()</li>
<li>Add new API HAL_TIM_GetChannelState() to get actual state of the TIM channel</li>
<li>Add a new structure for TIM channel States definition : HAL_TIM_ChannelStateTypeDef</li>
<li>Update __HAL_TIM_RESET_HANDLE_STATE to support ChannelState</li>
<li>Add a new element in the TIM_HandleTypeDef structure : ChannelState to manage TIM channel operation state</li>
</ul></li>
<li>Update HAL_TIMEx_MasterConfigSynchronization() API to avoid functional errors and assert fails when using some TIM instances as input trigger.
<ul>
<li>Replace IS_TIM_SYNCHRO_INSTANCE() macro by IS_TIM_MASTER_INSTANCE() macro.</li>
<li>Add IS_TIM_SLAVE_INSTANCE() macro to check on TIM_SMCR_MSM bit.</li>
</ul></li>
<li>Remove ‘register’ storage class specifier from LL TIM driver.</li>
<li>Add new API HAL_TIM_DMABurst_MultiWriteStart() allowing to configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral</li>
<li>Add new API HAL_TIM_DMABurst_MultiReadStart() allowing to configure the DMA Burst to transfer Data from the TIM peripheral to the memory</li>
</ul></li>
<li><strong>HAL RCC</strong> driver
<ul>
<li>Fix extra parentheses compilation warnings with clang compiler</li>
<li>Update HAL_RCC_GetSysClockFreq() API to avoid the risk of rounding overflow.</li>
</ul></li>
<li><strong>HAL/LL UART</strong> driver
<ul>
<li>Update UART polling processes to handle efficiently the Lock mechanism
<ul>
<li>Move the process unlock at the top of the HAL_UART_Receive() and HAL_UART_Transmit() API.</li>
</ul></li>
<li>Update UART interruption handler to manage correctly the overrun interrupt
<ul>
<li>Add in the HAL_UART_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.</li>
</ul></li>
<li>Update UART BRR calculation for ROM size gain</li>
</ul></li>
<li><strong>HAL/LL USART</strong> driver
<ul>
<li>Update some API description
<ul>
<li>HAL_USART_Transmit() / HAL_USART_Transmit_IT()
<ul>
<li>HAL_USART_Receive() / HAL_USART_Receive_IT()</li>
<li>HAL_USART_TransmitReceive() / HAL_USART_TransmitReceive_IT()</li>
<li>HAL_USART_Transmit_DMA() / HAL_USART_Receive_DMA() / HAL_USART_TransmitReceive_DMA()</li>
</ul></li>
</ul></li>
<li>Update USART interruption handler to manage correctly the overrun interrupt
<ul>
<li>Add in the HAL_USART_IRQHandler() API a check on USART_CR1_RXNEIE bit when an overrun interrupt occurs.</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>
</ul></li>
<li><strong>LL UTILS</strong> driver
<ul>
<li>Add new LL API LL_SetFlashLatency() to set Flash latency.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section11" aria-hidden="true"> <label for="collapse-section11" aria-hidden="true">V1.4.0 / 05-April-2019</label>
<div>
<h2 id="main-changes-5">Main Changes</h2>
<h3 id="maintenance-release-5">Maintenance release</h3>
<ul>
<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-5">Contents</h2>
<ul>
<li><strong>HAL/LL</strong> generic
<ul>
<li>Add support of <strong>HAL callback registration</strong> feature</li>
<li>The feature <strong>disabled by default</strong> is available for the following HAL drivers:
<ul>
<li><strong>ADC, COMP, DAC, I2C, I2S, IRDA, LPTIM, PCD, RNG, RTC, SMARTCARD, SMBUS, SPI, TIM, TSC, UART, USART</strong> and <strong>WWDG</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 stm32l1xx_hal_conf.h project configuration file (template file stm32l1xx_hal_conf_template.h available from Drivers/STM32L1xx_HAL_Driver/Inc)</li>
<li><p>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().</p></li>
<li><p>Update HAL/LL Driver compliancy with MISRA C 2012 rules</p></li>
<li>stm32l1xx_hal_def.h
<ul>
<li>Update file to avoid compiler warnings from __packed definitions</li>
<li>Update UNUSED() macro to fix compilation warning with g++ compiler</li>
<li>Replace include stdio.h by stddef.h</li>
<li>Update __RAM_FUNC define to not impose function type</li>
</ul></li>
</ul></li>
<li><strong>HAL</strong> driver
<ul>
<li>Add HAL_GetUIDw0(), HAL_GetUIDw1() and HAL_GetUIDw2() for 96-bit UID</li>
<li>Modify default HAL_Delay implementation to guarantee minimum delay</li>
<li>Update Doxygen tags in macros description to have generate correct CHM format</li>
<li>Update implementation of HAL_SetTickFreq() function</li>
</ul></li>
<li><strong>HAL ADC</strong> driver
<ul>
<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>
<li>Remove unused code in HAL_ADC_Stop_DMA() function.</li>
</ul></li>
<li><strong>HAL/LL COMP</strong> driver
<ul>
<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>
<li>Update define for COMP_NONINVERTINGINPUT_PA6</li>
<li>Update define for LL_COMP_INPUT_PLUS_IO11</li>
<li>Correct issue with input plus COMP1 in windowmode</li>
<li>Add missing LL function for COMP_CSR-&gt;VREFOUTEN bit</li>
</ul></li>
<li><strong>HAL CRC</strong> driver
<ul>
<li>Align HAL/LL CRC driver with latest updates and enhancements</li>
<li>Update CRC driver to remove not applicable InputDataFormat</li>
</ul></li>
<li><strong>HAL DAC</strong> driver
<ul>
<li>Align HAL/LL DAC driver with latest updates and enhancements</li>
<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> driver
<ul>
<li>Align HAL/LL DMA drivers with latest updates and enhancements</li>
<li>Add missing APIs to register/unregister DMA callbacks</li>
</ul></li>
<li><strong>HAL FLASH</strong> driver
<ul>
<li>Update HAL_FLASH_Unlock() and HAL_FLASH_OB_Unlock() in order the functions do not return an error when already unlocked</li>
<li>Update HAL_FLASHEx_ProgramParallelHalfPage(), HAL_FLASHEx_HalfPageProgram(), HAL_FLASHEx_DATAEEPROM_EraseDoubleWord(), HAL_FLASHEx_DATAEEPROM_ProgramDoubleWord() so that the functions should not be restricted to privilege mode</li>
<li>Update FLASH_OB_GetRDP() function to return the correct RDP level</li>
<li>Update FLASH_OB_GetUser() and FLASH_OB_UserConfig() to use the combination of specific masks FLASH_OBR_IWDG_SW, FLASH_OBR_nRST_STOP and FLASH_OBR_nRST_STDBY</li>
</ul></li>
<li><strong>HAL GPIO</strong> driver
<ul>
<li>Update HAL_GPIO_DeInit() function to perform EXTI configuration reset before GPIO configuration</li>
<li>Improve robustness of HAL_GPIO_TogglePin() function</li>
<li>Update definition of IS_GPIO_PIN to remove compilation warning with IAR tool chain</li>
<li>Update usage description for HAL_GPIO_LockPin() to justify an unused read of a register</li>
</ul></li>
<li><strong>HAL/LL I2C</strong> driver
<ul>
<li>Align HAL/LL I2C driver with latest updates and enhancements</li>
<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>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>Add reset on slave LISTEN_TX state in case of direction change</li>
<li>Remove unused variable in HAL_I2C_Slave_Transmit_IT/DMA() and HAL_I2C_Slave_Receive_IT/DMA() functions to avoid warning compilation with linux tool chain</li>
<li>Add I2C slave enhancement with the functions: HAL_I2C_Master_Sequential_Transmit_DMA(), HAL_I2C_Master_Sequential_Receive_DMA(), HAL_I2C_Slave_Sequential_Transmit_DMA(), HAL_I2C_Slave_Sequential_Receive_DMA() functions</li>
<li>Update HAL_I2C_Master_Seq_Transmit_IT(DMA), HAL_I2C_Master_Seq_Receive_IT(DMA) functions.
<ul>
<li>Update comments about Device Address parameter (DevAddress) description in I2C functions header</li>
<li>Add restart condition for each call of HAL_I2C_Master_Seq_xxxx_IT</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>Update ErrorCode to correct wrong returned value after waiting until BUSY flag is reset</li>
</ul></li>
<li><strong>HAL I2S</strong> driver
<ul>
<li>Align 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> driver
<ul>
<li>Align 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>
<li>Review IRDA state machine to avoid cases where IRDA state is overwritten by IRDA IRQ</li>
<li>Implement new APIs for HAL IRDA Abort management:
<ul>
<li>HAL_IRDA_Abort(), HAL_IRDA_AbortTransmit(), HAL_IRDA_AbortReceive(), HAL_IRDA_Abort_IT(), HAL_IRDA_AbortTransmit_IT(), HAL_IRDA_AbortReceive_IT()</li>
</ul></li>
<li>Optimize WaitOnFlag management in IRDA_Transmit() function</li>
<li>Optimize all HAL IRQ Handler routines</li>
<li>Optimize HAL IRDA to avoid using macros as argument of function calls</li>
</ul></li>
<li><strong>HAL OPAMP</strong> driver
<ul>
<li>Align HAL OPAMP driver with latest updates and enhancements</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_OPAMP_RegisterCallback() and HAL_OPAMP_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_OPAMP_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL/LL RCC</strong> driver
<ul>
<li>Replace __HAL_RCC_CRYP_CLK_ENABLE by __HAL_RCC_AES_CLK_ENABLE</li>
<li>Change HAL_RCC_DeInit() to HAL_StatusTypeDef</li>
<li>Update HAL_RCC_DeInit() and LL_RCC_DeInit() to also clear interrupts and reset flags</li>
<li>Update HAL_RCC_DeInit() and LL_RCC_DeInit() to add check on PLLRDY before clearing PLLCFGR register</li>
<li>Update HAL_RCC_DeInit() to insure that default MSI range is set prior to enable MSI and use it as SYSCLK source</li>
<li>Update LL_RCC_DeInit() to add the key word volatile and avoid compilation issue with gcc -O3</li>
<li>Remove LSI_VALUE definition from stm32l1xx_hal_rcc_ex.h to have it declared in HAL Generic stm32l1xx_hal_conf_template.h/stm32l1xx_hal_conf.h as other families STM32 HAL drivers</li>
<li>Correct LSI_VALUE LL definition in stm32l1xx_ll_rcc.h</li>
<li>Update HAL_RCC_OscConfig() to avoid MCU hangs after some stop/wakeup cycles</li>
<li>Replace all calls to HAL_InitTick(TICK_INT_PRIORITY) with HAL_InitTick(uwTickPrio) to avoid Tick priority overwrite</li>
<li>Add new LL_RCC_PLL_SetMainSource macro to set the PLL source without enabling any PLL</li>
</ul></li>
<li><strong>HAL/LL RTC</strong> driver
<ul>
<li>Align HAL/LL RTC driver with latest updates and enhancements</li>
<li>Remove unused value in HAL_RTC_SetTime() function</li>
<li>Update implementation of LL_RTC_DATE_Get() function</li>
<li>Correct issue in the argument of LL_RTC_ALMB_SetDay() function</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 SDMMC</strong> driver
<ul>
<li>Align HAL SDMMC driver with latest updates and enhancements</li>
<li><strong>Due to limitation <em>SDIO hardware flow control</em> indicated in Errata Sheet</strong> :
<ul>
<li>In 4-bits bus wide mode, do not use the HAL_SD_WriteBlocks_IT() or HAL_SD_WriteBlocks() APIs otherwise underrun will occur and there is not possibility to activate the flow control</li>
<li>Use DMA mode when using 4-bits bus wide mode or decrease the frequency</li>
</ul></li>
<li>Add callback registration feature
<ul>
<li>Add HAL_SD_RegisterCallback(),HAL_SD_UnRegisterCallback(), HAL_SD_RegisterTransceiverCallback() and HAL_SD_UnRegisterTransceiverCallback APIs</li>
<li>Add callback identifiers in HAL_SD_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> driver
<ul>
<li>Align 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>
<li>Review SMARTCARD state machine to avoid cases where SMARTCARD state is overwritten by SMARTCARD IRQ</li>
<li>Implement new APIs for HAL SMARTCARD Abort management:
<ul>
<li>HAL_SMARTCARD_Abort(), HAL_SMARTCARD_AbortTransmit(), HAL_SMARTCARD_AbortReceive(), HAL_SMARTCARD_Abort_IT(), HAL_SMARTCARD_AbortTransmit_IT(), HAL_SMARTCARD_AbortReceive_IT()</li>
</ul></li>
<li>Optimize WaitOnFlag management in SMARTCARD_Transmit() function</li>
<li>Optimize all HAL IRQ Handler routines</li>
<li>Optimize HAL SMARTCARD to avoid using macros as argument of function calls</li>
</ul></li>
<li><strong>HAL/LL SPI</strong> driver
<ul>
<li>Align HAL/LL SPI driver with latest updates and enhancements</li>
<li><strong>Backward compatibility</strong>:
<ul>
<li>Remove <strong>stm32l1xx_hal_spi_ex.c/.h</strong> files and move the functions/definitions to stm32l1xx_hal_spi.c/.h</li>
<li>The user projects must be updated to remove <strong>stm32l1xx_hal_spi_ex.c/.h</strong> from files list</li>
</ul></li>
<li>Fix issue in HAL_SPI_Transmit() and HAL_SPI_TransmitReceive() functions</li>
<li>Update HAL/LL SPI driver to manage TI mode not supported by all STM32L1xx devices</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> driver
<ul>
<li>Align HAL/LL TIM driver with latest updates and enhancements</li>
<li>Add support of preload control in HAL TIM API</li>
<li>Remove TIM_CHANNEL_4 argument from description of HAL_TIMEx_OCN_xxx() and HAL_TIMEx_PWMN_xxxx() functions</li>
<li>Update comments in HAL/LL functions to describe how to switch from Center Aligned counter mode to Edge Aligned Down mode</li>
<li>Remove OCIdleState from TIM_OC_InitTypeDef and TIM_OnePulse_InitTypeDef</li>
<li>Update behavior of LL_TIM_EnableUpdateEvent() and LL_TIM_DisableUpdateEvent() functions</li>
<li>Add callback registration feature + Add HAL_TIM_RegisterCallback() and HAL_TIM_UnRegisterCallback() APIs + Add callback identifiers in HAL_TIM_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
<li><strong>HAL UART/USART</strong> driver
<ul>
<li>Align HAL UART/USART driver with latest updates and enhancements</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_UART/USART_RegisterCallback() and HAL_UART/USART_UnRegisterCallback() APIs</li>
<li>Add callback identifiers in HAL_UART/USART_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
<li>Add missing __IO in UART/USART_HandleTypeDef definition (for TxXferCount and RxXferCount)</li>
<li>Review UART/USART state machine to avoid cases where UART/USART state is overwritten by UART/USART IRQ</li>
<li>Implement new APIs for HAL UART/USART Abort management:
<ul>
<li>HAL_UART/USART_Abort(), HAL_UART/USART_AbortTransmit(), HAL_UART/USART_AbortReceive(), HAL_UART/USART_Abort_IT(), HAL_UART/USART_AbortTransmit_IT(), HAL_UART/USART_AbortReceive_IT()</li>
</ul></li>
<li>Optimize WaitOnFlag management in UART/USART_Transmit() function</li>
<li>Optimize all HAL IRQ Handler routines</li>
<li>Align __HAL_UART_GET_IT and __HAL_UART_GET_IT_SOURCE with other series</li>
<li>Optimize HAL UART/USART to avoid using macros as argument of function calls</li>
<li>Update USART BRR calculation</li>
</ul></li>
<li><strong>HAL USB</strong> driver
<ul>
<li>Align HAL USB driver with latest updates and enhancements</li>
<li>Upgrade to USB Device Library v2.5.2</li>
<li>Fix issue with Buffer Overflow in PCD_ReadPMA() function</li>
<li>Add callback registration feature
<ul>
<li>Add HAL_PCD_RegisterCallback(),HAL_PCD_UnRegisterCallback(), HAL_PCD_RegisterDataOutStageCallback(), HAL_PCD_UnRegisterDataOutStageCallback(), HAL_PCD_RegisterDataInStageCallback(), HAL_PCD_UnRegisterDataInStageCallback(), HAL_PCD_RegisterIsoOutIncpltCallback(), HAL_PCD_UnRegisterIsoOutIncpltCallback(), HAL_PCD_RegisterIsoInIncpltCallback(), HAL_PCD_UnRegisterIsoInIncpltCallback(), HAL_PCD_RegisterBcdCallback(), HAL_PCD_UnRegisterBcdCallback(), HAL_PCD_RegisterLpmCallback() and HAL_PCD_UnRegisterLpmCallback() APIs</li>
<li>Add callback identifiers in HAL_PCD_CallbackIDTypeDef enumerated typedef</li>
</ul></li>
</ul></li>
<li><strong>LL UTILS</strong> driver
<ul>
<li>Correct LL_GetUID_Word2 function to fix error in UID flash location</li>
<li>Fix mismatch return type in LL_GetPackageType(void)</li>
</ul></li>
<li><strong>HAL WWDG</strong> driver
<ul>
<li>Align HAL WWDG driver with latest updates and enhancements</li>
<li>Add 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-section9" aria-hidden="true"> <label for="collapse-section9" aria-hidden="true">V1.3.1 / 25-August-2017</label>
<div>
<h2 id="main-changes-6">Main Changes</h2>
<h3 id="patch-release">Patch release</h3>
<h2 id="contents-6">Contents</h2>
<ul>
<li><strong>HAL/LL</strong> generic
<ul>
<li>Remove DATE and VERSION fields from header files</li>
<li>Update CHM User Manual for Drivers/STM32L1xx_HAL_Driver</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.3.0 / 21-April-2017</label>
<div>
<h2 id="main-changes-7">Main Changes</h2>
<h3 id="maintenance-release-6">Maintenance release</h3>
<h2 id="contents-7">Contents</h2>
<ul>
<li><strong>HAL/LL</strong> generic
<ul>
<li>Enhanced HAL delay and time base implementation:
<ul>
<li>Added new templates stm32l1xx_hal_timebase_tim_template.c which can be used to override the native HAL time base functions (defined as weak) and to use Timer as time base tick source.</li>
<li>For more details about the usage of these drivers, please refer to HAL_TimeBase_TIM examples and FreeRTOS-based applications.</li>
</ul></li>
<li>Updated HAL Driver compliancy with MISRA C 2004 rules:
<ul>
<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 (if the bitwise operators ~ and &lt;&lt; are applied to an operand of underlying type ‘unsigned char’ or ‘unsigned short’, the result shall be immediately cast to the underlying type of the operand)</li>
<li>MISRA C 2004 rule 11.4 (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.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>
</ul></li>
<li>Removed (uint32_t) cast when “U” is used in order to avoid double definitions.</li>
<li>Replaced hard coded POSITION definition in HAL/LL drivers by the associated PPP_xxx_pos CMSIS define.</li>
</ul></li>
<li><strong>HAL CORTEX</strong>
<ul>
<li>Updated HAL_MPU_Disable function to clear whole CR register.</li>
</ul></li>
<li><strong>LL DMA</strong>
<ul>
<li>Improved CPAR and CMAR registers access in LL_DMA_ConfigAddresses function.</li>
</ul></li>
<li><strong>HAL FLASH</strong>
<ul>
<li>Updated HAL_FLASHEx_Erase_IT() function to check the FLASH is ready before starting Erase by IT.</li>
</ul></li>
<li><strong>HAL/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>Added LL_I2C_DisableReset() function to allow the disable of SWRST.</li>
</ul></li>
<li><strong>HAL PCD</strong>
<ul>
<li>Corrected double buffer implementation in PCD_SET_EP_DBUF1_CNT() macro.</li>
<li>Added missing USB_CNTR_SOFM in the setting of wInterrupt_Mask global variable used in HAL_PCD_Init.</li>
<li>Removed lock/unlock from receive and transmit endpoints.</li>
</ul></li>
<li><strong>HAL/LL PWR</strong>
<ul>
<li>Replaced HAL_PWREx_GetVoltageRange() function by direct register access to remove dependency with HAL PWR.</li>
<li>Renamed the LL_PWR_IsActiveFlag_VOSF() API to LL_PWR_IsActiveFlag_VOS() in order to remove reference to PWR flag name and to refer to the Power feature.</li>
</ul></li>
<li><strong>HAL/LL RTC</strong>
<ul>
<li>Renamed RTC_CR_BCK bits in RTC_CR register to RTC_CR_BKP, to be aligned with others series.</li>
</ul></li>
<li><strong>HAL/LL SPI</strong>
<ul>
<li>Removed LL_SPI_SR_UDR define which is available only for I2S feature.</li>
<li>Updated LL_SPI_TransmitData16() et LL_SPI_TransmitData8 functions.</li>
</ul></li>
<li><strong>HAL/LL TIM</strong>
<ul>
<li>Corrected error in LL_TIM_EnableUpdateEvent() and LL_TIM_DisableUpdateEvent() functions.</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.2.0 / 01-July-2016</label>
<div>
<h2 id="main-changes-8">Main Changes</h2>
<h3 id="maintenance-release-7">Maintenance release</h3>
<ul>
<li>First official release supporting the <strong>Low Level</strong> drivers for the <strong>STM32L1xx</strong> family:
<ul>
<li>Low Layer drivers APIs provide register level programming: they require deep knowledge of peripherals described in STM32L1xx Reference Manual.</li>
<li>Low Layer drivers are available for: ADC, COMP, CORTEX, CRC, DAC, DMA, EXTI, GPIO, I2C, IWDG, OPAMP, PWR, RCC, 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/stm32l1xx_ll_ppp.h files for PPP peripherals, there is no configuration file and each stm32l1xx_ll_ppp.h file must be included in user code.</li>
</ul></li>
</ul>
<h2 id="contents-8">Contents</h2>
<ul>
<li><strong>Generic updates</strong>
<ul>
<li>Update HAL drivers to apply MISRA C 2004 rule 10.6.</li>
<li>uwTick must be global and not static to allow overwrite of HAL_IncTick()</li>
</ul></li>
<li><strong>ADC</strong>
<ul>
<li>Clear the bit OVR (overrun) in addition to EOC (end of conversion) inside HAL_ADC_Start, HAL_ADC_Start_IT and HAL_ADC_Start_DMA.</li>
</ul></li>
<li><strong>CRC</strong>
<ul>
<li>HAL_CRC_DeInit() resets CRC_IDR register to reset value.</li>
</ul></li>
<li><strong>DMA</strong>
<ul>
<li>Add function HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma).</li>
<li>This function aborts the DMA Transfer in Interrupt mode.</li>
<li>Add macro __HAL_DMA_GET_COUNTER</li>
<li>This macro permits to get the number of remaining data units in the current DMAy Channelx transfer.</li>
<li>Global driver code optimization to reduce memory footprint</li>
</ul></li>
<li><strong>FLASH</strong>
<ul>
<li>Correct MISRA 10.3 Error[Pm069]: if identifiers are given for any of the parameters, then the identifiers used in the declaration and definition shall be identical (MISRA C 2004 rule 16.4).</li>
</ul></li>
<li><strong>GPIO</strong>
<ul>
<li>IS_GPIO_PIN is more robust.</li>
</ul></li>
<li><strong>I2C</strong>
<ul>
<li>WaitOnFlag is optimized to effectively last until the expected timeout of a transfer.</li>
<li>Optimisation of the IRQHandler.</li>
<li>Rework DMA end process and I2C error management during DMA transfer.</li>
<li>HAL_I2C_Master_Transmit_DMA now returns an error in case of communication error.</li>
<li>Add support for repeated start feature.</li>
</ul></li>
<li><strong>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:</li>
<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>
<li>Refer to the following example to identify the changes: IWDG_Example</li>
</ul></li>
<li><strong>PWR</strong>
<ul>
<li>Add new interface HAL_FLASHEx_GetError.</li>
<li>Add constant FLASH_SIZE.</li>
<li>Use suffix U for all the defines.</li>
<li>HAL_PWREx_DisableLowPowerRunMode now returns HAL_StatusTypeDef instead of void.</li>
<li>SB and ADDR are now managed in interrupt mode, not in polling.</li>
<li>Add DMA abort treatment</li>
</ul></li>
<li><strong>RCC</strong>
<ul>
<li>Rework the correction from V1.1.3:
<ul>
<li>Backup domain are no more reseted when RTC clock source is changed from reset value.</li>
</ul></li>
</ul></li>
<li><strong>RTC</strong>
<ul>
<li>Updated HAL_RTCEx_SetWakeUpTimer_IT() function by adding clear of Wake-Up flag before enabling the interrupt.</li>
</ul></li>
<li><strong>SPI</strong>
<ul>
<li>Correct MISRA 5.2 “tmpreg” variable shall not be used inside MACRO.</li>
<li>In the SPI_HandleTypeDef structure, RxXferCount and TxXferCount are now __IO.</li>
<li>Clear the OVR flag before a new transfer.</li>
</ul></li>
<li><strong>TIMER</strong>
<ul>
<li>Correct the description of the function HAL_TIM_PWM_Start_IT.
<ul>
<li>The parameter Channel mentions the channel to be enabled and not the one to be disabled.</li>
</ul></li>
</ul></li>
<li><strong>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>
</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.1.3 / 04-March-2016</label>
<div>
<h2 id="main-changes-9">Main Changes</h2>
<h3 id="maintenance-release-8">Maintenance release</h3>
<h2 id="contents-9">Contents</h2>
<ul>
<li><strong>Generic update</strong>
<ul>
<li>Update HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers.</li>
<li>Improve the update of the SystemCoreClock variable within the HAL Driver.</li>
<li>Split aAPBAHBPrescTable into aAHBPrescTable and aAPBPrescTable.</li>
<li>Reduce HSE_STARTUP_TIMEOUT from 5s to 100ms.</li>
<li>Reduce MSI_TIMEOUT_VALUE from 100ms to 2ms.</li>
<li>Reduce HSI_TIMEOUT_VALUE from 100ms to 2ms.</li>
<li>Reduce LSI_TIMEOUT_VALUE from 100ms to 2ms.</li>
<li>Reduce PLL_TIMEOUT_VALUE from 100ms to 2ms.</li>
</ul></li>
<li><strong>CORTEX</strong>
<ul>
<li>__HAL_CORTEX_SYSTICKCLK_CONFIG is now deprecated. Prefer using HAL_SYSTICK_CLKSourceConfig function.</li>
</ul></li>
<li><strong>FLASH</strong>
<ul>
<li>Correct issue preventing Cat.1 devices to write data in EEPROM.</li>
</ul></li>
<li><strong>I2C</strong>
<ul>
<li>Add NACK management during wait on flag treatment.</li>
<li>Update the state machine.</li>
<li>It is now possible to use the I2C transmission with a data size of 0.</li>
</ul></li>
<li><strong>RCC</strong>
<ul>
<li>Optimize HAL_RCC_ClockConfig.</li>
<li>LSEON is reset only if required inside HAL_RCC_OscConfig.</li>
<li>RCC HSE pre-scaler reconfiguration for LCD/RTC peripherical is now possible.</li>
<li>Backup domain are no more reseted when RTC clock source is changed from reset value.</li>
</ul></li>
<li><strong>SMARTCARD</strong>
<ul>
<li>Update description of GuardTime and Prescaler fields in SMARTCARD_InitTypeDef structure.</li>
</ul></li>
<li><strong>UART</strong>
<ul>
<li>HAL_LIN_SendBreak() now use IS_UART_LIN_INSTANCE instead of IS_UART_INSTANCE.</li>
<li>Correct the UART_BRR_SAMPLING8 macro in the case of cary handling.</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.1.2 / 09-October-2015</label>
<div>
<h2 id="main-changes-10">Main Changes</h2>
<h3 id="maintenance-release-9">Maintenance release</h3>
<h2 id="contents-10">Contents</h2>
<ul>
<li><strong>ADC</strong>
<ul>
<li>The ADC internal macro “IS_ADC_RANGE” is modified to take into account the ADC resolution.</li>
<li>The function HAL_ADC_PollForEvent, in case of timeout, returns HAL_TIMEOUT instead of HAL_ERROR.</li>
<li>HAL_ADC_Init set the ADC handle in state HAL_ADC_ERROR_INTERNAL if the user try to initialize the ADC in DiscontinuousConvMode and ContinuousConvMode simultaneously, which is not possible.</li>
<li>Enhance the check for ScanConvMode in HAL_ADC_Init.</li>
</ul></li>
<li><strong>Cortex</strong>
<ul>
<li>Corrected Misra error (MISRA C 2004 rule 10.5).</li>
</ul></li>
<li><strong>CRC</strong>
<ul>
<li>Corrected the macro __HAL_CRC_SET_IDR.</li>
</ul></li>
<li><strong>GPIO</strong>
<ul>
<li>Corrected the macro GPIO_GET_INDEX.</li>
<li>To insure the same naming accross all STM32 families (F4, F2, F0, F1, L1 etc):
<ul>
<li>Replacing GPIO_SPEED_VERY_LOW by GPIO_SPEED_FREQ_LOW.</li>
<li>Replacing GPIO_SPEED_LOW by GPIO_SPEED_FREQ_MEDIUM.</li>
<li>Replacing GPIO_SPEED_MEDIUM by GPIO_SPEED_FREQ_HIGH.</li>
<li>Replacing GPIO_SPEED_HIGH by GPIO_SPEED_FREQ_VERY_HIGH.</li>
</ul></li>
</ul></li>
<li><strong>IRDA</strong>
<ul>
<li>Corrected the HAL_IRDA_IRQHandler which was preventing to handle 2 simultaneous errors.</li>
</ul></li>
<li><strong>I2C</strong>
<ul>
<li>Corrected an issue where the STOP bit was not cleared after reading data depending on APB/I2C frequency.</li>
</ul></li>
<li><strong>I2S</strong>
<ul>
<li>HAL_I2S_Transmit() is updated to keep the check on busy flag only for the slave.</li>
</ul></li>
<li><strong>PCD</strong>
<ul>
<li>Corrected issue when using USB Device double-buffering mode for IN endpoints.</li>
<li>do{ … } while(0) is used for multi statement macros.</li>
</ul></li>
<li><strong>PWR</strong>
<ul>
<li>Corrected Misra error (MISRA C 2004 rule 14.3).</li>
</ul></li>
<li><strong>RCC</strong>
<ul>
<li>In HAL_RCCEx_PeriphCLKConfig, the reset of the backup domain occurs only if the RTC clock source has been changed.</li>
<li>__HAL_RCC_HSE_CONFIG is updated to remove the transition from RCC_HSE_ON to RCC_HSE_BYPASS.</li>
<li>Adding the macro __HAL_RCC_MCO1_CONFIG to configure the MCO clock.</li>
<li>Adding the macros and function to handle LSE CSS interrupt.</li>
<li>Corrected an error in HAL_RCC_GetSysClockFreq when the PLL is used as system clock. An incorrect sysclockfreq was returned.</li>
</ul></li>
<li><strong>RTC</strong>
<ul>
<li>RTC_TimeTypeDef.SecondFraction field is added to specifies the range or granularity of Sub Second register content.This field will be used only by HAL_RTC_GetTime function.</li>
<li>HAL_RTC_GetTime is updated to take into account the new field RTC_TimeTypeDef.SecondFraction.</li>
<li>Corrected error in __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG macro.</li>
<li>Add additionnal checks on WUTWF flag in HAL_RTCEx_SetWakeUpTimer_IT.</li>
<li>do{ … } while(0) is used for multi statement macros.</li>
</ul></li>
<li><strong>USART</strong>
<ul>
<li>Corrected the HAL_USART_IRQHandler which was preventing to handle 2 simultaneous errors.</li>
</ul></li>
<li><strong>UART</strong>
<ul>
<li>Removed the activation of ERR IT from HAL_UART_Transmit_IT() which was leading to HAL_UART_IRQ_Handler wrong behavior.</li>
<li>Corrected the HAL_UART_IRQHandler which was preventing to handle 2 simultaneous errors.</li>
</ul></li>
<li><strong>SMARTCARD</strong>
<ul>
<li>Corrected the HAL_SMARTCARD_IRQHandler which was preventing to handle 2 simultaneous errors.</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.1.1 / 31-March-2015</label>
<div>
<h2 id="main-changes-11">Main Changes</h2>
<h3 id="maintenance-release-10">Maintenance release</h3>
<ul>
<li>Include path changes for compilation under Unix environment</li>
<li>Update drivers to be C++ compliant</li>
</ul>
<h2 id="contents-11">Contents</h2>
<ul>
<li><strong>CORTEX</strong>
<ul>
<li>Added interface to access MPU features (refer to stm32l1xx_hal_cortex.h)</li>
</ul></li>
<li><strong>CRYP</strong>
<ul>
<li>Added Instance field in CRYP_HandleTypeDef.
<ul>
<li>HAL CRYP driver updated to support multi instance, so user must ensure that the new parameter Instance is initialized in his application (CRYPHandle.Instance = CRYP)</li>
</ul></li>
</ul></li>
<li><strong>FLASH</strong>
<ul>
<li>Changing field name of NOR_CFITypeDef (CFI1X changed to CFI1_X)</li>
</ul></li>
<li><strong>PCD</strong>
<ul>
<li>HAL_PCD_ActiveRemoteWakeup renamed HAL_PCD_ActivateRemoteWakeup</li>
<li>HAL_PCD_DeActiveRemoteWakeup renamed to HAL_PCD_DeActivateRemoteWakeup</li>
</ul></li>
<li><strong>PWR</strong>
<ul>
<li>HAL_PWR_PVDConfig renamed HAL_PWR_ConfigPVD</li>
<li>Added new interfaces:
<ul>
<li>void HAL_PWR_EnableSleepOnExit(void);</li>
<li>void HAL_PWR_DisableSleepOnExit(void);</li>
<li>void HAL_PWR_EnableSEVOnPend(void);</li>
<li>void HAL_PWR_DisableSEVOnPend(void);</li>
<li>void HAL_PWR_EnableSleepOnExit(void);</li>
<li>uint32_t HAL_PWREx_GetVoltageRange(void);</li>
</ul></li>
</ul></li>
<li><strong>RCC</strong>
<ul>
<li>HAL_RCC_CCSCallback renamed to HAL_RCC_CSSCallback</li>
<li>Adding HAL_RCCEx_GetPeriphCLKFreq interface.</li>
</ul></li>
<li><strong>SMARTCARD</strong>
<ul>
<li>Removal of HAL_SMARTCARD_ReInit interface.</li>
</ul></li>
<li><strong>SPI</strong>
<ul>
<li>HAL_SPI_GetError now returns a uint32_t instead of HAL_SPI_ErrorTypeDef.</li>
</ul></li>
<li><strong>TIMER</strong>
<ul>
<li>Adding interface HAL_TIM_SlaveConfigSynchronization_IT</li>
</ul></li>
<li><strong>UART</strong>
<ul>
<li>The field ErrorCode of UART_HandleTypeDef is changed from HAL_UART_ErrorTypeDef to uint32_t.</li>
</ul></li>
<li><strong>USART</strong>
<ul>
<li>The field ErrorCode of UART_HandleTypeDef is changed from HAL_UART_ErrorTypeDef to uint32_t.</li>
</ul></li>
</ul>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true">V1.1.0 / 06-February-2015</label>
<div>
<h2 id="main-changes-12">Main Changes</h2>
<h3 id="maintenance-release-11">Maintenance release</h3>
<ul>
<li>Add support of new <strong>STM32L1 eXtended devices</strong> - <strong>STM32l151xDX, STM32l152xDX &amp; STM32l62xDX</strong></li>
</ul>
<h2 id="contents-12">Contents</h2>
<ul>
<li><strong>HAL</strong> generic
<ul>
<li>Add eXtended Devices switchs when needed
<ul>
<li>STM32L151xDX has same features than STM32L151xE</li>
<li>STM32L152xDX has same features than STM32L152xE</li>
<li>STM32L162xDX has same features than STM32L162xE</li>
</ul></li>
</ul></li>
<li><strong>HAL FLASH</strong>
<ul>
<li>Add support of new STM32L1 Devices (same as other HAL)</li>
<li>stm32l1xx_hal_flash_ex.c : Specific treatment done in HAL_FLASHEx_Erase and HAL_FLASHEx_Erase_IT as memory is not continuous between 2 banks, user should perform pages erase by bank only</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 / 05-September-2014</label>
<div>
<h2 id="main-changes-13">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>
