Back to Release page

# Release Notes for STM32F7xx HAL Drivers
Author: MCD Application Team

Copyright 2015 STMicroelectronics

## Update History

### V1.0.4 / 09-December-2015

Main Changes

- HAL Generic update

- Update HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers by calling the following line:

- UNUSED(hppp);

- HAL ETH update

- Update HAL_ETH_Init() function to add timeout on the Software reset management

### V1.0.3 / 13-November-2015

Main Changes

- General updates to fix known defects and enhancements implementation
- One change done on the HAL CRYP requires an update on the application code based on HAL V1.0.2

- Update HAL_CRYP_DESECB_Decrypt() API to invert pPlainData and pCypherData parameters

- HAL Generic update

- Update HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers by calling the following line:

- UNUSED(hppp);

- Remove references to STM32CubeMX and MicroXplorer from stm32f7xx_hal_msp_template.c file

- HAL ADC update

- Replace ADC_CHANNEL_TEMPSENSOR definition from ADC_CHANNEL_16 to ADC_CHANNEL_18
- Update HAL ADC driver state machine for code efficiency
- Add new literal: ADC_INJECTED_SOFTWARE_START to be used as possible value for the ExternalTrigInjecConvEdge parameter in the ADC_InitTypeDef structure to select the ADC software trigger mode.

- HAL CORTEX update

- Remove duplication for __HAL_CORTEX_SYSTICKCLK_CONFIG() macro

- HAL CRYP update

- Update HAL_CRYP_DESECB_Decrypt() API to fix the inverted pPlainData and pCypherData parameters issue

- HAL FLASH update

- Update OB_IWDG_STOP_ACTIVE definition
- Update OB_RDP_LEVEL_x definition by proper values
- Update FLASH_MassErase() function to consider the voltage range parameter in the mass erase configuration

- HAL RCC update

- update values for LSE Drive capability defines
- update PLLN min value 50 instead of 100
- add RCC_PLLI2SP_DIVx defines for PLLI2SP clock divider
- Update __HAL_RCC_USB_OTG_FS_CLK_DISABLE() macro to remove the disable of the SYSCFG
- Update HAL_RCCEx_GetPeriphCLKFreq() function for proper SAI clock configuration

- HAL SAI update

- update for proper management of the external synchronization input selection

- update of HAL_SAI_Init () funciton
- update definition of SAI_Block_SyncExt and SAI_Block_Synchronization groups

- update SAI_SLOTACTIVE_X defines values
- update HAL_SAI_Init() function for proper companding mode management
- update SAI_Transmit_ITxxBit() functions to add the check on transfer counter before writing new data to SAIx_DR registers
- update SAI_FillFifo() function to avoid issue when the number of data to transmit is smaller than the FIFO size
- update HAL_SAI_EnableRxMuteMode() function for proper mute management
- update SAI_InitPCM() function to support 24bits configuration

- HAL SD update

- update HAL_SD_Get_CardInfo() to properly support high capacity cards

- HAL SPDIFRX update

- update SPDIFRX_DMARxCplt() function implementation to check on circular mode before disabling the DMA

- HAL TIM update

- Update HAL_TIM_ConfigClockSource() function implementation for proper parameters check

- HAL UART update

- Update __HAL_UART_CLEAR_IT macro for proper functionning

- ll FMC update

- add FMC_PAGE_SIZE_512 define

- ll SDMMC update

- update SDMMC_SetSDMMCReadWaitMode() function for proper functionning

### V1.0.2 / 21-September-2015

Main Changes

- HAL Generic update

- stm32f7xx_hal.conf_template.h: update HSE_STARTUP_TIMEOUT
- stm32f7xx_hal_def.h: update the quotation marks used in #error"USE_RTOS should be 0 in the current HAL release"

- HAL DMA update

- Overall driver update for code optimization

- add StreamBaseAddress and StreamIndex new fields in the DMA_HandleTypeDef structure
- add DMA_Base_Registers private structure
- add static function DMA_CalcBaseAndBitshift()
- update HAL_DMA_Init() function to use the new added static function
- update HAL_DMA_DeInit() function to optimize clear flag operations
- update HAL_DMA_Start_IT() function to optimize interrupts enable
- update HAL_DMA_PollForTransfer() function to optimize check on flags
- update HAL_DMA_IRQHandler() function to optimize interrupt flag management

- HAL ETH update

- remove duplicated macro IS_ETH_RX_MODE()

- HAL GPIO update

- Rename GPIO_SPEED_LOW define to GPIO_SPEED_FREQ_LOW
- Rename GPIO_SPEED_MEDIUM define to GPIO_SPEED_FREQ_MEDIUM
- Rename GPIO_SPEED_FAST define to GPIO_SPEED_FREQ_HIGH
- Rename GPIO_SPEED_HIGH define to GPIO_SPEED_FREQ_VERY_HIGH

- HAL HASH update

- Rename HAL_HASH_STATETypeDef to HAL_HASH_StateTypeDef
- Rename HAL_HASH_PhaseTypeDef to HAL_HASHPhaseTypeDef

- HAL RCC update

- update values for LSE Drive capability defines
- update PLLN/PLLI2SN/PLLSAI VCO min value 100MHz instead of 192MHz
- add __HAL_RCC_MCO1_CONFIG() and __HAL_RCC_MCO2_CONFIG() macros

- update HAL_RCCEx_PeriphCLKConfig() function to reset the Backup domain only if the RTC Clock source selection is modified

- HAL TIM update

- update the implementation of __HAL_TIM_SET_COMPARE() macro
- remove useless assert() in HAL_TIM_PWM_ConfigChannel(), TIM_OC2_SetConfig() and HAL_TIM_PWM_ConfigChannel() functions

- HAL CAN update

- add the clear flag ERRI bit in HAL_CAN_IRQHandler()

- HAL I2S update

- update I2S HAL_I2S_Transmit() API to keep the check on busy flag only for the slave

- HAL QSPI update

- Add __HAL_QSPI_CLEAR_FLAG() before QSPI_Config()

- HAL UART update

- Remove enabling of ERR IT source and PE source from HAL_UART_Transmit_IT() and remove the corresponding disabling ERR/PE IT from UART_EndTransmit_IT()

- HAL PCD update

- Clean status phase received interrupt when DMA mode enabled

- HAL HCD update

- Update to use local variable in USB Host channel re-activation

- ll FMC update

- update the define FMC Write FIFO Disable/Enable: FMC_WRITE_FIFO_DISABLE and FMC_WRITE_FIFO_ENABLE
- remove return HAL_ERROR from FMC_SDRAM_SendCommand() function

### V1.0.1 / 25-June-2015

Main Changes

- General updates to fix known defects and enhancements implementation
- HAL CRC update

- update __HAL_CRC_SET_IDR() macro implementation to use WRITE_REG() instead of MODIFY_REG()

- HAL CEC update

- update timeout management in HAL_CEC_Transmit() and HAL_CEC_Receive() functions

- HAL Cortex update

- update HAL_MPU_ConfigRegion() function to be misra compliant

- HAL ETH update

- Remove duplicated IS_ETH_DUPLEX_MODE() and IS_ETH_RX_MODE() macros
- Remove illegal space ETH_MAC_READCONTROLLER_FLUSHING macro
- Update ETH_MAC_READCONTROLLER_XXX defined values (XXX can be IDLE, READING_DATA and READING_STATUS)

- HAL FLASH update

- update FLASH_OB_GetRDP() function to return uint8_t instead of FlagStatus
- update OB_RDP_LEVELx definition
- add __HAL_FLASH_GET_LATENCY() macro

- HAL HASH update

- update HASH_DMAXferCplt() and HASHEx_DMAXferCplt() functions to properly configure the number of valid bits in last word of the message
- update HAL_HASH_SHA1_Accumulate() function to check on the length of the input buffer
- update HAL_HASH_MODE_Start_IT() functions (Mode stands for MD5, SHA1, SHA224 and SHA256 ) to :

- Fix processing fail for small input buffers
- to unlock the process and call return HAL_OK at the end of HASH processing to avoid incorrect repeating software
- properly to manage the HashITCounter efficiency
- Update to call the HAL_HASH_InCpltCallback() at the end of the complete buffer instead of every each 512 bits

- update HASH_IT_DINI and HASH_IT_DCI definition
- update __HAL_HASH_GET_FLAG() macro definition

- HAL I2S update

- update HAL_I2S_Transmit() function to ensure the waiting on Busy flag in case of slave mode selection

- HAL RTC update

- update HAL_RTCEx_SetWakeUpTimer() and HAL_RTCEx_SetWakeUpTimer_IT() functions to properly check on WUTWF flag
- rename RTC_TIMESTAMPPIN_PI8 define to RTC_TIMESTAMPPIN_POS1
- rename RTC_TIMESTAMPPIN_PC1 define to RTC_TIMESTAMPPIN_POS2
- update __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG() macro definition
- update __HAL_RTC_TAMPER_GET_IT() macro definition
- update __HAL_RTC_TAMPER_CLEAR_FLAG() macro definition
- update __HAL_RTC_TIMESTAMP_CLEAR_FLAG() macro definition
- update __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG() macro definition
- add RTC_TAMPCR_TAMPXE and RTC_TAMPCR_TAMPXIE defines

- HAL SMARTCARD update

- add SMARTCARD_FLAG_IDLE, SMARTCARD_IT_IDLE and SMARTCARD_CLEAR_IDLEF defines

- HAL UART update

- update HAL_UART_DMAResume() function to clear overrun flag before resuming the Rx transfer
- update UART_FLAG_SBKF definition

- HAL USART update

- update HAL_USART_DMAResume() function to clear overrun flag before resuming the Rx transfer

- LL FMC update

- update NAND timing maximum values

- LL USB update

- USB_FlushTxFifo API: update to flush all Tx FIFO
- Update to use local variable in USB Host channel re-activation

### V1.0.0 / 12-May-2015

Main Changes

- First official release for STM32F756xx/746xx/745xx devices

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