Back to Release page

# Release Notes for STM32L0xx HAL Drivers

Copyright 2014 STMicroelectronics

## Update History

### V1.1.0 / 18-June-2014

Main Changes

- HAL generic update

- Fix flag clear procedure: use atomic write operation "=" instead of ready-modify-write operation "|=" or "&="
- Fix on Timeout management, Timeout value set to 0 passed to API automatically exits the function after checking the flag without any wait
- Common update for the following communication peripherals: SPI, UART, USART and IRDA

- Add DMA circular mode support

- Remove lock from recursive process

- Add new macro __HAL_RESET_HANDLE_STATE to reset a given handle state

- When USE_RTOS == 1 (in stm32l0xx_hal_conf.h), the __HAL_LOCK() is not defined instead of being defined empty
- Use “__IO const” instead of “__I”, to avoid any compilation issue when __cplusplus switch is defined
- Add new functions for the DBGMCU module

- HAL_EnableDBGSleepMode()
- HAL_DisableDBGSleepMode()
- HAL_EnableDBGStopMode()
- HAL_DisableDBGStopMode()
- HAL_EnableDBGStandbyMode()
- HAL_DisableDBGStandbyMode()

- Miscellaneous comments update

- HAL FLASH update

  - Add new functions: HAL_FLASHEx_OB_SelectPCROP() and HAL_FLASHEx_OB_DeSelectPCROP()
  - Some functions was renamed and moved to the extension files (stm32l0xx_hal_flash_ex.h/.c)
  - Rename FLASH_HalfPageProgram() into HAL_FLASHEx_HalfPageProgram()
  - Rename FLASH_EnableRunPowerDown() into HAL_FLASHEx_EnableRunPowerDown()
  - Rename FLASH_DisableRunPowerDown() into HAL_FLASHEx_DisableRunPowerDown()
  - Rename all HAL_DATA_EEPROMEx_xxx() functions into HAL_FLASHEx_DATAEEPROM_xxx()
  - Note: aliases has been added to keep compatibility with previous version
- HAL GPIO update

- Remove IS_GET_GPIO_PIN macro
- Add a new function HAL_GPIO_LockPin()
- Private Macro __HAL_GET_GPIO_SOURCE renamed into GET_GPIO_SOURCE

- HAL DMA update

- Fix in HAL_DMA_PollForTransfer() to set error code HAL_DMA_ERROR_TE in case of HAL_ERROR status

- HAL PWR update

- HAL_PWR_PVDConfig(): add clear of the EXTI trigger before new configuration
- Fix in HAL_PWR_EnterSTANDBYMode() to not clear Wakeup flag (WUF), which need to be cleared at application level before to call this function

- HAL RCC update

- Allow to calibrate the HSI when it is used as system clock source
- Fix implementation of IS_RCC_OSCILLATORTYPE() macro

- HAL ADC update

- Update ADC internal channels mapping: TEMPSENSOR connected to ADC_CHANNEL_18 and VLCD mapped to ADC_CHANNEL_16
- Skip polling for ADRDY flag when Low Power Auto Off mode is enabled

- HAL COMP update

  - Add LPTIMConnection field in the COMP_InitTypeDef structure.
  - Add new defines: COMP_LPTIMCONNECTION_DISABLED, COMP_LPTIMCONNECTION_ENABLED
  - Add new macro IS_COMP_LPTIMCONNECTION

- HAL LPTIM update

- Add CKPOL configuration for encoder mode

- HAL WWDG update

- Miscellaneous minor update on the source code

- HAL IWDG update

- Miscellaneous minor update on the source code

- HAL CRC update

  - Some functions was renamed and moved to the extension files (stm32l0xx_hal_crc_ex.h/.c)
  - HAL_CRC_Input_Data_Reverse() renamed into HAL_CRCEx_Input_Data_Reverse()
  - HAL_CRC_Output_Data_Reverse() renamed into HAL_CRCEx_Output_Data_Reverse()
  - Note: aliases has been added to keep compatibility with previous version

- HAL CRYP update

  - HAL_CRYP_ComputationCpltCallback() renamed into HAL_CRYPEx_ComputationCpltCallback() and moved to the extension files (stm32l0xx_hal_cryp_ex.h/.c)
  - Note: alias has been added to keep compatibility with previous version

- HAL I2C update

- 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.

- HAL SMBUS update

- Add a new function: HAL_SMBUS_DisableListen_IT()
- Add aliases for the following functions

- #define HAL_SMBUS_Slave_Listen_IT HAL_SMBUS_EnableListen_IT
- #define HAL_SMBUS_SlaveAddrCallback HAL_SMBUS_AddrCallback
- #define HAL_SMBUS_SlaveListenCpltCallback HAL_SMBUS_ListenCpltCallback

- Add alias HAL_SMBUS_STATE_SLAVE_LISTEN for the constant HAL_SMBUS_STATE_LISTEN

- HAL UART update

  - HAL_UART_WakeupCallback() renamed into HAL_UART_WakeupCallback() and moved to the extension files (stm32l0xx_hal_cryp_ex.h/.c)
  - Add new macros to control CTS and RTS
  - Add specific macros to manage the flags cleared only by a software sequence
  - __HAL_UART_CLEAR_PEFLAG()
  - __HAL_UART_CLEAR_FEFLAG()
  - __HAL_UART_CLEAR_NEFLAG()
  - __HAL_UART_CLEAR_OREFLAG()
  - __HAL_UART_CLEAR_IDLEFLAG()
  - Add several enhancements without affecting the driver functionalities
  - Remove the check on RXNE set after reading the Data in the DR register
  - Update the transmit processes to use TXE instead of TC
  - Update HAL_UART_Transmit_IT() to enable UART_IT_TXE instead of UART_IT_TC

- HAL USART update

- Add specific macros to manage the flags cleared only by a software sequence

- __HAL_USART_CLEAR_PEFLAG()

- __HAL_USART_CLEAR_FEFLAG()

- __HAL_USART_CLEAR_NEFLAG()

- __HAL_USART_CLEAR_OREFLAG()

- __HAL_USART_CLEAR_IDLEFLAG()

- Update HAL_USART_Transmit_IT() to enable USART_IT_TXE instead of USART_IT_TC

- HAL IRDA update

  - Add specific macros to manage the flags cleared only by a software sequence
  - __HAL_IRDA_CLEAR_PEFLAG()
  - __HAL_ IRDA _CLEAR_FEFLAG()
  - __HAL_ IRDA _CLEAR_NEFLAG()
  - __HAL_ IRDA _CLEAR_OREFLAG()
  - __HAL_ IRDA _CLEAR_IDLEFLAG()
  - Add several enhancements without affecting the driver functionalities
  - Remove the check on RXNE set after reading the Data in the DR register
  - Update HAL_IRDA_Transmit_IT() to enable IRDA_IT_TXE instead of IRDA_IT_TC
  - Add the following APIs used within DMA process
  - HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
  - HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
  - HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);
  - void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
  - void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);

- HAL SMARTCARD update

- Add specific macros to manage the flags cleared only by a software sequence

- __HAL_SMARTCARD_CLEAR_PEFLAG()

- __HAL_SMARTCARD_CLEAR_FEFLAG()

- __HAL_SMARTCARD_CLEAR_NEFLAG()

- __HAL_SMARTCARD_CLEAR_OREFLAG()

- __HAL_SMARTCARD_CLEAR_IDLEFLAG()

- Add several enhancements without affecting the driver functionalities

- Add a new state HAL_SMARTCARD_STATE_BUSY_TX_RX and all processes has been updated accordingly

- Update HAL_SMARTCARD_Transmit_IT() to enable SMARTCARD_IT_TXE instead of SMARTCARD_IT_TC

- HAL SPI update

- Bugs fix

- 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
- HAL_SPI_TransmitReceive_DMA() does not clean up the TX DMA, so any subsequent SPI calls return the DMA error
- HAL_SPI_Transmit_DMA() is failing when data size is equal to 1 byte

- Add the following APIs used within the DMA process

- HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);

- HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);

- HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);

- void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);

- void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);

- void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);

- HAL TSC update

- Fix value of the constant TSC_ACQ_MODE_SYNCHRO

- HAL PCD update

- Add new macro __HAL_USB_EXTI_GENERATE_SWIT()

### V1.0.0 / 22-April-2014

Main Changes

First official release.

## License

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of STMicroelectronics nor the names of its contributors may be used to endorse or promote products derived

from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

For complete documentation on STM32 Microcontrollers visit www.st.com/STM32