blob: d0cf1216e71c9a4faaa4545225310c7bd43930d2 [file] [log] [blame]
<!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 STM32WLxx HAL Drivers Package</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-for">Release Notes for</h1>
<h1 id="stm32wlxx-hal-drivers"><mark>STM32WLxx HAL Drivers</mark></h1>
<p>Copyright © 2020 STMicroelectronics</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 provide 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 depend 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 function 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>Fully Independent from HAL and can be used in standalone usage (without HAL drivers)</li>
<li>Full features coverage of the 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-section4" checked aria-hidden="true"> <label for="collapse-section4" aria-hidden="true"><strong>V1.3.0 / 09-November-2022</strong></label>
<div>
<h2 id="main-changes">Main Changes</h2>
<ul>
<li>Maintenance release of <strong>HAL and Low Layer</strong> drivers to include latest corrections</li>
<li>Remove HAL_LOCK/HAL_UNLOCK calls in HAL_xxxx_RegisterCallback &amp; HAL_xxxx_UnregisterCallback for IPs (DAC, IRDA, LPTIM, SMARTCARD, TIM, UART, USART)</li>
<li>Enhance code quality (MISRA-C rules 8.13, 11.9) for some drivers: ADC, COMP, DMA, IRDA, LPTIM, SMARTCARD, TIM, UART, USART</li>
</ul>
<h2 id="contents">Contents</h2>
<h3 id="hal-drivers-updates"><strong>HAL Drivers</strong> updates</h3>
<ul>
<li><strong>HAL ADC</strong> driver
<ul>
<li>Disable AutoPowerOff when performing calibration</li>
<li>Rename ADC_TRx registers to AWDxTR to be in accordance with the Reference Manual</li>
</ul></li>
<li><strong>HAL CORTEX</strong> driver
<ul>
<li>Remove #define LL_MPU_TEX_LEVEL4 (no Level 2 cache for STM32 SoC with Armv7-M cortex)</li>
</ul></li>
<li><strong>HAL CRC</strong> driver
<ul>
<li>Add filter in HAL_CRCEx_Polynomial_Set() function to exclude even polynomials</li>
</ul></li>
<li><strong>HAL CRYP</strong> driver
<ul>
<li>Add interleaved mode</li>
</ul></li>
<li><strong>HAL DAC</strong> driver
<ul>
<li>Fix HAL_GetTick() timeout vulnerability</li>
<li>Return HAL_ERROR if configuration is not available on device</li>
</ul></li>
<li><strong>HAL EXTI</strong> driver
<ul>
<li>Fix computation of pExtiConfig-&gt;GPIOSel in HAL_EXTI_GetConfigLine()</li>
</ul></li>
<li><strong>HAL Generic</strong> driver
<ul>
<li>Add HAL_RADIO APIs to handle Radio services (only for STM32WL5M)</li>
</ul></li>
<li><strong>HAL I2C</strong> driver
<ul>
<li>Fix Timeout issue using HAL MEM interface through FreeRTOS</li>
<li>Fix I2C_IsErrorOccurred returning error if timeout is detected</li>
<li>Fix ADDRF flag cleared too early when the restart is received but the direction has changed</li>
</ul></li>
<li><strong>HAL IRDA</strong> driver
<ul>
<li>Fix wrong cast when computing the USARTDIV value in IRDA_SetConfig()</li>
</ul></li>
<li><strong>HAL LPTIM</strong> driver
<ul>
<li>Enhance LPTIM state management</li>
<li>Fix IS_LPTIM_AUTORELOAD &amp; IS_LPTIM_PERIOD macros to check that AutoReload value must be strictly greater than 0</li>
</ul></li>
<li><strong>HAL RCC</strong> driver
<ul>
<li>Optimize HAL_RCC_OscConfig function when checking if oscillator is ready</li>
<li>Optimize HAL_RCC_GetOscConfig function</li>
<li>Remove GPIO configuration in HAL_RCCEx_EnableLSCO &amp; HAL_RCCEx_DisableLSCO functions</li>
</ul></li>
<li><strong>HAL RTC</strong> driver
<ul>
<li>Improve HAL_RTC_Init function to avoid initialization if already done</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> driver
<ul>
<li>Fix wrong cast when computing the USARTDIV value in SMARTCARD_SetConfig() function</li>
</ul></li>
<li><strong>HAL SUBGHZ</strong> driver
<ul>
<li>Clear the interrupt CR register just after having read it</li>
<li>Support new feature LoraFHSS (Lora Frequency Hopping Spread Spectrum)</li>
<li>Add new state HAL_SUBGHZ_STATE_RESET_RF_READY to avoid to reinitialize RF on existing from Standby mode</li>
</ul></li>
<li><strong>HAL TIM</strong> driver
<ul>
<li>Improve driver robustness against wrong period values</li>
<li>Improve driver robustness against wrong DMA related parameters</li>
<li>Add new __HAL_TIM_SELECT_CCDMAREQUEST() macro to select CCx DMA source</li>
</ul></li>
<li><strong>HAL UART</strong> driver
<ul>
<li>Fix wrong cast when computing the USARTDIV value in UART_SetConfig() function</li>
<li>Add HAL_UARTEx_GetRxEventType function to retrieve the type of event that has led the RxEventCallback execution</li>
<li>Remove HAL_LOCK/HAL_UNLOCK calls in HAL UART Tx and Rx APIs to fix a concurrent access issue</li>
<li>Disable the Receiver Timeout Interrupt when data reception is completed</li>
</ul></li>
</ul>
<p><br />
</p>
<h3 id="ll-drivers-updates"><strong>LL Drivers</strong> updates</h3>
<ul>
<li><strong>LL LPTIM</strong> driver
<ul>
<li>Enhance code quality by renaming all functions LL_LPTIM_ClearFLAG_Xxxxx with LL_LPTIM_ClearFlag_Xxxxx</li>
</ul></li>
<li><strong>LL System</strong> driver
<ul>
<li>Fix LL_SYSCFG_GetEXTISource function which returned wrong result on M4 core</li>
</ul></li>
<li><strong>LL USART</strong> driver
<ul>
<li>Fix compilation warnings generated with ARMV6 compiler</li>
</ul></li>
<li><strong>LL Utils</strong> driver
<ul>
<li>Fix a wrong parameter of __LL_RCC_CALC_MSI_FREQ given erroneous PLL frequency</li>
</ul></li>
</ul>
<p><br />
</p>
<h2 id="known-limitations">Known Limitations</h2>
<p>None</p>
<h2 id="development-toolchains-and-compilers">Development Toolchains and Compilers</h2>
<ul>
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V9.20.1 + <a href="./../../Utilities/PC_Software/EWARMv8_STM32WLxx_V4.9_Signed.zip">Patch EWARM</a></li>
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.36 + <a href="./../../Utilities/PC_Software/Keil.STM32WLxx_DFP.1.1.1.zip">Keil DFP V1.1.1 Pack</a></li>
<li>STM32CubeIDE 1.11.0 (GNU Tools for STM32 10.3-2021.10)</li>
</ul>
<h2 id="supported-devices-and-boards">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32WL55xx</li>
<li>STM32WL54xx</li>
<li>STM32WLE5xx</li>
<li>STM32WLE4xx</li>
<li>STM32WL5Mxx</li>
</ul>
<h2 id="backward-compatibility">Backward Compatibility</h2>
<p>Not applicable</p>
<h2 id="dependencies">Dependencies</h2>
<p>None</p>
<p><br />
</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section3" aria-hidden="true"> <label for="collapse-section3" aria-hidden="true"><strong>V1.2.0 / 4-February-2022</strong></label>
<div>
<h2 id="main-changes-1">Main Changes</h2>
<ul>
<li>Maintenance release of <strong>HAL and Low Layer</strong> drivers to include latest corrections</li>
<li>All source files: update disclaimer to add reference to the new license agreement</li>
<li>Correct English spelling errors and typos</li>
</ul>
<h2 id="contents-1">Contents</h2>
<h3 id="hal-drivers-updates-1"><strong>HAL Drivers</strong> updates</h3>
<ul>
<li><strong>HAL ADC</strong> driver
<ul>
<li>Enhance ADC calibration to reduce noise effect</li>
<li>Fix write access to registers ADC_CFGR1 and ADC_CFGR2 in HAL_ADC_Init() and HAL_ADC_AnalogWDGConfig() functions</li>
</ul></li>
<li><strong>HAL GPIO</strong> driver
<ul>
<li>Reorder EXTI config in HAL_GPIO_Init/HAL_GPIO_DeInit to avoid unexpected level detection</li>
<li>Add new HAL_GPIO_WriteMultipleStatePin() API for multiple pin access in same cycle</li>
</ul></li>
<li><strong>HAL I2C</strong> driver
<ul>
<li>Fix written reserved bit 28 in I2C_CR2 register</li>
<li>Improve I2C_WaitOnFlagUntilTimeout() description to match code</li>
<li>Update to handle errors in polling mode</li>
<li>Rename I2C_IsAcknowledgeFailed() to I2C_IsErrorOccurred() and correctly manage when error occurs</li>
<li>Fix some communication issue due to low system frequency execution (HSI)</li>
</ul></li>
<li><strong>HAL IRDA</strong> driver
<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>
</ul></li>
<li><strong>HAL LPTIM</strong> driver
<ul>
<li>Add check on PRIMASK register to prevent from enabling unwanted global interrupts within LPTIM_Disable() and LL_LPTIM_Disable()</li>
</ul></li>
<li><strong>HAL RCC</strong> driver
<ul>
<li>Enhance RCC_MCOx in order to support both MCO number and AF mapping</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> driver
<ul>
<li>Improve header description of SMARTCARD_WaitOnFlagUntilTimeout() function</li>
</ul></li>
<li><strong>HAL SMBUS</strong> driver
<ul>
<li>Add new APIs to support wake up capability:
<ul>
<li>HAL_SMBUSEx_EnableWakeUp()</li>
<li>HAL_SMBUSEx_DisableWakeUp()</li>
</ul></li>
<li>Update to fix issue of mismatched data received by master in case of data size to be transmitted by the slave is greater than the data size to be received by the master</li>
<li>Add flush on TX register</li>
</ul></li>
<li><strong>HAL TIM</strong> driver
<ul>
<li>Fix incorrect behavior of the timer if input signal changes before the end of timer configuration</li>
</ul></li>
<li><strong>HAL UART</strong> driver
<ul>
<li>Improve header description of UART_WaitOnFlagUntilTimeout() function</li>
<li>Add a check on the UART parity before enabling the parity error interruption</li>
</ul></li>
<li><strong>HAL USART</strong> driver
<ul>
<li>Improve header description of USART_WaitOnFlagUntilTimeout() function</li>
<li>Add a check on the USART parity before enabling the parity error interruption</li>
</ul></li>
</ul>
<p><br />
</p>
<h3 id="ll-drivers-updates-1"><strong>LL Drivers</strong> updates</h3>
<ul>
<li><strong>LL ADC</strong> driver
<ul>
<li>Fix MISRA warning register shift overflow</li>
</ul></li>
<li><strong>LL CORTEX</strong> driver
<ul>
<li>Rename LL_CPUID_GetConstant() to LL_CPUID_GetArchitecture()</li>
</ul></li>
<li><strong>LL CRC</strong> driver
<ul>
<li>Rectified <span class="citation" data-cites="brief">@brief</span> of LL_CRC_GetOutputDataReverseMode() API</li>
</ul></li>
<li><strong>LL LPUART</strong> driver
<ul>
<li>Remove all reference of TXFECF bit unavailable for LPUART</li>
</ul></li>
<li><strong>LL RCC</strong> driver
<ul>
<li>Add missing API: LL_RCC_PLL_IsEnabledDomain_ADC, LL_RCC_PLL_IsEnabledDomain_RNG, LL_RCC_PLL_IsEnabledDomain_I2S, LL_RCC_PLL_IsEnabledDomain_SYS</li>
<li>Add check of PLL enable bit when a peripheral using PPL P or PLL Q</li>
</ul></li>
<li><strong>LL RNG</strong> driver
<ul>
<li>Fix RNG_HTCFG constant for NIST compliance</li>
</ul></li>
<li><strong>Utils </strong> driver
<ul>
<li>Fix LL_PLL_ConfigSystemClock_HSE to take into account the setting of RCC_CR_HSEPRE when computing pllrfreq<br />
</li>
</ul></li>
</ul>
<h2 id="known-limitations-1">Known Limitations</h2>
<p>None</p>
<h2 id="development-toolchains-and-compilers-1">Development Toolchains and Compilers</h2>
<ul>
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1</li>
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31</li>
<li>STM32CubeIDE 1.9.0 (native GNU ARM 10.3-2021-10 or optional GNU ARM 9-2020-q2-update)</li>
</ul>
<h2 id="supported-devices-and-boards-1">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32WL55xx</li>
<li>STM32WL54xx</li>
<li>STM32WLE5xx</li>
<li>STM32WLE4xx</li>
</ul>
<h2 id="backward-compatibility-1">Backward Compatibility</h2>
<p>Not applicable</p>
<h2 id="dependencies-1">Dependencies</h2>
<p>None</p>
<p><br />
</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section2" aria-hidden="true"> <label for="collapse-section2" aria-hidden="true"><strong>V1.1.0 / 16-June-2021</strong></label>
<div>
<h2 id="main-changes-2">Main Changes</h2>
<ul>
<li>Maintenance release of <strong>HAL and Low Layer</strong> drivers to include latest corrections</li>
<li>Update of HAL SMBUS driver to introduce fast mode and fast mode plus
<ul>
<li>Add extension files stm32wlxx_hal_smbus_ex.h/.c for new APIs:
<ul>
<li><em>HAL_SMBUSEx_EnableFastModePlus()</em></li>
<li><em>HAL_SMBUSEx_DisableFastModePlus()</em></li>
</ul></li>
</ul></li>
</ul>
<h2 id="contents-2">Contents</h2>
<h3 id="hal-drivers-updates-2"><strong>HAL Drivers</strong> updates</h3>
<ul>
<li><strong>HAL ADC</strong> driver
<ul>
<li>Update CFGR2 oversampling bitfields conditionally to oversampling enable</li>
<li>Update timeout mechanism to avoid false timeout detection in case of preemption</li>
<li>Update wait_loop_index computation so delay in us is always multiplicated by at least value “1”</li>
</ul></li>
<li><strong>HAL COMP</strong> driver
<ul>
<li>Update wait_loop_index computation so delay in us is always multiplicated by at least value “1”</li>
</ul></li>
<li><strong>HAL CORTEX</strong> driver
<ul>
<li>Disable the smallest MPU region sizes (32B, 64B, 128B) in the M0+ context</li>
</ul></li>
<li><strong>HAL CRYP</strong> driver
<ul>
<li>Update HAL_CRYP_SetConfig() and HAL_CRYP_GetConfig() APIs to set/get the continent of KeyIVConfigSkip correctly</li>
<li>Resolve interrupt mode related GCM decryption issue causing wrong computation of decryption size</li>
<li>Update HAL_CRYP_InCpltCallback() API to fix an incorrect condition call at resumption time</li>
<li>Update CRYP_AESCCM_Process_IT() to fix incorrect CCM header length management when data are fed to the peripheral under interrupt</li>
</ul></li>
<li><strong>HAL EXTI</strong> driver
<ul>
<li>Update HAL_EXTI_GetConfigLine() to set default configuration value of Trigger and GPIOSel before checking each corresponding register</li>
</ul></li>
<li><strong>HAL GPIO</strong> driver
<ul>
<li>Update HAL_GPIO_Init() API to avoid the configuration of PUPDR register when Analog mode is selected</li>
</ul></li>
<li><strong>HAL HSEM</strong> driver
<ul>
<li>Update SemID comment related to the number of semaphores</li>
</ul></li>
<li><strong>HAL I2C</strong> driver
<ul>
<li>Updated I2C_IsAcknowledgeFailed() to avoid keeping I2C in busy state if NACK is received after transmitting register address</li>
</ul></li>
<li><strong>HAL IRDA</strong> driver
<ul>
<li>Fixed typos in the IRDA State definition description</li>
</ul></li>
<li><strong>HAL IWDG</strong> driver
<ul>
<li>Updated HAL_IWDG_Init() API in order to fix HAL_GetTick() timeout vulnerability issue</li>
</ul></li>
<li><strong>HAL LPTIM</strong> driver
<ul>
<li>Update HAL_LPTIM_Init() API implementation to configure digital filter for external clock when LPTIM is clocked by an internal clock source</li>
</ul></li>
<li><strong>HAL PWR</strong> driver
<ul>
<li>Correct HAL_PWREx_DisableInternalWakeUpLine() to update CM0+ register</li>
</ul></li>
<li><strong>HAL RCC</strong> driver
<ul>
<li>Update definition of IS_RCC_OSCILLATORTYPE() macro</li>
<li>Update IS_RCC_PERIPHCLOCK() macro definition depending on targeted derivative</li>
<li>Add new API HAL_RCC_GetResetSource() to get all reset sources and clear flags for next reset</li>
</ul></li>
<li><strong>HAL RNG</strong> driver
<ul>
<li>Update timeout mechanism to avoid false timeout detection in case of preemption</li>
</ul></li>
<li><strong>HAL RTC</strong> driver
<ul>
<li>Update HAL_RTC_DeactivateAlarm() to fix issue where Alarm Autoclear remained activated after deactivating alarm</li>
<li>Update HAL_RTCEx_SetTimeStamp_IT() to avoid the call of TimeStamp callback during the setting of the TimeStamp</li>
<li>Update assertions in HAL_RTC_SetAlarm() and HAL_RTC_SetAlarm_IT() to allow user to unset some Alarm parameters when AlarmMask is set</li>
<li>Update HAL_RTC_DeactivateAlarm() to clear Alarm Flag</li>
<li>Update HAL_RTCEx_DeactivateTimeStamp() to clear TimeStamp flag</li>
<li>Update HAL_RTCEx_DeactivateInternalTimeStamp() to clear Internal TimeStamp flag
<ul>
<li>The flag is cleared only if TSOVF &amp; TSE are set to 0</li>
</ul></li>
<li>Update HAL_RTCEx_DeactivateWakeUpTimer() to clear WakeUpTimer flag</li>
<li>Update HAL_RTCEx_DeactivateSSRU() to clear SSR Underflow flag</li>
<li>Update HAL_RTC_WaitForSynchro() to fix issue to clear RSF flag</li>
</ul></li>
<li><strong>HAL SMARTCARD</strong> driver
<ul>
<li>Fixed typos in the SMARTCARD State definition description</li>
</ul></li>
<li><strong>HAL SMBUS</strong> driver
<ul>
<li>Add support for Fast Mode Plus to be SMBUS Rev3 compliant:
<ul>
<li>Add HAL_SMBUSEx_EnableFastModePlus() and HAL_SMBUSEx_DisableFastModePlus() APIs to manage Fm+</li>
</ul></li>
</ul></li>
<li><strong>HAL SPI</strong> driver
<ul>
<li>Update in SPI_WaitFifoStateUntilTimeout() to fix code optimization issue</li>
<li>Update to fix MISRA-C 2012 Rule-13.2 issue</li>
</ul></li>
<li><strong>HAL SUBGHZ</strong> driver
<ul>
<li>Update HAL_Delay() by a polling loop to avoid blocking situation in case of Systick is mapped on Tick</li>
<li>Update HAL_SUBGHZ_DeInit() to check RF Busy bit and deassert the reset signal on RF side</li>
</ul></li>
<li><strong>HAL TIM</strong> driver
<ul>
<li>Update HAL_TIMEx_OnePulseN_Start and HAL_TIMEx_OnePulseN_Stop (pooling and IT mode) to take into consideration all OutputChannel parameters</li>
<li>Correct CodeSpell typos in HAL TIM drivers</li>
<li>Update timeout mechanism to avoid false timeout detection in case of preemption</li>
<li>Update input capture measurement in DMA mode to avoid zero return values at high frequencies</li>
</ul></li>
<li><strong>HAL UART</strong> driver
<ul>
<li>Remove an invalid FIFO mode configuration from UART_SetConfig() as it is not is not member of UART_InitTypeDef Structure</li>
<li>Update HAL_UART_IRQHandler() API to handle receiver timeout interrupt
<ul>
<li>Update UART receive processes (IT and DMA) to handle the UART receive’s timeout interrupt</li>
</ul></li>
<li>Update arrays definition to be declared as static const</li>
<li>Fix erroneous UART’s handle state in case of error returned after DMA reception start within UART_Start_Receive_DMA()</li>
<li>Update UART ReceptionType management in case of ReceptionToIdle API are called from RxEvent callback</li>
<li>Handling of UART concurrent register access in case of race condition between Tx and Rx transfers (HAL UART and LL LPUART)</li>
</ul></li>
</ul>
<p><br />
</p>
<h3 id="ll-drivers-updates-2"><strong>LL Drivers</strong> updates</h3>
<ul>
<li><strong>LL RCC</strong> driver
<ul>
<li>Private functions made static</li>
</ul></li>
<li><strong>LL RTC</strong> driver
<ul>
<li>Fix wrong reference of RTC instance in LL_RTC_TIME_Init() and LL_RTC_DATE_Init() functions</li>
</ul></li>
<li><strong>LL SPI</strong> driver
<ul>
<li>Updated to set the FRXTH bit for 8bit data in LL_SPI_Init() API</li>
<li>Update LL_SPI_TransmitData8() to avoid casting the result to 8 bits</li>
</ul></li>
<li><strong>LL TIM</strong> driver
<ul>
<li>Updated LL_TIM_GetCounterMode() API to return the correct counter mode</li>
<li>Update reversed description of TIM_LL_EC_ONEPULSEMODE One Pulse Mode</li>
</ul></li>
<li><strong>LL LPUART</strong> driver
<ul>
<li>Handling of UART concurrent register access in case of race condition between Tx and Rx transfers (HAL UART and LL LPUART)</li>
</ul></li>
<li><strong>LL USART</strong> driver
<ul>
<li>Handling of UART concurrent register access in case of race condition between Tx and Rx transfers (HAL UART and LL LPUART)</li>
<li>LL_USART_ClockInit now supports clock phase and clock polarity configuration for SPI_Slave mode</li>
<li>Remove useless check on maximum BRR value by removing IS_LL_USART_BRR_MAX() macro</li>
</ul></li>
</ul>
<p><br />
</p>
<h2 id="known-limitations-2">Known Limitations</h2>
<p>None</p>
<h2 id="development-toolchains-and-compilers-2">Development Toolchains and Compilers</h2>
<ul>
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1</li>
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.31</li>
<li>STM32CubeIDE 1.7.0</li>
</ul>
<h2 id="supported-devices-and-boards-2">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32WL55xx</li>
<li>STM32WL54xx</li>
<li>STM32WLE5xx</li>
<li>STM32WLE4xx</li>
</ul>
<h2 id="backward-compatibility-2">Backward Compatibility</h2>
<p>Not applicable</p>
<h2 id="dependencies-2">Dependencies</h2>
<p>None</p>
<p><br />
</p>
</div>
</div>
<div class="collapse">
<input type="checkbox" id="collapse-section1" aria-hidden="true"> <label for="collapse-section1" aria-hidden="true"><strong>V1.0.0 / 28-October-2020</strong></label>
<div>
<h2 id="main-changes-3">Main Changes</h2>
<p><strong>First Official Release</strong></p>
<h2 id="contents-3">Contents</h2>
<p>First official release of LL / HAL Drivers for STM32WLxx series.</p>
<h2 id="known-limitations-3">Known Limitations</h2>
<p>None</p>
<h2 id="development-toolchains-and-compilers-3">Development Toolchains and Compilers</h2>
<ul>
<li>IAR Embedded Workbench for ARM (EWARM) toolchain V8.30.1</li>
<li>RealView Microcontroller Development Kit (MDK-ARM) toolchain V5.28</li>
<li>STM32CubeIDE 1.5.0</li>
</ul>
<h2 id="supported-devices-and-boards-3">Supported Devices and boards</h2>
<p>Supported Devices:</p>
<ul>
<li>STM32WL55xx</li>
<li>STM32WL54xx</li>
<li>STM32WLE5xx</li>
<li>STM32WLE4xx</li>
</ul>
<h2 id="backward-compatibility-3">Backward Compatibility</h2>
<p>Not applicable</p>
<h2 id="dependencies-3">Dependencies</h2>
<p>None</p>
<p><br />
</p>
</div>
</div>
</div>
</div>
<footer class="sticky">
<div class="columns">
<div class="column" style="width:95%;">
<p>For complete documentation on STM32WLxx, visit: <a href="http://www.st.com/stm32wl">www.st.com/stm32wl</a></p>
<p><em>This release note uses up to date web standards and, for this reason, should not be opened with Internet Explorer but preferably with popular browsers such as Google Chrome, Mozilla Firefox, Opera or Microsoft Edge.</em></p>
</div><div class="column" style="width:5%;">
<p><abbr title="Based on template cx626901 version 2.0">Info</abbr></p>
</div>
</div>
</footer>
</body>
</html>