+
+ Update
+
+
+
+ History
+ V1.7.13
+ / 16-July-2021
+
+ Main
+
+
+
+
+ Changes
+
+
+
+ -
+
HAL
+ updates
+
+
+
+
+ - HAL EXTI
+ update
+
+ - Update
+ HAL_EXTI_GetConfigLine()
+ API to set default
+ configuration value of
+ Trigger and GPIOSel
+ before checking each
+ corresponding registers.
+
+
+
+
+ - HAL GPIO
+ update
+
+ - Update
+ HAL_GPIO_Init() API to
+ avoid the configuration
+ of PUPDR register when
+ Analog mode is selected.
+
+
+
+
+ - HAL DMA
+ update
+
+ - Update
+ HAL_DMA_IRQHandler() API
+ to set the DMA state
+ before unlocking access
+ to the DMA handle.
+
+
+
+
+ - HAL/LL ADC
+ update
+
+ - Update
+ LL_ADC_DeInit() API to
+ clear missing SQR3
+ register.
+ - Update
+ LL_ADC_DMA_GetRegAddr()
+ API to prevent unused
+ argument compilation
+ warning.
+ - Update HAL
+ timeout mechanism to
+ avoid false timeout
+ detection in case of
+ preemption.
+
+
+
+
+ - HAL CAN
+ update
+
+ - Update
+ HAL_CAN_Init() API to be
+ aligned with referance
+ manual and to avoid
+ timeout error:
+
+
+
+
+ - HAL/LL
+ RTC_BKP update
+
+ - Update
+ __HAL_RTC_(__HANDLE__,
+ ) macros to access
+ registers through
+ (__HANDLE__)->Instance
+ pointer and avoid
+ unused variable
+ warnings.
+ - Correct month
+ management in
+ IS_LL_RTC_MONTH() macro.
+
+
+
+
+ - HAL RNG
+ update
+
+ - Update timeout
+ mechanism to avoid false
+ timeout detection in
+ case of preemption.
+
+
+
+
+ - HAL QSPI
+ update
+
+ - ES0305
+ workaround disabled for
+ STM32412xx devices.
+
+
+
+
+ - HAL I2C
+ update
+
+ - Update
+ HAL_I2C_Mem_Write_DMA()
+ and
+ HAL_I2C_Mem_Read_DMA()
+ APIs to initialize
+ Devaddress, Memaddress
+ and EventCount
+ parameters.
+ - Update to
+ prevent several calls of
+ Start bit:
+
+ - Update
+ I2C_MemoryTransmit_TXE_BTF()
+ API to increment
+ EventCount.
+
+
+ - Update to
+ avoid I2C interrupt in
+ endless loop:
+
+ - 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.
+
+
+ - Update to use
+ the right macro to clear
+ I2C ADDR flag inside
+ I2C_Slave_ADDR() API as
+ its indicated in the
+ reference manual.
+ - Update
+ I2C_IsAcknowledgeFailed()
+ API to avoid I2C in busy
+ state if NACK received
+ after transmitting
+ register address.
+ - Update
+ HAL_I2C_EV_IRQHandler()
+ and
+ I2C_MasterTransmit_BTF()
+ APIs to correctly manage
+ memory transfers:
+
+ - Add check
+ on memory mode
+ before calling
+ callbacks
+ procedures.
+
+
+
+
+
+
+ - LL USART
+ update
+
+ - Handling of
+ UART concurrent register
+ access in case of race
+ condition between Tx and
+ Rx transfers (HAL UART
+ and LL LPUART)
+
+
+
+
+ - HAL SMBUS
+ update
+
+ - Updated
+ HAL_SMBUS_ER_IRQHandler()
+ API to return the
+ correct error code
+ SMBUS_FLAG_PECERR in
+ case of packet error
+ occurs.
+
+
+
+
+ - HAL/LL SPI
+ update
+
+ - Updated to fix
+ MISRA-C 2012 Rule-13.2.
+ - Update
+ LL_SPI_TransmitData8()
+ API to avoid casting the
+ result to 8 bits.
+
+
+
+
+ - HAL UART
+ update
+
+ - Fix wrong
+ comment related to RX
+ pin configuration within
+ the description section
+ - Correction on
+ UART ReceptionType
+ management in case of
+ ReceptionToIdle API are
+ called from RxEvent
+ callback
+ - Handling of
+ UART concurrent register
+ access in case of race
+ condition between Tx and
+ Rx transfers (HAL UART
+ and LL LPUART)
+
+ - Update CAN
+ Initialization
+ sequence to set
+ "request
+ initialization" bit
+ before exit from
+ sleep mode.
+
+
+
+
+
+
+ - HAL USB
+ update
+
+
+ - HAL PCD: add
+ fix transfer complete
+ for IN Interrupt
+ transaction in single
+ buffer mode
+
+ - Race condition
+ in USB PCD control
+ endpoint receive ISR.
+
+
+
+
+
+ V1.7.12
+ / 26-March-2021
+ Main
+
+
+
+
+ Changes
+
+ - HAL
+
+ - HAL/LL
+ USART update
+
+ - Fix typo in
+ USART_Receive_IT() and
+ USART_TransmitReceive_IT()
+ APIs to avoid possible
+ compilation issues if the
+ UART driver files are not
+ included.
+
+
+
+ V1.7.11
+ / 12-February-2021
+ Main
+
+
+
+
+ Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - Added
+
+
+
+ new HAL
+
+
+
+ FMPSMBUS extended driver
+
+
+
+
+ to support FMPSMBUS fast Mode
+ Plus.
+ - Removed
+
+
+
+ register keyword to be
+ compliant with new C++ rules:
+
+ - The register
+ storage class specifier was
+ deprecated in C++11 and
+ removed in C++17.
+
+ - HAL
+
+ - HAL update
+ - General
+ updates to fix known defects
+ and enhancements
+ implementation.
+ - Added new
+ defines for ARM compiler V6:
+
+ - __weak
+ - __packed
+ - __NOINLINE
+
+ - Updated HAL TimeBase
+ TIM, RTC alarm and RTC WakeUp
+ templates for more robustness
+
+ - Updated Hal_Init_Tick()
+ API to propoerty
+ store the priority when
+ using the non-default time
+ base.
+
+ - Updated
+ PPP_MODULE_ENABLED for
+ FMPSMBUS.
+ - HAL/LL ADC update
+
+ - Updated to
+ add include of the LL ADC
+ driver.
+ - Updated the
+ following APIs to set status
+ HAL_ADC_STATE_ERROR_INTERNAL
+ and error code
+ HAL_ADC_ERROR_INTERNAL when
+ error occurs:
+
+ - HAL_ADC_Start()
+ - HAL_ADC_Start_IT()
+ - HAL_ADC_Start_DMA()
+ - HAL_ADCEx_InjectedStart()
+ - HAL_ADCEx_InjectedStart_IT()
+ - HAL_ADCEx_MultiModeStart_DMA()
+
+ - Updated HAL_ADC_Stop_DMA()
+ API to check if DMA state is
+ Busy before calling HAL_DMA_Abort()
+
+
+
+
+ API to avoid DMA internal
+ error.
+ - Updated
+ IS_ADC_CHANNEL to support
+ temperature sensor for:
+
+ - STM32F411xE
+ - STM32F413xx
+ - STM32F423xx
+
+ - Fixed wrong
+ defined values for:
+
+ - LL_ADC_MULTI_REG_DMA_LIMIT_3
+ - LL_ADC_MULTI_REG_DMA_UNLMT_3
+
+ - Added
+ __LL_ADC_CALC_VREFANALOG_VOLTAGE()
+ macro to evaluate analog
+ reference voltage.
+ - Removed
+ __LL_ADC_CALC_TEMPERATURE()
+ macro for STM32F4x9 devices
+ as the TS_CAL2 is not
+ available.
+
+ - HAL/LL DAC update
+
+ - Added restruction
+ on DAC Channel 2 defines and
+ parametres.
+ - HAL_DAC_MSPINIT_CB_ID
+
+
+
+
+ and HAL_DAC_MSPDEINIT_CB_ID
+ used instead of
+ HAL_DAC_MSP_INIT_CB_ID and
+ HAL_DAC_MSP_DEINIT_CB_ID.
+ - Updated to
+ support dual mode:
+
+ - Added two
+ new APIs:
+
+ - HAL_DACEx_DualStart()
+ - HAL_DACEx_DualStop()
+
+
+ - Added
+ position bit definition to
+ be used instead of
+ __DAC_MASK_SHIFT macro
+
+ - __DAC_MASK_SHIFT
+
+
+
+ macro has been removed.
+
+ - Updated HAL_DAC_Start_DMA()
+ API to return HAL_ERROR when
+ error occurs.
+ - Updated HAL_DAC_Stop_DMA()
+ API to not return HAL_ERROR
+ when DAC is already
+ disabled.
+
+ - HAL CEC update
+
+ - Updated HAL_CEC_IRQHandler()
+ API to avoid appending an
+ extra byte to the end of a
+ message.
+
+ - HAL/LL GPIO update
+
+ - Updated
+ IS_GPIO_AF() to
+ add missing values for
+ STM32F401xC and STM32F401xE
+ devices:
+
+ - GPIO_AF3_TIM9
+ - GPIO_AF3_TIM10
+ - GPIO_AF3_TIM11
+
+ - Updated
+ LL/HAL GPIO_TogglePin()
+ APIs to allow multi Pins
+ toggling.
+ - Updated HAL_GPIO_Init()
+ API to avoid the
+ configuration of PUPDR
+ register when Analog mode is
+ selected.
+
+ - HAL/LL RCC update
+
+ - Updated HAL_RCC_OscConfig()
+ API to add missing checks
+ and to dont return
+ HAL_ERROR if request repeats
+ the current PLL
+ configuration.
+ - Updated
+ IS_RCC_PLLN_VALUE(VALUE)
+ macro in case of STM32F411xE
+ device in order to
+ be aligned with reference
+ manual.
+
+ - HAL SD update
+
+ - Update
+ function SD_FindSCR()
+ to resolve issue of FIFO
+ blocking when reading.
+ - Update
+ read/write functions in DMA
+ mode in
+
+
+
+ order to
+ force the DMA direction,
+ updated functions:
+
+ - HAL_SD_ReadBlocks_DMA()
+ - HAL_SD_WriteBlocks_DMA()
+
+ - Add the
+ block size settings in the
+ initialization functions and
+ remove it from read/write
+ transactions to avoid
+ repeated and inefficient
+ reconfiguration, updated
+ functions:
+
+ - HAL_SD_InitCard()
+ - HAL_SD_GetCardStatus()
+ - HAL_SD_ConfigWideBusOperation()
+ - HAL_SD_ReadBlocks()
+ - HAL_SD_WriteBlocks()
+ - HAL_SD_ReadBlocks_IT()
+ - HAL_SD_WriteBlocks_IT()
+ - HAL_SD_ReadBlocks_DMA()
+ - HAL_SD_WriteBlocks_DMA()
+
+
+ - HAL MMC update
+
+ - Add the
+ block size settings in the
+ initialization function and
+ remove it from read/write
+ transactions to avoid
+ repeated and inefficient
+ reconfiguration, updated
+ functions:
+
+ - HAL_MMC_InitCard()
+ - HAL_MMC_ReadBlocks()
+ - HAL_MMC_WriteBlocks()
+ - HAL_MMC_ReadBlocks_IT()
+ - HAL_MMC_WriteBlocks_IT()
+ - HAL_MMC_ReadBlocks_DMA()
+ - HAL_MMC_WriteBlocks_DMA()
+
+ - Update
+ read/write functions in DMA
+ mode in
+
+
+
+ order to
+ force the DMA direction,
+ updated functions:
+
+ - HAL_MMC_ReadBlocks_DMA()
+ - HAL_MMC_WriteBlocks_DMA()
+
+ - 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.
+
+ - HAL NAND
+ update
+
+ - Update
+ functions
+ HAL_NAND_Read_SpareArea_16b()
+ and
+ HAL_NAND_Write_SpareArea_16b()
+ to fix column address
+ calculation issue.
+
+ - LL SDMMC
+ update
+
+ - Update the
+ definition of
+ SDMMC_DATATIMEOUT constant in
+
+
+
+ order to
+ allow the user to redefine
+ it in his proper
+ application.
+ - Remove
+ 'register' storage class
+ specifier from LL SDMMC
+ driver.
+ - 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.
+
+ - HAL SMBUS update
+
+ - Support for
+ Fast Mode Plus to be SMBUS
+ rev 3 compliant.
+ - Added HAL_FMPSMBUSEx_EnableFastModePlus()
+ and HAL_FMPSMBUSEx_DisableFastModePlus()
+
+
+
+
+ APIs to manage Fm+.
+ - Updated SMBUS_MasterTransmit_BTF()
+ , SMBUS_MasterTransmit_TXE()
+
+
+
+
+ and SMBUS_MasterReceive_BTF()
+
+
+
+
+ APIs to allow stop
+ generation when CurrentXferOptions
+ is different from
+ SMBUS_FIRST_FRAME and
+ SMBUS_NEXT_FRAME.
+ - Updated SMBUS_ITError()
+ API to correct the twice
+ call of HAL_SMBUS_ErrorCallback.
+
+ - HAL SPI update
+
+ - Updated HAL_SPI_Init()
+ API
+
+ - To avoid
+ setting the BaudRatePrescaler
+ in case of Slave Motorola
+ Mode.
+ - Use the bit-mask
+ for SPI configuration.
+
+ - Updated
+ Transmit/Receive processes
+ in half-duplex mode
+
+ - Disable
+ the SPI instance before
+ setting BDIOE bit.
+
+ - Fixed wrong
+ timeout management
+ - Calculate
+ Timeout based on a software
+ loop to avoid blocking issue
+ if Systick
+ is disabled.
+
+ - HAL
+ SPDIFRX update
+
+ - Remove
+ 'register' storage class
+ specifier from HAL SPDIFRX
+ driver.
+
+ - HAL I2S update
+
+ - Updated
+ I2SEx APIs to correctly
+ support circular transfers
+
+ - Updated
+ I2SEx_TxRxDMACplt()
+ API to manage DMA circular
+ mode.
+
+ - Updated
+ HAL_I2SEx_TransmitReceive_DMA()
+ API to set hdmatx
+ (transfert
+ callback and half) to NULL.
+
+ - HAL SAI update
+
+ - Updated to
+ avoid the incorrect
+ left/right synchronization.
+
+ - Updated HAL_SAI_Transmit_DMA()
+ API to follow the sequence
+ described in the reference
+ manual for slave
+ transmitter mode.
+
+ - Updated HAL_SAI_Init()
+ API to correct the formula
+ in case of SPDIF is wrong.
+
+ - HAL CRYP update
+
+ - Updated HAL_CRYP_SetConfig()
+ and HAL_CRYP_GetConfig()
+
+
+
+
+ APIs to set/get the
+ continent of KeyIVConfigSkip
+ correctly.
+
+ - HAL EXTI update
+
+ - __EXTI_LINE__
+
+
+
+ is now used instead of
+ __LINE__ which is a standard
+ C macro.
+
+ - HAL DCMI
+
+ - Support of
+ HAL callback registration
+ feature for DCMI extended
+ driver.
+
+ - HAL/LL TIM update
+
+ - Updated HAL_TIMEx_OnePulseN_Start()
+ and HAL_TIMEx_OnePulseN_Stop()
+
+
+
+
+ APIs (pooling and IT mode)
+ to take into consideration
+ all OutputChannel
+ parameters.
+ - Corrected
+ reversed description of
+ TIM_LL_EC_ONEPULSEMODE One
+ Pulse Mode.
+ - Updated LL_TIM_GetCounterMode()
+ API to return the correct
+ counter mode.
+
+ - HAL/LL
+ SMARTCARD update
+
+ - Fixed
+ invalid initialization of
+ SMARTCARD configuration by
+ removing FIFO mode
+ configuration as it is not
+ member of SMARTCARD_InitTypeDef
+ Structure.
+ - Fixed typos
+ in SMARTCARD State
+ definition description
+
+ - HAL/LL IRDA update
+
+ - Fixed typos
+ in IRDA State definition
+ description
+
+ - LL USART update
+
+ - Remove
+ useless check on maximum BRR
+ value by removing
+ IS_LL_USART_BRR_MAX()
+ macro.
+ - Update
+ USART polling and
+ interruption processes to
+ fix issues related to
+ accesses out of user
+ specified buffer.
+
+ - HAL USB update
+
+ - Enhanced
+ USB OTG host HAL with USB
+ DMA is enabled:
+
+ - fixed
+ ping and data toggle
+ issue,
+ - reworked
+ Channel error report
+ management
+
+
+
+
+ V1.7.10
+
+
+
+ / 22-October-2020
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects.
+ - HAL/LL
+
+
+
+ I2C update
+
+
+
+ - Update
+ to fix hardfault
+ issue with HAL_I2C_Mem_Write_DMA()
+ API:
+
+ -
+ Abort the right ongoing DMA
+ transfer when memory write
+ access request operation
+ failed: fix typo hdmarx
+ replaced by hdmatx
+
+
+
+ V1.7.9
+
+
+
+ / 14-August-2020
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - HAL/LL
+
+
+
+ I2C update
+
+
+
+ - Update
+ HAL_I2C_ER_IRQHandler()
+ API to fix acknowledge failure
+ issue with I2C memory IT
+ processes
+
+ - Add
+ stop condition generation
+ when NACK occurs.
+
+ - 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).
+
+ - Add
+ additional check on
+ hi2c->hdmtx
+ and hi2c->hdmarx
+ before resetting DMA Tx/Rx
+ complete callbacks
+
+ - Update
+ Sequential transfer APIs to
+ adjust xfermode
+ condition.
+
+ -
+
+
+
+
+ Replace hi2c->XferCount
+ < MAX_NBYTE_SIZE by
+ hi2c->XferCount
+ <= MAX_NBYTE_SIZE which
+ corresponds to a case
+ without reload
+
+
+
+
+ - HAL/LL
+
+
+
+ USB update
+
+ - Bug
+
+
+
+ fix: USB_ReadPMA()
+ and USB_WritePMA()
+
+
+
+
+ by ensuring 16-bits access to
+ USB PMA memory
+ - Bug
+
+
+
+ fix: correct USB RX count
+ calculation
+ - Fix
+ USB Bulk transfer double
+ buffer mode
+ - Remove
+ register keyword from USB
+ defined macros as no more
+ supported by C++ compiler
+ - Minor
+ rework on USBD_Start()
+ and USBD_Stop()
+
+
+
+
+ APIs: stopping device will be
+ handled by HAL_PCD_DeInit()
+
+
+
+
+ API.
+ - Remove
+ non used API for USB device
+ mode.
+
+
+ V1.7.8
+
+
+
+ / 12-February-2020
+ Main Changes
+
+ - Add
+ new HAL FMPSMBUS and LL
+
+
+
+ FMPI2C drivers
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+
+
+ - Update
+
+
+
+ HAL CRYP driver to support block
+ by block decryption without
+ reinitializes the IV and KEY for
+ each call.
+ - Improve
+
+
+
+ code quality by fixing
+ MisraC-2012 violations
+ - HAL/LL
+
+
+
+ USB update
+
+ - Add
+ handling USB host babble error
+ interrupt
+ - Fix
+ Enabling ULPI interface for
+ platforms that integrates USB
+ HS PHY
+ - Fix
+ Host data toggling for IN Iso
+ transfers
+ - Ensure
+ to disable USB EP during
+ endpoint deactivation
+
+ - HAL
+
+
+
+ CRYP update
+
+ - Update
+ HAL CRYP driver to support
+ block by block decryption
+ without initializing the IV
+ and KEY at each call.
+
+ - Add new
+ CRYP Handler parameters: "KeyIVConfig"
+ and "SizesSum"
+ - Add new
+ CRYP init
+ parameter: "KeyIVConfigSkip"
+
+
+ - HAL
+
+
+
+ I2S update
+
+ - Update
+ HAL_I2S_DMAStop()
+ API to be more safe
+
+ - Add a check
+ on BSY, TXE and RXNE flags
+ before disabling the I2S
+
+ - Update
+ HAL_I2S_DMAStop()
+ API to fix multi-call transfer
+ issue(to avoid re-initializing
+ the I2S for the next
+ transfer).
+
+ - Add
+ __HAL_I2SEXT_FLUSH_RX_DR()
+ and __HAL_I2S_FLUSH_RX_DR()
+ macros to flush the
+ remaining data inside DR
+ registers.
+ - Add new ErrorCode
+ define:
+ HAL_I2S_ERROR_BUSY_LINE_RX
+
+
+
+ V1.7.7
+
+
+
+ / 06-December-2019
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - HAL
+
+
+
+ Generic update
+
+ - HAL_SetTickFreq(): update to
+ restore the previous tick
+ frequency when HAL_InitTick()
+
+
+
+
+ configuration failed.
+
+ - HAL/LL
+
+
+
+ GPIO update
+
+ - Update GPIO
+ initialization sequence to
+
+
+
+ avoid unwanted pulse on GPIO Pin's
+
+ - HAL
+
+
+
+ EXTI update
+
+
+
+ - General
+ update to enhance HAL EXTI
+ driver robustness
+
+ - Add
+ additional assert check on
+ EXTI config lines
+ - Update to
+ compute EXTI line mask
+ before read/write access
+ to EXTI registers
+
+
+
+ - Update EXTI
+ callbacks management to be
+ compliant with reference
+ manual: only one PR
+ register for rising and
+ falling interrupts.
+
+ - Update
+ parameters in EXTI_HandleTypeDef
+ structure: merge HAL
+ EXTI RisingCallback
+ and FallingCallback
+ in only one PendingCallback
+ - Remove
+ HAL_EXTI_RISING_CB_ID and
+ HAL_EXTI_FALLING_CB_ID
+ values from EXTI_CallbackIDTypeDef
+ enumeration.
+
+
+
+ - Update
+ HAL_EXTI_IRQHandler()
+ API to serve interrupts
+ correctly.
+
+ - Update to
+ compute EXTI line mask
+ before handle
+ EXTI interrupt.
+
+ - Update to
+ support GPIO port
+ interrupts:
+
+ - Add new "GPIOSel"
+ parameter in EXTI_ConfigTypeDef
+ structure
+
+
+ - HAL/LL
+
+
+
+ RCC update
+
+ - Update HAL_RCCEx_PeriphCLKConfig()
+ API to support PLLI2S
+ configuration for STM32F42xxx
+ and STM32F43xxx devices
+ - Update the HAL_RCC_ClockConfig()
+ and HAL_RCC_DeInit()
+
+
+
+
+ API to don't overwrite the
+ custom tick priority
+ - Fix LL_RCC_DeInit()
+ failure detected with gcc
+ compiler and high optimization
+ level is selected(-03)
+ - Update HAL_RCC_OscConfig()
+ API to don't return
+ HAL_ERROR if request repeats
+ the current PLL configuration
+
+ - HAL
+
+
+
+ ADC update
+
+ - Update LL_ADC_REG_Init()
+ to fix wrong ADC CR1 register
+ configuration
+
+ - The ADC
+ sequencer length is part
+ of ADC SQR1
+ register not of ADC CR1
+ register
+
+
+ - HAL
+
+
+
+ CRYP update
+
+ - Update HAL_CRYP_Encrypt()
+ and HAL_CRYP_Decrypt()
+
+
+
+
+ APIs to take into
+ consideration the datatype fed
+ to the DIN register (1-, 8-,
+ 16-, or 32-bit data) when
+ padding the last block of the
+ payload, in case the size of
+ this last block is less than
+ 128 bits.
+
+ - HAL
+
+
+
+ RNG update
+
+ - Update HAL_RNG_IRQHandler()
+ API to fix error code
+ management issue: error code
+ is assigned
+ "HAL_RNG_ERROR_CLOCK" in case
+ of clock error and
+ "HAL_RNG_ERROR_SEED" in case
+ of seed error, not the
+ opposite.
+
+ - HAL
+
+
+
+ DFSDM update
+
+ - Update DFSDM_GetChannelFromInstance()
+ API to remove unreachable
+ check condition
+
+ - HAL
+
+
+
+ DMA update
+
+ - Update HAL_DMA_Start_IT()
+ API to omit the FIFO error
+
+ - HAL
+
+
+
+ FLASH update
+
+ - Update FLASH_Program_DoubleWord()
+ API to fix with EWARM high
+ level optimization issue
+
+ - HAL
+
+
+
+ QSPI update
+
+ - Remove Lock
+ mechanism from HAL_QSPI_Init()
+ and HAL_QSPI_DeInit()
+
+
+
+
+ APIs
+
+ - HAL
+
+
+
+ HASH update
+
+ - Null pointer
+ on handler "hhash"
+ is now checked before
+ accessing structure member "hhash->Init.DataType"
+ in the following API:
+
+ - Following interrupt-based
+ APIs have been added.
+ Interrupt mode could allow the
+ MCU to enter "Sleep" mode
+ while a data block is being
+ processed. Please refer to the
+ "##### How to use this driver
+ #####" section for details
+ about their use.
+
+ - HAL_HASH_SHA1_Accmlt_IT()
+ - HAL_HASH_MD5_Accmlt_IT()
+ - HAL_HASHEx_SHA224_Accmlt_IT()
+ - HAL_HASHEx_SHA256_Accmlt_IT()
+
+ - Following aliases
+ have been added (just for
+ clarity sake) as they
+ shall be used at the end
+ of the computation of a
+ multi-buffers message and not
+ at the start:
+
+ - HAL_HASH_SHA1_Accmlt_End()
+ to be used instead of
+ HAL_HASH_SHA1_Start()
+ - HAL_HASH_MD5_Accmlt_End()
+ to be used instead of
+ HAL_HASH_MD5_Start()
+ - HAL_HASH_SHA1_Accmlt_End_IT()
+ to be used instead of
+ HAL_HASH_SHA1_Start_IT()
+ - HAL_HASH_MD5_Accmlt_End_IT()
+ to be used instead of
+ HAL_HASH_MD5_Start_IT()
+ - HAL_HASHEx_SHA224_Accmlt_End()
+ to be used instead of
+ HAL_HASHEx_SHA224_Start()
+ - HAL_HASHEx_SHA256_Accmlt_End()
+ to be used instead of
+ HAL_HASHEx_SHA256_Start()
+
+
+
+
+
+
+ - HAL_HASHEx_SHA224_Accmlt_End_IT()
+ to be used instead of
+ HAL_HASHEx_SHA224_Start_IT()
+ - HAL_HASHEx_SHA256_Accmlt_End_IT()
+ to be used instead of
+ HAL_HASHEx_SHA256_Start_IT()
+
+
+
+
+
+ - MISRAC-2012
+ rule R.5.1 (identifiers
+ shall be distinct in the first
+ 31 characters) constrained the
+ naming of the above listed
+ aliases (e.g.
+ HAL_HASHEx_SHA256_Accmlt_End()
+ could not be named
+ HAL_HASHEx_SHA256_Accumulate_End().
+
+
+
+
+ Otherwise the name would have
+ conflicted with
+ HAL_HASHEx_SHA256_Accumulate_End_IT()).
+ In
+
+
+
+
+ order to
+ have aligned names following
+ APIs have been renamed:
+
+
+
+
+
+
+ - HAL_HASH_MD5_Accumulate()
+ renamed
+ HAL_HASH_MD5_Accmlt()
+ - HAL_HASH_SHA1_Accumulate()
+ renamed
+ HAL_HASH_SHA1_Accmlt()
+ - HAL_HASHEx_SHA224_Accumulate()
+ renamed
+ HAL_HASHEx_SHA224_Accmlt()
+
+
+
+
+
+
+
+
+ - HAL_HASHEx_SHA256_Accumulate()
+ renamed
+ HAL_HASHEx_SHA256_Accmlt()
+
+
+
+
+
+
+ - HASH handler
+ state is no more
+ reset to HAL_HASH_STATE_READY
+ once DMA has been started
+ in the following APIs:
+
+ - HAL_HASH_MD5_Start_DMA()
+ - HAL_HMAC_MD5_Start_DMA()
+ - HAL_HASH_SHA1_Start_DMA()
+ - HAL_HMAC_SHA1_Start_DMA()
+
+ - HASH phase
+ state is now set to
+ HAL_HASH_PHASE_READY once
+ the digest has been read
+ in the following APIs:
+
+ - HASH_IT()
+ - HMAC_Processing()
+ - HASH_Start()
+ - HASH_Finish()
+
+ - Case of a
+ large buffer scattered around
+ in memory each piece of which
+ is not necessarily a multiple
+
+
+
+ of 4 bytes in length.
+
+ - In section
+ "##### How to use this
+ driver #####", sub-section
+ "*** Remarks on message
+ length ***" added to provide
+ recommendations to follow in
+ such case.
+ - No
+ modification of the driver
+ as the root-cause is at
+ design-level.
+
+
+
+
+ - HAL CAN
+
+
+
+ update
+
+ - HAL_CAN_GetRxMessage() update to
+ get the correct value for the
+ RTR (type of frame for
+ the message that will be
+ transmitted) field in the CAN_RxHeaderTypeDef
+ structure.
+
+ - HAL
+
+
+
+ DCMI update
+
+ - Add new HAL_DCMI_ConfigSyncUnmask()
+ API to set embedded
+ synchronization delimiters
+ unmasks.
+
+ - HAL
+
+
+
+ RTC update
+
+ - Following IRQ
+ handlers' implementation has
+ been aligned with the
+ STM32Cube firmware
+ specification (in case of
+ interrupt lines shared by
+ multiple events, first check
+ the IT enable bit is set then
+ check the IT flag is set too):
+
+ - HAL_RTC_AlarmIRQHandler()
+ - HAL_RTCEx_WakeUpTimerIRQHandler()
+ - HAL_RTCEx_TamperTimeStampIRQHandler()
+
+
+
+
+ - HAL
+
+
+
+ WWDG update
+
+ - In "#####
+ WWDG Specific features #####"
+ descriptive comment section:
+
+ - Maximal prescaler
+ value has been corrected (8
+ instead of 128).
+ - Maximal APB
+ frequency has been corrected
+ (42MHz instead of 56MHz) and
+ possible timeout values
+ updated.
+
+
+ - HAL
+
+
+
+ DMA2D update
+
+
+
+ - Add the
+ following API's to Start DMA2D
+ CLUT Loading.
+
+ - HAL_DMA2D_CLUTStartLoad()
+ Start DMA2D CLUT Loading.
+ - HAL_DMA2D_CLUTStartLoad_IT()
+ Start DMA2D CLUT Loading
+ with interrupt enabled.
+
+ - The following
+ old wrong services will be
+ kept in the HAL DCMI driver
+ for legacy purpose and a
+ specific Note is added:
+
+ - HAL_DMA2D_CLUTLoad()
+ can be replaced with
+ HAL_DMA2D_CLUTStartLoad()
+ - HAL_DMA2D_CLUTLoad_IT() can
+
+
+
+
+ be replaced with
+ HAL_DMA2D_CLUTStartLoad_IT()
+ - HAL_DMA2D_ConfigCLUT()
+ can be omitted as the config
+ can be performed using
+ the HAL_DMA2D_CLUTStartLoad()
+ API.
+
+
+
+
+ - HAL
+
+
+
+ SDMMC update
+
+ - Fix
+ typo in "FileFormatGroup"
+ parameter in the HAL_MMC_CardCSDTypeDef
+ and HAL_SD_CardCSDTypeDef
+ structures
+ - Fix an
+ improve handle state and
+ error management
+ - Rename the
+ defined MMC card capacity type
+ to be more meaningful:
+
+ - Update MMC_HIGH_VOLTAGE_CARD to
+
+
+
+
+ MMC LOW_CAPACITY_CARD
+ - Update MMC_DUAL_VOLTAGE_CRAD
+ to MMC_HIGH_CAPACITY_CARD
+
+ - Fix
+ management of peripheral
+ flags depending on commands
+ or data transfers
+
+ - Add new
+ defines
+ "SDIO_STATIC_CMD_FLAGS"
+ and "SDIO_STATIC_DATA_FLAGS"
+ - Updates HAL
+
+
+
+ SD and HAL MMC drivers to
+ manage the new SDIO static
+ flags.
+
+
+
+ - Due to
+ limitation SDIO hardware flow
+ control indicated in Errata
+ Sheet:
+
+ - In 4-bits
+ bus wide mode, do not use
+ the HAL_SD_WriteBlocks_IT()
+ or HAL_SD_WriteBlocks()
+
+
+
+
+ APIs otherwise underrun will
+ occur and it isn't possible
+ to activate the flow
+ control.
+ - Use DMA
+ mode when using 4-bits bus
+ wide mode or decrease the
+ SDIO_CK frequency.
+
+
+ - HAL
+
+
+
+ UART update
+
+ - Update UART
+ polling processes to handle
+ efficiently the Lock mechanism
+
+ - Move
+ the process unlock at the
+ top of the HAL_UART_Receive()
+ and HAL_UART_Transmit()
+
+
+
+
+ API.
+
+ - Fix baudrate
+ calculation error for clock
+ higher than 172Mhz
+
+ - Add a
+ forced cast on
+ UART_DIV_SAMPLING8() and
+ UART_DIV_SAMPLING16()
+ macros.
+ - Remove
+ useless parenthesis from
+ UART_DIVFRAQ_SAMPLING8(),
+ UART_DIVFRAQ_SAMPLING16(),
+ UART_BRR_SAMPLING8() and
+ UART_BRR_SAMPLING16() macros
+ to solve some MISRA
+ warnings.
+
+ - Update UART
+ interruption handler to manage
+ correctly the overrun interrupt
+
+ - Add in
+ the HAL_UART_IRQHandler()
+ API a check on
+ USART_CR1_RXNEIE bit when an
+ overrun interrupt occurs.
+
+ - Fix baudrate
+ calculation error UART9
+ and UART10
+
+ - In UART_SetConfig()
+ API fix UART9 and UART10
+ clock source when computing
+ baudrate
+ values by adding a check on
+ these instances and setting
+ clock sourcePCLK2 instead of
+ PCLK1.
+
+ - Update UART_SetConfig()
+ API
+
+ - Split
+ HAL_RCC_GetPCLK1Freq()
+ and HAL_RCC_GetPCLK2Freq()
+ macros from the
+ UART_BRR_SAMPLING8() and
+ UART_BRR_SAMPLING8()
+ macros
+
+
+ - HAL
+
+
+
+ USART update
+
+ - Fix baudrate
+ calculation error for clock
+ higher than 172Mhz
+
+ - Add a
+ forced cast on USART_DIV()
+ macro.
+ - Remove
+ useless parenthesis
+ from USART_DIVFRAQ()
+ macro to solve some MISRA
+ warnings.
+
+ - Update USART
+ interruption handler to manage
+ correctly the overrun interrupt
+
+ - Add in
+ the HAL_USART_IRQHandler()
+ API a check on
+ USART_CR1_RXNEIE bit when an
+ overrun interrupt occurs.
+
+ - Fix baudrate
+ calculation error UART9
+ and UART10
+
+ - In USART_SetConfig()
+ API fix UART9 and UART10
+ clock source when computing
+ baudrate
+ values by adding a check on
+ these instances and setting
+ clock sourcePCLK2 instead of
+ PCLK1.
+
+ - Update USART_SetConfig()
+ API
+
+ - Split
+ HAL_RCC_GetPCLK1Freq()
+ and HAL_RCC_GetPCLK2Freq()
+ macros from the USART_BRR()
+ macro
+
+
+ - HAL
+
+
+
+ IRDA update
+
+ - Fix baudrate
+ calculation error for clock
+ higher than 172Mhz
+
+ - Add a
+ forced cast on IRDA_DIV()
+ macro.
+ - Remove
+ useless parenthesis
+ from IRDA_DIVFRAQ()
+ macro to solve some
+ MISRA warnings.
+
+ - Update IRDA
+ interruption handler to manage
+ correctly the overrun interrupt
+
+ - Add in
+ the HAL_IRDA_IRQHandler()
+ API a check on
+ USART_CR1_RXNEIE bit when an
+ overrun interrupt occurs.
+
+ - Fix baudrate
+ calculation error UART9
+ and UART10
+
+ - In IRDA_SetConfig()
+ API fix UART9 and UART10
+ clock source when computing
+ baudrate
+ values by adding a check on
+ these instances and setting
+ clock sourcePCLK2 instead of
+ PCLK1.
+
+ - Update IRDA_SetConfig()
+ API
+
+ - Split
+ HAL_RCC_GetPCLK1Freq()
+ and HAL_RCC_GetPCLK2Freq()
+ macros from the IRDA_BRR()
+ macro
+
+
+ - HAL
+
+
+
+ SMARTCARD update
+
+ - Fix baudrate
+ calculation error for clock
+ higher than 172Mhz
+
+ - Add a
+ forced cast on SMARTCARD_DIV()
+ macro.
+ - Remove useless parenthesis
+
+
+
+
+ from SMARTCARD_DIVFRAQ()
+ macro to solve some
+ MISRA warnings.
+
+ - Update
+ SMARTCARD interruption handler
+ to manage correctly the
+ overrun interrupti
+
+ - Add in
+ the HAL_SMARTCARD_IRQHandler()
+ API a check on
+ USART_CR1_RXNEIE bit when an
+ overrun interrupt occurs.
+
+ - Update SMARTCARD_SetConfig()
+ API
+
+ - Split
+ HAL_RCC_GetPCLK1Freq()
+ and HAL_RCC_GetPCLK2Freq()
+ macros from the
+ SMARTCARD_BRR() macro
+
+
+ - HAL
+
+
+
+ TIM update
+
+ - Add new
+ macros to enable and disable
+ the fast mode when using the
+ one pulse mode to output a
+ waveform with a minimum delay
+
+ - __HAL_TIM_ENABLE_OCxFAST()
+ and __HAL_TIM_DISABLE_OCxFAST().
+
+ - Update
+ Encoder interface mode to
+ keep TIM_CCER_CCxNP
+ bits low
+
+ - Add TIM_ENCODERINPUTPOLARITY_RISING
+
+
+
+
+ and
+ TIM_ENCODERINPUTPOLARITY_FALLING
+ definitions to determine
+ encoder input polarity.
+ - Add
+ IS_TIM_ENCODERINPUT_POLARITY()
+ macro to check the
+ encoder input polarity.
+ - Update HAL_TIM_Encoder_Init()
+ API
+
+ - Replace
+ IS_TIM_IC_POLARITY()
+ macro by
+ IS_TIM_ENCODERINPUT_POLARITY()
+ macro.
+
+
+ - Update TIM
+ remapping input configuration
+ in HAL_TIMEx_RemapConfig()
+ API
+
+ - Remove
+ redundant check on
+ LPTIM_OR_TIM5_ITR1_RMP bit
+ and replace it by check on
+ LPTIM_OR_TIM9_ITR1_RMP bit.
+
+ - Update HAL_TIMEx_MasterConfigSynchronization()
+ API to avoid functional errors
+ and assert fails when using
+ some TIM instances as input
+ trigger.
+
+ - Replace IS_TIM_SYNCHRO_INSTANCE()
+ macro by
+ IS_TIM_MASTER_INSTANCE()
+ macro.
+ - Add IS_TIM_SLAVE_INSTANCE()
+ macro to check on
+ TIM_SMCR_MSM bit.
+
+ - Add lacking
+ TIM input remapping definition
+
+ - Add
+ LL_TIM_TIM11_TI1_RMP_SPDIFRX
+ and
+ LL_TIM_TIM2_ITR1_RMP_ETH_PTP.
+ - Add lacking
+ definition for linked
+ LPTIM_TIM input trigger remapping
+
+ - Add
+ following definitions
+
+
+
+
+ :
+ LL_TIM_TIM9_ITR1_RMP_TIM3_TRGO,
+ LL_TIM_TIM9_ITR1_RMP_LPTIM,
+
+
+
+ LL_TIM_TIM5_ITR1_RMP_TIM3_TRGO,
+
+
+
+
+ LL_TIM_TIM5_ITR1_RMP_LPTIM,
+
+
+
+ LL_TIM_TIM1_ITR2_RMP_TIM3_TRGO
+
+
+
+ and
+ LL_TIM_TIM1_ITR2_RMP_LPTIM.
+ - Add a new
+ mechanism in LL_TIM_SetRemap()
+ API to remap TIM1, TIM9,
+ and TIM5 input
+ triggers mapped on LPTIM
+ register.
+
+
+
+ - HAL
+
+
+
+ LPTIM update
+
+ - Add a polling
+ mechanism to check
+ on LPTIM_FLAG_XXOK flags
+ in different API
+
+ - Add
+ LPTIM_WaitForFlag() API to
+ wait for flag set.
+ - Perform new
+ checks on
+ HAL_LPTIM_STATE_TIMEOUT.
+
+ - Add lacking
+ definitions of LPTIM input
+ trigger remapping and its
+ related API
+
+
+ - LL_LPTIM_INPUT1_SRC_PAD_AF,
+
+
+
+
+ LL_LPTIM_INPUT1_SRC_PAD_PA4,
+
+
+
+ LL_LPTIM_INPUT1_SRC_PAD_PB9
+
+
+
+ and
+ LL_LPTIM_INPUT1_SRC_TIM_DAC.
+ - Add a new
+ API LL_LPTIM_SetInput1Src()
+ to access to the LPTIM_OR
+ register and remap the
+ LPTIM input trigger.
+
+
+ - Perform a new
+ check on indirect EXTI23 line
+ associated to the LPTIM wake
+ up timer
+
+ - Condition
+ the use of the LPTIM Wake-up
+ Timer associated EXTI
+ line configuration's
+ macros by EXTI_IMR_MR23
+ bit in different API
+
+
+
+ :
+
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE/DDISABLE_FALLING_EDGE()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_GET_FLAG()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_FLAG()
+ - __HAL_LPTIM_WAKEUPTIMER_EXTI_GENERATE_SWIT()
+
+ - Update HAL_LPTIM_TimeOut_Start_IT(), HAL_LPTIM_TimeOut_Stop_IT(),
+
+
+
+
+ HAL_LPTIM_Counter_Start_IT()
+
+
+
+
+ and HAL_LPTIM_Counter_Stop_IT()
+
+
+
+
+ API by adding Enable/Disable
+ rising edge trigger on
+ the LPTIM Wake-up Timer
+ Exti
+ line.
+ - Add
+ __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_FLAG()
+ in the end of the HAL_LPTIM_IRQHandler()
+
+
+
+
+ API conditioned by
+ EXTI_IMR_MR23 bit.
+
+
+ - HAL
+
+
+
+ I2C update
+
+ - Update
+ HAL_I2C_EV_IRQHandler()
+ API to fix I2C send break
+ issue
+
+ - Add
+ additional check on
+ hi2c->hdmatx,
+ hdmatx->XferCpltCallback,
+ hi2c->hdmarx,
+ hdmarx->XferCpltCallback
+ in I2C_Master_SB()
+ API to avoid enabling
+ DMA request when IT
+ mode is used.
+
+ - Update
+ HAL_I2C_ER_IRQHandler()
+ API to fix acknowledge failure
+ issue with I2C memory IT
+ processes
+
+ - Add stop
+
+
+
+
+ condition generation when
+ NACK occurs.
+
+ - Update
+ HAL_I2C_Init()
+ API to force software reset
+ before setting new I2C
+ configuration
+ - Update HAL
+ I2C processes to report ErrorCode
+ when wrong I2C start condition
+ occurs
+
+ - Add
+ new ErrorCode
+ define: HAL_I2C_WRONG_START
+ - Set ErrorCode
+ parameter in I2C handle
+ to HAL_I2C_WRONG_START
+
+ - 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).
+
+ - Add
+ additional check on
+ hi2c->hdmtx
+ and hi2c->hdmarx
+ before resetting DMA
+ Tx/Rx complete callbacks
+
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - Fix HAL
+ FMPI2C slave interrupt
+ handling issue with I2C
+ sequential transfers.
+
+ - Update
+ FMPI2C_Slave_ISR_IT()
+ and FMPI2C_Slave_ISR_DMA()
+ APIs to check on STOP
+ condition and handle it
+ before clearing the ADDR
+ flag
+
+
+ - HAL
+
+
+
+ NAND update
+
+ - Update
+ HAL_NAND_Write_Page_8b(),
+
+
+
+ HAL_NAND_Write_Page_16b()
+ and
+ HAL_NAND_Write_SpareArea_16b()
+ to manage correctly the time
+ out condition.
+
+ - HAL
+
+
+
+ SAI update
+
+ - Optimize SAI_DMATxCplt()
+ and SAI_DMARxCplt()
+
+
+
+
+ APIs to check on "Mode"
+ parameter instead of CIRC
+ bit in the CR register.
+ - Remove unused
+ SAI_FIFO_SIZE define
+ - Update HAL_SAI_Receive_DMA()
+ programming sequence to be inline
+ with reference manual
+
+
+ V1.7.6
+
+
+
+ / 12-April-2019
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - HAL
+
+
+
+ I2C update
+
+ - Fix I2C send
+ break issue in IT processes
+
+ - Add
+ additional check on
+ hi2c->hdmatx
+ and hi2c->hdmarx to
+
+
+
+
+ avoid the DMA request
+ enable when IT mode is used.
+
+
+ - HAL
+
+
+
+ SPI update
+
+ - Update to
+ implement Erratasheet:
+ BSY bit may stay high at the
+ end of a data transfer in
+ Slave mode
+
+ - LL
+
+
+
+ LPTIM update
+
+ - Fix
+ compilation errors with LL_LPTIM_WriteReg()
+ and LL_LPTIM_ReadReg()
+
+
+
+
+ macros
+
+ - HAL
+
+
+
+ SDMMC update
+
+ - Fix
+ preprocessing compilation
+ issue with SDIO
+ STA STBITERR interrupt
+
+ - HAL/LL
+
+
+
+ USB update
+
+ - Updated USB_WritePacket(),
+
+
+
+
+ USB_ReadPacket()
+
+
+
+
+ APIs to prevent compilation
+ warning with GCC GNU v8.2.0
+ - Rework USB_EPStartXfer()
+ API to enable the USB endpoint
+ before unmasking the TX FiFo
+ empty interrupt in case DMA is
+ not used
+ - USB HAL_HCD_Init()
+ and HAL_PCD_Init()
+
+
+
+
+ APIs updated to avoid enabling
+ USB DMA feature for OTG FS
+ instance, USB DMA feature is
+ available only on OTG HS
+ Instance
+ - Remove
+ duplicated line in hal_hcd.c
+ header file comment section
+
+ - Rework USB
+ HAL driver to use instance PCD_SPEED_xxx,
+ HCD_SPEED_xx
+ speeds instead of OTG register
+ Core speed definition during
+ the instance initialization
+ - Software
+ Quality improvement with a fix
+ of CodeSonar
+ warning on PCD_Port_IRQHandler()
+ and HCD_Port_IRQHandler()
+
+
+
+
+ interrupt handlers
+
+
+ V1.7.5
+
+
+
+ / 08-February-2019
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - General
+
+
+
+ updates to fix CodeSonar
+ compilation warnings
+ - General
+
+
+
+ updates to fix SW4STM32
+ compilation errors under Linux
+ - General
+
+
+
+ updates to fix the user manual
+ .chm files
+ - Add
+ support of HAL callback
+ registration feature
+
+
+ - Add
+ new HAL
+
+
+
+ EXTI driver
+ - Add
+ new HAL
+
+
+
+ SMBUS driver
+ - The
+
+
+
+ following changes done on the
+ HAL drivers require an update
+ on the application code based
+ on older HAL versions
+
+ - Rework of HAL
+ CRYP driver (compatibility
+ break)
+
+ - HAL CRYP
+ driver has been redesigned
+ with new API's, to bypass
+ limitations on data
+ Encryption/Decryption
+ management present with
+ previous HAL CRYP driver
+ version.
+ - The new HAL
+ CRYP driver is the
+ recommended version. It is
+ located as usual in
+ Drivers/STM32F4xx_HAL_Driver/Src
+ and
+ Drivers/STM32f4xx_HAL_Driver/Inc
+ folders. It can be enabled
+ through switch
+ HAL_CRYP_MODULE_ENABLED in
+ stm32f4xx_hal_conf.h
+ - The legacy
+ HAL CRYP driver is no longer
+ supported.
+
+ - Add new AutoReloadPreload
+ field in TIM_Base_InitTypeDef
+ structure to allow the
+ possibilities to enable or
+ disable the TIM Auto Reload
+ Preload.
+
+
+
+ - HAL/LL
+
+
+
+ Generic update
+
+ - Add support
+ of HAL callback
+ registration feature
+
+ - The feature
+ disabled by default is
+ available for the following
+ HAL drivers:
+
+ - ADC,
+ CAN, CEC, CRYP, DAC,
+ DCMI, DFSDM, DMA2D, DSI,
+ ETH, HASH, HCD, I2C,
+ FMPI2C, SMBUS,
+ UART, USART, IRDA,
+ SMARTCARD, LPTIM, LTDC,
+ MMC, NAND, NOR,
+ PCCARD, PCD, QSPI, RNG,
+ RTC,
+ SAI, SD, SDRAM, SRAM,
+ SPDIFRX, SPI, I2S, TIM,
+ and WWDG
+
+ - The feature
+ may be enabled individually
+ per HAL PPP driver
+ by setting the corresponding
+ definition USE_HAL_PPP_REGISTER_CALLBACKS
+
+
+
+
+ to 1U in
+ stm32f4xx_hal_conf.h project
+ configuration file (template
+ file
+ stm32f4xx_hal_conf_template.h
+ available from
+
+
+
+ Drivers/STM32F4xx_HAL_Driver/Inc)
+ - 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().
+
+ - General
+ updates to fix MISRA 2012
+ compilation errors
+
+ - Replace HAL_GetUID()
+ API by HAL_GetUIDw0(),
+ HAL_GetUIDw1() and
+ HAL_GetUIDw2()
+ - HAL_IS_BIT_SET()/HAL_IS_BIT_CLR()
+ macros implementation update
+ - "stdio.h"
+ include updated with "stddef.h"
+
+
+ - HAL
+
+
+
+ GPIO
+
+
+
+ update
+
+ - Add missing
+ define for SPI3 alternate
+ function "GPIO_AF5_SPI3" for
+ STM32F401VE devices
+ - Remove
+ "GPIO_AF9_TIM14" from defined
+ alternate function list for
+ STM32F401xx devices
+ - HAL_GPIO_TogglePin() reentrancy
+ robustness improvement
+ - HAL_GPIO_DeInit() API update
+ to avoid potential pending
+ interrupt after call
+ - Update
+ GPIO_GET_INDEX()
+ API for more compliance with
+ STM32F412Vx/STM32F412Rx/STM32F412Cx
+ devices
+ - Update
+ GPIO_BRR registers with
+ Reference Manual regarding
+ registers and bit definition
+ values
+
+ - HAL
+
+
+
+ CRYP update
+
+ - The CRYP_InitTypeDef
+ is no more
+ supported, changed by CRYP_ConfigTypedef
+ to allow changing parameters
+ using HAL_CRYP_setConfig()
+ API without reinitialize the
+ CRYP IP using the HAL_CRYP_Init()
+
+
+
+
+ API
+ - New
+ parameters added in the CRYP_ConfigTypeDef
+ structure: B0 and DataWidthUnit
+ - Input data
+ size parameter is added in the
+ CRYP_HandleTypeDef
+ structure
+ - Add new APIs
+ to manage the CRYP
+ configuration:
+
+ - HAL_CRYP_SetConfig()
+ - HAL_CRYP_GetConfig()
+
+ - Add new APIs
+ to manage the Key derivation:
+
+ - HAL_CRYPEx_EnableAutoKeyDerivation()
+ - HAL_CRYPEx_DisableAutoKeyDerivation()
+
+ - Add new APIs
+ to encrypt and decrypt data:
+
+ - HAL_CRYP_Encypt()
+ - HAL_CRYP_Decypt()
+ - HAL_CRYP_Encypt_IT()
+ - HAL_CRYP_Decypt_IT()
+ - HAL_CRYP_Encypt_DMA()
+ - HAL_CRYP_Decypt_DMA()
+
+ - Add new APIs
+ to generate TAG:
+
+ - HAL_CRYPEx_AESGCM_GenerateAuthTAG()
+ - HAL_CRYPEx_AESCCM_Generago teAuthTAG()
+
+
+ - HAL
+
+
+
+ LPTIM update
+
+ - Remove
+ useless LPTIM Wakeup EXTI
+ related macros from HAL_LPTIM_TimeOut_Start_IT()
+ API
+
+ - HAL
+
+
+
+ I2C update
+
+ - I2C API
+ changes for MISRA-C 2012
+ compliancy:
+
+ - Rename
+ HAL_I2C_Master_Sequential_Transmit_IT()
+ to
+ HAL_I2C_Master_Seq_Transmit_IT()
+ - Rename
+ HAL_I2C_Master_Sequentiel_Receive_IT()
+ to
+ HAL_I2C_Master_Seq_Receive_IT()
+ - Rename
+ HAL_I2C_Slave_Sequentiel_Transmit_IT()
+ to
+ HAL_I2C_Slave_Seq_Transmit_IT()
+
+ - Rename
+ HAL_I2C_Slave_Sequentiel_Receive_DMA()
+ to
+ HAL_I2C_Slave_Seq_Receive_DMA()
+
+ - SMBUS defined
+ flags are removed as not used
+ by the HAL I2C driver
+
+ - I2C_FLAG_SMBALERT
+ - I2C_FLAG_TIMEOUT
+ - I2C_FLAG_PECERR
+ - I2C_FLAG_SMBHOST
+ - I2C_FLAG_SMBDEFAULT
+
+ - Add support
+ of I2C repeated start feature
+ in DMA Mode:
+
+ - With the
+ following new API's
+
+ - HAL_I2C_Master_Seq_Transmit_DMA()
+ - HAL_I2C_Master_Seq_Receive_DMA()
+ - HAL_I2C_Slave_Seq_Transmit_DMA()
+ - HAL_I2C_Slave_Seq_Receive_DMA()
+
+
+ - Add new I2C
+ transfer options to easy
+ manage the sequential transfers
+
+ - I2C_FIRST_AND_NEXT_FRAME
+ - I2C_LAST_FRAME_NO_STOP
+ - I2C_OTHER_FRAME
+ - I2C_OTHER_AND_LAST_FRAME
+
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - I2C API
+ changes for MISRA-C 2012
+ compliancy:
+
+ - Rename
+ HAL_FMPI2C_Master_Sequential_Transmit_IT()
+ to
+ HAL_FMPI2C_Master_Seq_Transmit_IT()
+ - Rename
+ HAL_FMPI2C_Master_Sequentiel_Receive_IT()
+ to
+ HAL_FMPI2C_Master_Seq_Receive_IT()
+ - Rename
+ HAL_FMPI2C_Master_Sequentiel_Transmit_DMA()
+ to
+ HAL_FMPI2C_Master_Seq_Transmit_DMA()
+
+ - Rename
+ HAL_FMPI2C_Master_Sequentiel_Receive_DMA()
+ to
+ HAL_FMPI2C_Master_Seq_Receive_DMA()
+
+ - Rename
+ FMPI2C_CR1_DFN to
+ FMPI2C_CR1_DNF for more
+ compliance with Reference
+ Manual regarding registers and
+ bit definition naming
+ - Add support
+ of I2C repeated start feature
+ in DMA Mode:
+
+ - With the
+ following new API's
+
+ - HAL_FMPI2C_Master_Seq_Transmit_DMA()
+ - HAL_FMPI2C_Master_Seq_Receive_DMA()
+ - HAL_FMPI2C_Slave_Seq_Transmit_DMA()
+ - HAL_FMPI2C_Slave_Seq_Receive_DMA()
+
+
+
+ - HAL
+
+
+
+ FLASH update
+
+ - Update the FLASH_OB_GetRDP()
+ API to return the correct RDP
+ level
+
+ - HAL
+ RCC
+ update
+
+ - Remove GPIOD
+ CLK macros for STM32F412Cx
+ devices (X = D)
+ - Remove GPIOE
+ CLK macros for
+ STM32F412Rx\412Cx devices: (X
+ = E)
+ - Remove
+ GPIOF/G CLK macros for
+ STM32F412Vx\412Rx\412Cx
+ devices (X= F or G)
+
+ - __HAL_RCC_GPIOX_CLK_ENABLE()
+ - __HAL_RCC_GPIOX_CLK_DISABLE()
+ - __HAL_RCC_GPIOX_IS_CLK_ENABLED()
+ - __HAL_RCC_GPIOX_IS_CLK_DISABLED()
+ - __HAL_RCC_GPIOX_FORCE_RESET()
+
+
+ - HAL
+
+
+
+ RNG update
+
+ - Update to
+ manage RNG error code:
+
+ - Add ErrorCode
+ parameter in HAL RNG Handler
+ structure
+
+
+ - LL
+
+
+
+ ADC update
+
+ - Add
+ __LL_ADC_CALC_TEMPERATURE()
+ helper macro to calculate the
+ temperature (unit: degree
+ Celsius) from ADC conversion
+ data of internal temperature
+ sensor.
+ - Fix ADC
+ channels configuration issues
+ on STM32F413xx/423xx devices
+
+ - To allow
+ possibility to switch
+ between VBAT and TEMPERATURE
+ channels configurations
+
+ - HAL_ADC_Start(), HAL_ADC_Start_IT()
+
+
+
+
+ and HAL_ADC_Start_DMA()
+
+
+
+
+ update to prevention from
+ starting ADC2 or ADC3 once
+ multimode is enabled
+
+ - HAL
+
+
+
+ DFSDM
+
+
+
+ update
+
+ - General
+ updates to be compliant with
+ DFSDM bits naming used in
+ CMSIS files.
+
+ - HAL
+
+
+
+ CAN
+
+
+
+ update
+
+ - Update
+ possible values list for FilterActivation
+ parameter in CAN_FilterTypeDef
+ structure
+
+ - CAN_FILTER_ENABLE
+
+
+
+
+ instead of ENABLE
+ - CAN_FILTER_DISABLE
+
+
+
+
+ instead of DISABLE
+
+
+ - HAL
+
+
+
+ CEC
+
+
+
+ update
+
+ - Update HAL
+ CEC State management method:
+
+ - Remove HAL_CEC_StateTypeDef
+ structure parameters
+ - Add new
+ defines for CEC states
+
+
+ - HAL
+
+
+
+ DMA
+
+
+
+ update
+
+ - Add clean of
+ callbacks in HAL_DMA_DeInit()
+ API
+
+ - HAL
+
+
+
+ DMA2D
+
+
+
+ update
+
+ - Remove unused
+ DMA2D_ColorTypeDef structure
+ to be compliant with MISRAC
+ 2012 Rule 2.3
+ - General
+ update to use dedicated
+ defines for
+ DMA2D_BACKGROUND_LAYER and
+ DMA2D_FOREGROUND_LAYER instead
+ of numerical values: 0/1.
+
+ - HAL
+
+
+
+ DSI
+
+
+
+ update
+
+ - Fix read
+ multibyte issue: remove extra
+ call to __HAL_UNLOCK__ from DSI_ShortWrite()
+ API.
+
+
+
+ - HAL/LL
+
+
+
+ RTC update
+
+
+
+ - HAL/ LL drivers
+ optimization
+
+ - HAL driver:
+ remove unused variables
+ - LL driver:
+ getter APIs optimization
+
+
+ - HAL
+
+
+
+ PWR update
+
+ - Remove the
+ followings API's as feature
+ not supported by
+ STM32F469xx/479xx devices
+
+ - HAL_PWREx_EnableWakeUpPinPolarityRisingEdge()
+ - HAL_PWREx_EnableWakeUpPinPolarityRisingEdge()
+
+
+ - HAL
+
+
+
+ SPI update
+
+ - Update HAL_SPI_StateTypeDef
+ structure to add new state:
+ HAL_SPI_STATE_ABORT
+
+ - HAL/LL
+
+
+
+ TIM update
+
+ - Add new AutoReloadPreload
+ field in TIM_Base_InitTypeDef
+ structure
+
+ - Refer to
+ the TIM examples to identify
+ the changes
+
+
+ - Move the
+ following TIM structures from
+ stm32f4xx_hal_tim_ex.h into
+ stm32f4xx_hal_tim.h
+
+ - TIM_MasterConfigTypeDef
+ - TIM_BreakDeadTimeConfigTypeDef
+
+ - Add new TIM
+ Callbacks API's:
+
+ - HAL_TIM_PeriodElapsedHalfCpltCallback()
+ - HAL_TIM_IC_CaptureHalfCpltCallback()
+ - HAL_TIM_PWM_PulseFinishedHalfCpltCallback()
+ - HAL_TIM_TriggerHalfCpltCallback()
+
+ - TIM API
+ changes for MISRA-C 2012
+ compliancy:
+
+ - Rename HAL_TIM_SlaveConfigSynchronization
+ to HAL_TIM_SlaveConfigSynchro
+ - Rename HAL_TIM_SlaveConfigSynchronization_IT
+ to HAL_TIM_SlaveConfigSynchro_IT
+ - Rename HAL_TIMEx_ConfigCommutationEvent
+ to HAL_TIMEx_ConfigCommutEvent
+ - Rename HAL_TIMEx_ConfigCommutationEvent_IT
+ to HAL_TIMEx_ConfigCommutEvent_IT
+ - Rename HAL_TIMEx_ConfigCommutationEvent_DMA
+ to HAL_TIMEx_ConfigCommutEvent_DMA
+ - Rename HAL_TIMEx_CommutationCallback
+ to HAL_TIMEx_CommutCallback
+ - Rename HAL_TIMEx_DMACommutationCplt
+ to TIMEx_DMACommutationCplt
+
+
+
+
+ - HAL/LL
+
+
+
+ USB update
+
+ - Rework USB
+ interrupt handler and improve
+ HS DMA support in Device mode
+ - Fix BCD
+ handling fr OTG
+ instance in device mode
+ - cleanup
+ reference to low speed in
+ device mode
+ - allow writing
+ TX FIFO in case of transfer
+ length is equal to available
+ space in the TX FIFO
+ - Fix Toggle
+ OUT interrupt channel in host
+ mode
+ - Update USB
+ OTG max number of endpoints (6
+ FS and 9 HS instead of 5 and
+ 8)
+ - Update USB
+ OTG IP to enable internal
+ transceiver when starting USB
+ device after committee BCD negotiation
+
+ - LL
+
+
+
+ IWDG update
+
+ - Update LL
+ inline macros to use IWDGx
+ parameter instead of IWDG
+ instance defined in CMSIS device
+
+
+ V1.7.4
+
+
+
+ / 02-February-2018
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - HAL update
+
+ - Update UNUSED()
+ macro implementation to avoid
+ GCC warning
+
+ - The warning
+ is detected when the UNUSED()
+ macro is called from C++
+ file
+
+ - Update to
+ make RAMFUNC define as generic
+ type instead of HAL_StatusTypdef
+ type.
+
+ - HAL
+
+
+
+ FLASH update
+
+ - Update
+ the prototypes of the
+ following APIs after change on
+ RAMFUNC defines
+
+ - HAL_FLASHEx_StopFlashInterfaceClk()
+ - HAL_FLASHEx_StartFlashInterfaceClk()
+ - HAL_FLASHEx_EnableFlashSleepMode()
+ - HAL_FLASHEx_DisableFlashSleepMode()
+
+
+ - HAL
+
+
+
+ SAI update
+
+ - Update HAL_SAI_DMAStop()
+ and HAL_SAI_Abort()
+
+
+
+
+ process to fix the lock/unlock
+ audio issue
+
+
+ V1.7.3
+
+
+
+ / 22-December-2017
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - The
+
+
+
+ following changes done on the
+ HAL drivers require an update
+ on the application code based
+ on older HAL versions
+
+ - Rework of
+ HAL CAN driver
+ (compatibility break)
+
+ - A new HAL
+ CAN driver has been
+ redesigned with new APIs, to
+ bypass limitations on CAN
+ Tx/Rx FIFO management
+ present with previous HAL
+ CAN driver version.
+ - The new HAL
+ CAN driver is the
+ recommended version. It is
+ located as usual in
+ Drivers/STM32F4xx_HAL_Driver/Src
+ and
+ Drivers/STM32f4xx_HAL_Driver/Inc
+ folders. It can be enabled
+ through switch
+ HAL_CAN_MODULE_ENABLED in
+ stm32f4xx_hal_conf.h
+ - The legacy
+ HAL CAN driver is also
+ present in the release in
+ Drivers/STM32F4xx_HAL_Driver/Src/Legacy
+
+
+
+ and
+ Drivers/STM32F4xx_HAL_Driver/Inc/Legacy
+ folders for software
+ compatibility reasons. Its
+ usage is not recommended as
+ deprecated. It can
+ however be enabled through
+ switch
+ HAL_CAN_LEGACY_MODULE_ENABLED
+ in stm32f4xx_hal_conf.h
+
+
+ - HAL update
+
+ - Update HAL
+ driver to allow user to change
+ systick
+ period to 1ms, 10 ms
+ or 100 ms :
+
+ - Add the
+ following API's
+
+
+
+ :
+
+ - HAL_GetTickPrio():
+ Returns a tick priority.
+ - HAL_SetTickFreq(): Sets
+ new tick frequency.
+ - HAL_GetTickFreq():
+ Returns tick frequency.
+
+ - Add HAL_TickFreqTypeDef
+ enumeration for the
+ different Tick Frequencies:
+ 10 Hz, 100 Hz and 1KHz
+ (default).
+
+
+ - HAL
+
+
+
+ CAN update
+
+ - Fields of CAN_InitTypeDef
+ structure are reworked:
+
+ - SJW to SyncJumpWidth,
+ BS1 to TimeSeg1, BS2 to
+ TimeSeg2, TTCM to TimeTriggeredMode,
+ ABOM to AutoBusOff,
+ AWUM to AutoWakeUp,
+ NART to AutoRetransmission
+ (inversed), RFLM to ReceiveFifoLocked
+ and TXFP to TransmitFifoPriority
+
+ - HAL_CAN_Init() is split
+ into both HAL_CAN_Init()
+
+
+
+
+ and HAL_CAN_Start()
+
+
+
+
+ API's
+ - HAL_CAN_Transmit() is replaced
+ by HAL_CAN_AddTxMessage()
+
+
+
+
+ to place Tx Request, then HAL_CAN_GetTxMailboxesFreeLevel()
+
+
+
+
+ for polling until completion.
+ - HAL_CAN_Transmit_IT() is replaced
+ by HAL_CAN_ActivateNotification()
+
+
+
+
+ to enable transmit IT, then HAL_CAN_AddTxMessage()
+
+
+
+
+ for place Tx request.
+ - HAL_CAN_Receive() is replaced
+ by HAL_CAN_GetRxFifoFillLevel()
+
+
+
+
+ for polling until reception,
+ then HAL_CAN_GetRxMessage()
+
+
+
+
+
+ to get Rx message.
+ - HAL_CAN_Receive_IT() is replaced
+ by HAL_CAN_ActivateNotification() to
+
+
+
+
+ enable receive IT, then HAL_CAN_GetRxMessage()
+ in the receivecallback
+ to get Rx message
+ - HAL_CAN_Slepp() is renamed
+ as HAL_CAN_RequestSleep()
+ - HAL_CAN_TxCpltCallback() is split
+ into
+ HAL_CAN_TxMailbox0CompleteCallback(),
+HAL_CAN_TxMailbox1CompleteCallback()
+and HAL_CAN_TxMailbox2CompleteCallback().
+ - HAL_CAN_RxCpltCallback is split
+ into HAL_CAN_RxFifo0MsgPendingCallback()
+ and
+ HAL_CAN_RxFifo1MsgPendingCallback().
+ - More complete
+ "How to use the new driver" is
+ detailed in the driver header
+ section itself.
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - Add new
+ option
+ FMPI2C_LAST_FRAME_NO_STOP for
+ the sequential transfer management
+
+ - This option
+ allows to manage a restart
+ condition after several call
+ of the same master
+ sequential interface.
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - Add new HAL macros
+
+ - __HAL_RCC_GET_RTC_SOURCE()
+ allowing to get the RTC
+ clock source
+ - __HAL_RCC_GET_RTC_HSE_PRESCALER()
+ allowing to get the HSE
+ clock divider for RTC
+ peripheral
+
+ - Ensure reset
+ of CIR and CSR registers when
+ issuing HAL_RCC_DeInit()/LL_RCC_DeInit
+ functions
+ - Update HAL_RCC_OscConfig() to
+
+
+
+
+ keep backup domain enabled
+ when configuring
+ respectively LSE and RTC
+ clock source
+ - Add new HAL
+ interfaces allowing to control
+ the activation or deactivation
+ of PLLI2S and PLLSAI:
+
+ - HAL_RCCEx_EnablePLLI2S()
+ - HAL_RCCEx_DisablePLLI2S()
+ - HAL_RCCEx_EnablePLLSAI()
+ - HAL_RCCEx_DisablePLLSAI()
+
+
+
+
+ - LL
+
+
+
+ RCC update
+
+ - Add new LL
+ RCC macro
+
+ - LL_RCC_PLL_SetMainSource() allowing
+ to configure PLL main clock
+ source
+
+
+ - LL
+
+
+
+ FMC / LL FSMC update
+
+ - Add clear of
+ the PTYP bit to select the
+ PCARD mode in FMC_PCCARD_Init()
+ / FSMC_PCCARD_Init()
+
+
+ V1.7.2
+
+
+
+ / 06-October-2017
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - Fix
+ compilation warning with
+ GCC compiler
+ - Remove
+
+
+
+ Date and version
+ from header files
+ - Update
+
+
+
+ HAL drivers to refer to the
+ new CMSIS bit position
+ defines instead of usage the
+ POSITION_VAL()
+ macro
+ - HAL
+
+
+
+ Generic update
+
+ - stm32f4xx_hal_def.h
+
+
+
+ file changes:
+
+ - Update
+ __weak and __packed defined
+ values for ARM compiler
+ - Update
+ __ALIGN_BEGIN and
+ __ALIGN_END defined values
+ for ARM compiler
+
+ - stm32f4xx_ll_system.h
+
+
+
+
+ file:
+ add LL_SYSCFG_REMAP_SDRAM
+ define
+
+ - HAL
+
+
+
+ ADC update
+
+ - Fix wrong
+ definition of ADC channel
+ temperature sensor for
+ STM32F413xx and STM32F423xx
+ devices.
+
+ - HAL
+
+
+
+ DMA update
+
+ - Update values
+
+
+
+ for the following defines:
+ DMA_FLAG_FEIF0_4 and
+ DMA_FLAG_DMEIF0_4
+
+ - HAL
+
+
+
+ DSI update
+
+ - Fix Extra
+ warning with SW4STM32 compiler
+ - Fix DSI
+ display issue when using EWARM
+ w/ high level optimization
+ - Fix
+ MISRAC errors
+
+ - HAL
+
+
+
+ FLASH update
+
+ - HAL_FLASH_Unlock() update to
+ return state error when the
+ FLASH is already unlocked
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - Update
+ Interface APIs headers to
+ remove confusing message about
+ device address
+ - Update
+ FMPI2C_WaitOnRXNEFlagUntilTimeout()
+ to resolve a race condition
+ between STOPF and RXNE Flags
+ - Update
+ FMPI2C_TransferConfig()
+ to fix wrong bit management.
+ - Update code
+ comments to use DMA stream
+ instead of DMA channel
+
+
+
+ - HAL
+
+
+
+ PWR update
+
+ - HAL_PWR_EnableWakeUpPin() update
+ description to add support of
+ PWR_WAKEUP_PIN2 and
+ PWR_WAKEUP_PIN3
+
+ - HAL
+
+
+
+ NOR update
+
+ - Add the
+ support of STM32F412Rx devices
+
+ - HAL
+
+
+
+ I2C update
+
+ - Update
+ Interface APIs headers to
+ remove confusing mesage
+ about device address
+ - Update
+ I2C_MasterReceive_RXNE()
+ and I2C_MasterReceive_BTF()
+ static APIs to fix bad
+ Handling of NACK in I2C master
+ receive process.
+
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - Update HAL_RCC_GetOscConfig()
+ API to:
+
+ - set PLLR in
+ the RCC_OscInitStruct
+ - check on
+ null pointer
+
+ - Update HAL_RCC_ClockConfig()
+ API to:
+
+ - check on
+ null pointer
+ - optimize code
+
+
+
+ size by updating the
+ handling method of the SWS bits
+ - update to use
+
+
+
+
+ __HAL_FLASH_GET_LATENCY()
+
+
+
+ flash macro instead of using
+ direct register access
+ to LATENCY bits in
+ FLASH ACR register.
+
+ - Update HAL_RCC_DeInit()
+ and LL_RCC_DeInit()
+
+
+
+
+ APIs to
+
+ - Be able to
+ return HAL/LL status
+ - Add checks
+ for HSI, PLL and PLLI2S
+ ready
+ before modifying RCC CFGR
+ registers
+ - Clear all
+ interrupt falgs
+ - Initialize
+ systick
+ interrupt period
+
+ - Update HAL_RCC_GetSysClockFreq()
+ to avoid risk of rounding
+ error which may leads to a
+ wrong returned value.
+
+
+
+
+
+ - HAL
+
+
+
+ RNG update
+
+ - HAL_RNG_Init() remove
+ Lock()/Unlock()
+
+ - HAL
+
+
+
+ MMC update
+
+ - HAL_MMC_Erase()
+ API: add missing () to
+ fix compilation warning
+ detected with SW4STM32 when
+ extra feature is enabled.
+
+ - HAL
+
+
+
+ RTC update
+
+ - HAL_RTC_Init() API: update
+ to force the wait for synchro
+ before setting TAFCR register
+ when BYPSHAD bit in CR
+ register is 0.
+
+ - HAL
+
+
+
+ SAI update
+
+ - Update HAL_SAI_DMAStop()
+ API to flush fifo
+ after disabling SAI
+
+ - HAL
+
+
+
+ I2S update
+
+ - Update I2S
+ DMA fullduplex process to
+ handle I2S Rx and Tx DMA Half
+ transfer complete callback
+
+ - HAL
+
+
+
+ TIM update
+
+ - Update HAL_TIMEx_OCN_xxxx()
+ and HAL_TIMEx_PWMN_xxx()
+
+
+
+
+ API description to remove
+ support of TIM_CHANNEL_4
+
+ - LL
+
+
+
+ DMA update
+
+ - Update to
+ clear DMA flags using WRITE_REG()
+ instead SET_REG() API to avoid
+ read access to the IFCR
+ register that is write only.
+
+ - LL
+
+
+
+ RTC update
+
+ - Fix warning
+ with static analyzer
+
+ - LL
+
+
+
+ USART update
+
+ - Add assert
+ macros to check USART BaudRate
+ register
+
+ - LL
+
+
+
+ I2C update
+
+ - Rename
+ IS_I2C_CLOCK_SPEED()
+ and IS_I2C_DUTY_CYCLE()
+ respectively to
+ IS_LL_I2C_CLOCK_SPEED() and
+ IS_LL_I2C_DUTY_CYCLE() to
+ avoid incompatible macros
+ redefinition.
+
+ - LL
+
+
+
+ TIM update
+
+ - Update LL_TIM_EnableUpdateEvent()
+ API to clear UDIS bit in TIM
+ CR1 register instead of
+ setting it.
+ - Update LL_TIM_DisableUpdateEvent()
+ API to set UDIS bit in TIM CR1
+ register instead of clearing
+ it.
+
+ - LL
+
+
+
+ USART update
+
+ - Fix MISRA
+ error w/ IS_LL_USART_BRR()
+ macro
+ - Fix wrong
+ check when UART10 instance is
+ used
+
+
+ V1.7.1
+
+
+
+ / 14-April-2017
+ Main Changes
+
+ - Update
+
+
+
+ CHM UserManuals
+ to support LL drivers
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - HAL
+
+
+
+ CAN update
+
+ - Add
+ management of overrun
+ error.
+ - Allow
+ possibility to receive
+ messages from the 2 RX FIFOs
+ in parallel via interrupt.
+ - Fix message
+
+
+
+ lost issue with specific
+ sequence of transmit requests.
+ - Handle
+ transmission failure with
+ error callback, when NART is
+ enabled.
+ - Add
+ __HAL_CAN_CANCEL_TRANSMIT()
+ call to abort transmission
+ when timeout is reached
+
+
+
+ - HAL
+
+
+
+ PWR update
+
+ - HAL_PWREx_EnterUnderDriveSTOPMode() API: remove
+ check on UDRDY flag
+
+
+
+ - LL
+
+
+
+ ADC update
+
+ - Fix wrong ADC
+ group injected sequence configuration
+
+ - LL_ADC_INJ_SetSequencerRanks() and LL_ADC_INJ_GetSequencerRanks()
+
+
+
+
+ API's update to take in
+ consideration the ADC number
+ of conversions
+ - Update
+ the defined values for
+ ADC group injected seqencer
+ ranks
+
+
+
+ V1.7.0
+
+
+
+ / 17-February-2017
+ Main Changes
+
+ - Add
+
+
+
+ Low Layer drivers allowing
+ performance and footprint optimization
+
+ - Low Layer drivers
+ APIs provide register level
+ programming: require deep
+ knowledge of peripherals
+ described in STM32F4xx
+ Reference Manuals
+ - Low Layer
+ drivers are available for:
+ ADC, Cortex, CRC, DAC,
+ DMA, DMA2D, EXTI, GPIO, I2C,
+ IWDG, LPTIM, PWR, RCC, RNG,
+ RTC, SPI, TIM, USART, WWDG
+ peripherals and additionnal
+ Low Level Bus, System and
+ Utilities APIs.
+ - Low Layer drivers
+ APIs are implemented as static
+ inline function in new Inc/stm32f4xx_ll_ppp.h files
+
+
+
+
+ for PPP peripherals, there is
+ no configuration file and each stm32f4xx_ll_ppp.h file
+
+
+
+
+ must be included in user code.
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - Fix extra
+
+
+
+ warnings with GCC compiler
+ - HAL
+ drivers clean up: remove
+ double casting 'uint32_t' and 'U'
+ - Add
+ new HAL
+
+
+
+ MMC driver
+ - The
+
+
+
+ following changes done on the
+ HAL drivers require an update
+ on the application code based
+ on older HAL versions
+
+ - HAL SD update
+
+ - Overall
+ rework of the driver for a
+ more
+ efficient implementation
+
+ - Modify
+ initialization API and structures
+ - Modify
+ Read / Write sequences:
+ separate transfer process
+ and SD Cards state management
+ - Adding
+ interrupt mode for Read /
+ Write operations
+ - Update
+ the HAL_SD_IRQHandler
+ function by optimizing the
+ management of interrupt errors
+
+ - Refer to
+ the following example to
+ identify the changes: BSP
+ example and USB_Device/MSC_Standalone
+ application
+
+ - HAL NAND update
+
+ - Modify NAND_AddressTypeDef,
+ NAND_DeviceConfigTypeDef
+ and NAND_HandleTypeDef
+ structures fields
+ - Add new HAL_NAND_ConfigDevice
+ API
+
+ - HAL DFSDM update
+
+ - Add
+ support of Multichannel
+ Delay feature
+
+ - Add HAL_DFSDM_ConfigMultiChannelDelay
+ API
+ - The
+ following APIs are moved
+ to internal static
+ functions: HAL_DFSDM_ClockIn_SourceSelection,
+ HAL_DFSDM_ClockOut_SourceSelection,
+ HAL_DFSDM_DataInX_SourceSelection
+ (X=0,2,4,6), HAL_DFSDM_BitStreamClkDistribution_Config
+
+
+ - HAL I2S update
+
+ - Add specific
+
+
+
+
+ callback API to manage I2S
+ full duplex end of transfer
+ process:
+
+ - HAL_I2S_TxCpltCallback()
+ and
+ HAL_I2S_RxCpltCallback()
+ API's will be replaced
+ with only
+ HAL_I2SEx_TxRxCpltCallback()
+ API.
+
+
+
+ - HAL
+
+
+
+ update
+
+ - Modifiy default HAL_Delay
+ implementation to guarantee
+ minimum delay
+
+ - HAL
+
+
+
+ Cortex update
+
+ - Move HAL_MPU_Disable()
+ and HAL_MPU_Enable()
+
+
+
+
+ from stm32f4xx_hal_cortex.h to
+ stm32f4xx_hal_cortex.c
+ - Clear the
+ whole MPU control register
+ in HAL_MPU_Disable()
+ API
+
+ - HAL
+
+
+
+ FLASH update
+
+ - IS_FLASH_ADDRESS()
+ macro update to support OTP
+ range
+ - FLASH_Program_DoubleWord(): Replace
+ 64-bit accesses with 2
+ double-words operations
+
+ - LL
+
+
+
+ GPIO update
+
+ - Update
+ IS_GPIO_PIN()
+ macro implementation to be
+ more safe
+
+ - LL
+
+
+
+ RCC update
+
+ - Update
+ IS_RCC_PLLQ_VALUE()
+ macro implementation: the
+ minimum accepted value is
+ 2 instead of 4
+ - Rename
+ RCC_LPTIM1CLKSOURCE_PCLK
+ define to
+ RCC_LPTIM1CLKSOURCE_PCLK1
+ - Fix
+ compilation issue w/
+ __HAL_RCC_USB_OTG_FS_IS_CLK_ENABLED()
+ and
+ __HAL_RCC_USB_OTG_FS_IS_CLK_DISABLED()
+ macros for STM32F401xx devices
+ - Add the
+ following is clock
+ enabled macros for STM32F401xx
+ devices
+
+ - __HAL_RCC_SDIO_IS_CLK_ENABLED()
+ - __HAL_RCC_SPI4_IS_CLK_ENABLED()
+ - __HAL_RCC_TIM10_IS_CLK_ENABLED()
+
+ - Add the
+ following is clock
+ enabled macros for STM32F410xx
+ devices
+
+ - __HAL_RCC_CRC_IS_CLK_ENABLED()
+ - __HAL_RCC_RNG_IS_CLK_ENABLED()
+
+ - Update HAL_RCC_DeInit()
+ to reset the RCC clock
+ configuration to the default
+ reset state.
+ - Remove macros
+ to configure BKPSRAM from
+ STM32F401xx devices
+ - Update to
+ refer to AHBPrescTable[]
+ and APBPrescTable[]
+
+
+
+
+ tables defined in
+ system_stm32f4xx.c file
+ instead of APBAHBPrescTable[]
+
+
+
+
+ table.
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - Add
+ FMPI2C_FIRST_AND_NEXT_FRAME
+ define in Sequential
+ Transfer Options
+
+ - HAL
+
+
+
+ ADC update
+
+ - HAL_ADCEx_InjectedConfigChannel(): update the
+ external trigger injected
+ condition
+
+ - HAL
+
+
+
+ DMA update
+
+ - HAL_DMA_Init(): update to
+ check compatibility between
+ FIFO threshold level and size
+ of the memory burst
+
+ - HAL
+
+
+
+ QSPI update
+
+ - QSPI_HandleTypeDef structure:
+ Update transfer parameters on
+ uint32_t instead of uint16_t
+
+ - HAL
+
+
+
+ UART/USART/IrDA/SMARTCARD update
+
+ - DMA Receive
+ process; the code has been
+ updated to clear the USART
+ OVR flag before
+ enabling DMA receive
+ request.
+ - UART_SetConfig() update to
+ manage correctly USART6
+ instance that is not available
+ on STM32F410Tx devices
+
+ - HAL
+
+
+
+ CAN update
+
+ - Remove Lock
+ mechanism from HAL_CAN_Transmit_IT()
+ and HAL_CAN_Receive_IT()
+
+
+
+
+ processes
+
+ - HAL
+
+
+
+ TIM update
+
+ - Add
+ __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY()
+ macro to disable Master output
+ without check on TIM channel
+ state.
+ - Update HAL_TIMEx_ConfigBreakDeadTime()
+ to fix TIM BDTR register
+ corruption.
+
+ - HAL
+
+
+
+ I2C update
+
+ - Update
+ HAL_I2C_Master_Transmit()
+ and HAL_I2C_Slave_Transmit()
+ to avoid sending extra
+ bytes at the end of the
+ transmit processes
+ - Update
+ HAL_I2C_Mem_Read()
+ API to fix wrong check on
+ misused parameter Size
+ - Update
+ I2C_MasterReceive_RXNE()
+ and I2C_MasterReceive_BTF()
+ static APIs to enhance Master
+ sequential reception process.
+
+ - HAL
+
+
+
+ SPI update
+
+ - Add transfer
+ abort APIs and associated
+ callbacks in interrupt mode
+
+ - HAL_SPI_Abort()
+ - HAL_SPI_Abort_IT()
+ - HAL_SPI_AbortCpltCallback()
+
+
+ - HAL
+
+
+
+ I2S update
+
+ - Add specific
+
+
+
+
+ callback API to manage I2S
+ full duplex end of transfer
+ process:
+
+ - HAL_I2S_TxCpltCallback()
+ and HAL_I2S_RxCpltCallback()
+ API's will be replaced with
+ only
+ HAL_I2SEx_TxRxCpltCallback()
+ API.
+
+ - Update I2S
+ Transmit/Receive polling
+ process to manage Overrun
+ and Underrun errors
+ - Move
+ the I2S clock input
+ frequency calculation to
+ HAL RCC driver.
+ - Update the
+ HAL I2SEx driver to keep only
+ full duplex feature.
+ - HAL_I2S_Init()
+ API updated to
+
+ - Fix wrong
+ I2S clock calculation when
+ PCM mode is used.
+ - Return
+ state HAL_I2S_ERROR_PRESCALER when
+ the I2S clock is wrongly configured
+
+
+
+
+ - HAL
+
+
+
+ LTDC update
+
+ - Optimize HAL_LTDC_IRQHandler()
+ function by using direct
+ register read
+ - Rename the
+ following API's
+
+ - HAL_LTDC_Relaod() by HAL_LTDC_Reload()
+ - HAL_LTDC_StructInitFromVideoConfig() by HAL_LTDCEx_StructInitFromVideoConfig()
+ - HAL_LTDC_StructInitFromAdaptedCommandConfig() by HAL_LTDCEx_StructInitFromAdaptedCommandConfig()
+
+ - Add new
+ defines for LTDC layers
+ (LTDC_LAYER_1 / LTDC_LAYER_2)
+ - Remove unused
+ asserts
+
+ - HAL
+
+
+
+ USB PCD
+ update
+
+ - Flush all TX
+ FIFOs on USB Reset
+ - Remove Lock
+ mechanism from HAL_PCD_EP_Transmit()
+ and HAL_PCD_EP_Receive()
+
+
+
+
+ API's
+
+
+
+ - LL
+
+
+
+ USB update
+
+ - Enable DMA
+ Burst mode for USB OTG HS
+ - Fix SD card
+ detection issue
+
+ - LL
+
+
+
+ SDMMC update
+
+ - Add new SDMMC_CmdSDEraseStartAdd,
+ SDMMC_CmdSDEraseEndAdd,
+ SDMMC_CmdOpCondition
+ and SDMMC_CmdSwitch
+ functions
+
+
+ V1.6.0
+
+
+
+ / 04-November-2016
+ Main Changes
+
+ - Add support of STM32F413xx
+ and STM32F423xx
+ devices
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - HAL
+
+
+
+ CAN update
+
+ - Update to add
+ the support of 3 CAN management
+
+ - HAL
+
+
+
+ CRYP update
+
+ - Update to add
+ the support of AES features
+
+ - HAL
+
+
+
+ DFSDM update
+
+ - Add
+ definitions for new external
+ trigger filters
+ - Add
+ definition for new Channels
+ 4, 5, 6 and 7
+ - Add
+ functions and API for Filter
+ state configuration and management
+ - Add new
+ functions:
+
+ - HAL_DFSDM_BitstreamClock_Start()
+ - HAL_DFSDM_BitstreamClock_Stop()
+ - HAL_DFSDM_BitStreamClkDistribution_Config()
+
+
+ - HAL
+
+
+
+ DMA
+
+ - Add the
+ support of DMA Channels from
+ 8 to 15
+ - Update HAL_DMA_DeInit()
+ function with the check on
+ DMA stream instance
+
+ - HAL
+
+
+
+ DSI update
+
+
+
+ - Update HAL_DSI_ConfigHostTimeouts()
+ and HAL_DSI_Init()
+
+
+
+
+ functions to avoid scratch in
+ DSI_CCR register
+
+ - HAL
+
+
+
+ FLASH update
+
+ - Enhance FLASH_WaitForLastOperation()
+ function implementation
+ - Update
+ __HAL_FLASH_GET_FLAG()
+ macro implementation
+
+ - HAL
+
+
+
+ GPIO update
+
+ - Add
+ specific alternate functions
+ definitions
+
+ - HAL
+
+
+
+ I2C update
+
+ - Update I2C_DMAError()
+ function implementation to
+ ignore DMA FIFO error
+
+ - HAL
+
+
+
+ I2S update
+
+ - Enhance
+ HAL_I2S_Init()
+ implementation to test on
+ PCM_SHORT and PCM_LONG
+ standards
+
+ - HAL
+
+
+
+ IRDA update
+
+ - Add new
+ functions and call backs for
+ Transfer Abort
+
+ - HAL_IRDA_Abort()
+ - HAL_IRDA_AbortTransmit()
+ - HAL_IRDA_AbortReceive()
+ - HAL_IRDA_Abort_IT()
+ - HAL_IRDA_AbortTransmit_IT()
+ - HAL_IRDA_AbortReceive_IT()
+ - HAL_IRDA_AbortCpltCallback()
+ - HAL_IRDA_AbortTransmitCpltCallback()
+
+
+
+
+
+
+ - HAL_IRDA_AbortReceiveCpltCallback()
+
+
+ - HAL
+
+
+
+ PCD update
+
+
+
+ - Update HAL_PCD_GetRxCount()
+ function implementation
+
+ - HAL
+
+
+
+ RCC update
+
+ - Update
+ __HAL_RCC_HSE_CONFIG()
+ macro implementation
+ - Update __HAL_RCC_LSE_CONFIG()
+ macro implementation
+
+ - HAL
+
+
+
+ SMARTCARD update
+
+
+
+ - Add new
+ functions and call backs for
+ Transfer Abort
+
+ - HAL_ SMARTCARD_Abort()
+ - HAL_ SMARTCARD_AbortTransmit()
+ - HAL_ SMARTCARD_AbortReceive()
+ - HAL_ SMARTCARD_Abort_IT()
+ - HAL_ SMARTCARD_AbortTransmit_IT()
+ - HAL_ SMARTCARD_AbortReceive_IT()
+ - HAL_ SMARTCARD_AbortCpltCallback()
+ - HAL_ SMARTCARD_AbortTransmitCpltCallback()
+ - HAL_ SMARTCARD_AbortReceiveCpltCallback()
+
+
+ - HAL
+
+
+
+ TIM update
+
+ - Update HAL_TIMEx_RemapConfig()
+ function to manage TIM
+ internal trigger remap:
+ LPTIM or TIM3_TRGO
+
+ - HAL
+
+
+
+ UART update
+
+ - Add
+ Transfer abort functions and
+ callbacks
+
+ - HAL
+
+
+
+ USART update
+
+ - Add
+ Transfer abort functions and
+ callbacks
+
+
+ V1.5.2
+
+
+
+ / 22-September-2016
+ Main Changes
+
+ - HAL
+
+
+
+ I2C update
+
+ - Fix wrong
+ behavior in consecutive
+ transfers in case of single
+ byte transmission
+ (Master/Memory Receive
+ interfaces)
+ - Update
+ HAL_I2C_Master_Transmit_DMA()
+ /
+ HAL_I2C_Master_Receive_DMA()/
+ HAL_I2C_Slave_Transmit_DMA()
+ and
+ HAL_I2C_Slave_Receive_DMA() to
+ manage addressing phase
+ through interruption instead
+ of polling
+ - Add
+ a check on I2C handle
+ state at start of all I2C
+ API's to ensure that I2C is ready
+ - Update I2C
+ API's (Polling, IT and DMA
+ interfaces) to manage I2C XferSize
+ and XferCount
+ handle parameters instead of
+ API size parameter to help
+ user to get information of
+ counter in case of
+ error.
+ - Update Abort
+ functionality to manage DMA
+ use case
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - Update to
+ disable Own Address
+ before setting the new Own
+ Address
+ configuration:
+
+ - Update
+ HAL_FMPI2C_Init()
+ to disable FMPI2C_OARx_EN
+ bit before any
+ configuration in OARx
+ registers
+
+
+ - HAL
+
+
+
+ CAN update
+
+ - Update CAN
+ receive processes to set CAN
+ RxMsg
+ FIFONumber
+ parameter
+
+ - HAL
+
+
+
+ UART update
+
+ - Update UART
+
+
+
+ handle TxXferCount
+ and RxXferCount parameters
+
+
+
+
+ as volatile to avoid
+ eventual issue with High Speed
+ optimization
+
+
+ V1.5.1
+
+
+
+ / 01-July-2016
+ Main Changes
+
+ - HAL
+
+
+
+ GPIO update
+
+ - HAL_GPIO_Init()/HAL_GPIO_DeInit()
+ API's:
+ update GPIO_GET_INDEX()
+ macro implementation to
+ support all GPIO's
+
+ - HAL
+
+
+
+ SPI update
+
+ - Fix
+ regression issue:
+ retore HAL_SPI_DMAPause()
+ and HAL_SPI_DMAResume() API's
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - Fix FSMC
+ macros compilation warnings
+ with STM32F412Rx devices
+
+ - HAL
+
+
+
+ DMA update
+
+ - HAL_DMA_PollFortransfer() API clean
+ up
+
+
+
+ - HAL
+
+
+
+ PPP update(PPP refers to
+ IRDA, UART, USART and SMARTCARD)
+
+ - Update
+
+
+
+ HAL_PPP_IRQHandler()
+ to add a check on interrupt
+ source before managing the
+ error
+
+
+
+ - HAL
+
+
+
+ QSPI update
+
+ - Implement
+ workaround to fix the
+ limitation pronounced
+
+
+
+ in
+ the Errata
+ sheet 2.1.8 section:
+ In some specific cases,
+ DMA2 data corruption
+ occurs when managing AHB
+ and APB2 peripherals in a
+ concurrent way
+
+
+ V1.5.0
+
+
+
+ / 06-May-2016
+ Main Changes
+
+ - Add support of STM32F412cx,
+
+
+
+
+ STM32F412rx, STM32F412vx and
+ STM32F412zx devices
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - Add
+ new HAL driver for DFSDM peripheral
+ - Enhance
+
+
+
+ HAL delay and time base
+ implementation:
+
+ - Add new
+ drivers
+ stm32f4xx_hal_timebase_rtc_alarm_template.c
+ and
+ stm32f4xx_hal_timebase_rtc_wakeup_template.c
+ which override the native HAL
+ time base functions (defined
+ as weak) to either use the RTC
+ as time base tick source. For
+ more details about the usage
+ of these drivers, please refer
+ to HAL\HAL_TimeBase_RTC
+ examples and
+
+
+
+
+ FreeRTOS-based
+
+
+
+
+ applications
+
+ - The
+
+
+
+ following changes done on the
+ HAL drivers require an update
+ on the application code based
+ on HAL V1.4.4
+
+ - HAL UART,
+ USART, IRDA, SMARTCARD, SPI,
+ I2C,FMPI2C,
+
+
+
+
+ QSPI (referenced
+ as PPP here
+
+
+
+
+ below) drivers
+
+ - Add PPP
+ error management during DMA
+ process. This requires the
+ following updates
+ on user application:
+
+ - Configure
+ and enable the PPP IRQ in
+ HAL_PPP_MspInit()
+ function
+ - In stm32f4xx_it.c
+
+
+
+
+ file, PPP_IRQHandler()
+ function: add
+
+
+
+
+ a call to HAL_PPP_IRQHandler()
+
+
+
+
+ function
+ - Add and
+ customize the Error
+ Callback API: HAL_PPP_ErrorCallback()
+
+
+ - HAL I2C, FMPI2C (referenced
+ as PPP here
+
+
+
+
+ below) drivers:
+
+ - Update to
+ avoid waiting on STOPF/BTF/AF
+
+
+
+
+ flag under DMA ISR by using
+ the PPP
+
+
+
+ end of transfer interrupt in
+ the DMA transfer process. This
+
+
+
+
+ requires the following
+ updates on user
+ application:
+
+ - Configure
+ and enable the PPP IRQ in
+ HAL_PPP_MspInit()
+ function
+ - In stm32f4xx_it.c
+
+
+
+
+ file, PPP_IRQHandler()
+ function: add
+
+
+
+
+ a call to HAL_PPP_IRQHandler()
+
+
+
+
+ function
+
+
+ - HAL I2C driver:
+
+ - I2C
+ transfer processes IT
+ update: NACK during
+ addressing phase is managed
+ through I2C Error
+ interrupt instead of
+ HAL state
+
+
+
+
+
+ - HAL IWDG driver:
+ rework overall driver for
+ better implementation
+
+ - Remove HAL_IWDG_Start(), HAL_IWDG_MspInit()
+
+
+
+
+ and HAL_IWDG_GetState() APIs
+
+ - HAL WWDG driver:
+ rework overall driver for
+ better implementation
+
+ - Remove HAL_WWDG_Start(), HAL_WWDG_Start_IT(), HAL_WWDG_MspDeInit()
+
+
+
+
+ and HAL_WWDG_GetState()
+
+
+
+
+ APIs
+ - Update
+ the HAL_WWDG_Refresh(WWDG_HandleTypeDef *hwwdg,
+ uint32_t counter)
+ function and API
+ by removing the
+ "counter" parameter
+
+ - HAL QSPI
+ driver: Enhance
+ the DMA transmit process
+ by using PPP TC
+ interrupt instead of waiting
+ on TC flag under DMA
+ ISR. This requires the
+ following updates on user
+ application:
+
+ - Configure
+ and enable the QSPI IRQ
+ in HAL_QSPI_MspInit()
+ function
+ - In stm32f4xx_it.c
+
+
+
+
+ file, QSPI_IRQHandler()
+ function: add
+
+
+
+ a call to HAL_QSPI_IRQHandler()
+
+
+
+
+ function
+
+ - HAL CEC
+ driver: Overall
+ driver rework with
+ compatibility break versus
+ previous HAL version
+
+ - Remove HAL
+ CEC polling Process
+ functions: HAL_CEC_Transmit()
+ and HAL_CEC_Receive()
+ - Remove HAL
+ CEC receive interrupt
+ process function HAL_CEC_Receive_IT()
+ and enable the "receive"
+ mode during the Init
+ phase
+ - Rename HAL_CEC_GetReceivedFrameSize()
+ funtion
+ to HAL_CEC_GetLastReceivedFrameSize()
+ - Add new HAL
+ APIs: HAL_CEC_SetDeviceAddress()
+ and HAL_CEC_ChangeRxBuffer()
+ - Remove
+ the 'InitiatorAddress'
+ field from the CEC_InitTypeDef
+ structure and manage
+ it as a parameter in
+ the HAL_CEC_Transmit_IT()
+ function
+ - Add new
+ parameter 'RxFrameSize'
+ in HAL_CEC_RxCpltCallback()
+ function
+ - Move CEC Rx
+ buffer pointer from CEC_HandleTypeDef
+ structure to CEC_InitTypeDef
+ structure
+
+
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - Update HAL_RCC_ClockConfig()
+ function to adjust the SystemCoreClock
+ - Rename macros
+ and Literals:
+
+ - RCC_PERIPHCLK_CK48 by RCC_PERIPHCLK_CLK48
+ - IS_RCC_CK48CLKSOURCE by
+
+
+
+
+ IS_RCC_CLK48CLKSOURCE
+ - RCC_CK48CLKSOURCE_PLLSAIP
+
+
+
+
+ by RCC_CLK48CLKSOURCE_PLLSAIP
+ - RCC_SDIOCLKSOURCE_CK48
+
+
+
+ by RCC_SDIOCLKSOURCE_CLK48
+ - RCC_CK48CLKSOURCE_PLLQ
+
+
+
+
+ by RCC_CLK48CLKSOURCE_PLLQ
+
+ - Update HAL_RCCEx_GetPeriphCLKConfig()
+ and HAL_RCCEx_PeriphCLKConfig()
+
+
+
+
+ functions to support TIM Prescaler
+ for STM32F411xx devices
+ - HAL_RCCEx_PeriphCLKConfig() API: update
+ to fix the RTC clock
+ configuration issue
+
+ - HAL
+
+
+
+ CEC update
+
+ - Overall
+ driver rework with break
+ of compatibility with HAL
+ V1.4.4
+
+ - Remove the
+ HAL CEC polling Process: HAL_CEC_Transmit()
+ and HAL_CEC_Receive()
+
+
+
+
+
+
+ - Remove the
+ HAL CEC receive interrupt
+ process (HAL_CEC_Receive_IT())
+
+
+
+
+ and manage the "Receive"
+ mode enable within the Init
+ phase
+ - Rename HAL_CEC_GetReceivedFrameSize()
+ function to HAL_CEC_GetLastReceivedFrameSize()
+
+
+
+
+ function
+ - Add new HAL
+ APIs: HAL_CEC_SetDeviceAddress()
+ and HAL_CEC_ChangeRxBuffer()
+ - Remove
+ the 'InitiatorAddress'
+ field from the CEC_InitTypeDef
+ structure and manage
+ it as a parameter in
+ the HAL_CEC_Transmit_IT()
+ function
+ - Add new
+ parameter 'RxFrameSize'
+ in HAL_CEC_RxCpltCallback()
+ function
+ - Move CEC Rx
+ buffer pointer from CEC_HandleTypeDef
+ structure to CEC_InitTypeDef
+ structure
+
+ - Update driver
+ to implement the new CEC state
+ machine:
+
+ - Add
+ new "rxState" field
+
+
+
+
+ in CEC_HandleTypeDef
+ structure to provide the CEC state
+
+
+
+
+ information related to Rx Operations
+ - Rename
+ "state" field in CEC_HandleTypeDef
+ structure to "gstate":
+
+
+
+ CEC state
+
+
+
+
+ information related to
+ global Handle management and
+ Tx Operations
+ - Update CEC
+ process to manage the new
+ CEC states.
+ - Update
+ __HAL_CEC_RESET_HANDLE_STATE()
+ macro to handle the new CEC
+ state parameters (gState,
+ rxState)
+
+
+
+
+ - HAL
+
+
+
+ UART, USART, SMARTCARD and
+ IRDA (referenced
+
+
+
+ as PPP here below) update
+
+ - Update
+ Polling management:
+
+ - The user
+ Timeout value must be
+ estimated for the overall
+ process duration: the
+ Timeout measurement is
+ cumulative
+
+ - Update DMA
+ process:
+
+ - Update the
+ management of PPP peripheral
+ errors during DMA process.
+ This requires the following
+ updates in user application:
+
+ - Configure
+ and enable the PPP IRQ in
+ HAL_PPP_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, PPP_IRQHandler()
+ function: add a call to HAL_PPP_IRQHandler()
+
+
+
+
+ function
+ - Add and
+ customize the Error
+ Callback API: HAL_PPP_ErrorCallback()
+
+
+
+ - HAL
+
+
+
+ FMC update
+
+ - Update FMC_NORSRAM_Init()
+ to remove the Burst access
+ mode configuration
+ - Update FMC_SDRAM_Timing_Init()
+ to fix initialization issue
+ when configuring 2 SDRAM banks
+
+ - HAL
+
+
+
+ HCD update
+
+ - Update HCD_Port_IRQHandler()
+ to unmask disconnect IT only
+ when the port is disabled
+
+ - HAL
+
+
+
+ I2C/FMPI2C
+ update
+
+ - Update Polling
+
+
+
+
+ management:
+
+ - The Timeout
+ value must be estimated for
+ the overall process
+ duration: the
+ Timeout measurement is
+ cumulative
+
+ - Add the
+ management of Abort
+ service: Abort DMA
+ transfer through interrupt
+
+ - In the case
+ of Master Abort IT transfer
+ usage:
+
+ - Add new
+
+
+
+ user HAL_I2C_AbortCpltCallback()
+ to inform user of the end
+ of abort process
+ - A new
+ abort state is defined in
+ the HAL_I2C_StateTypeDef structure
+
+
+ - Add the
+ management of I2C peripheral
+ errors, ACK failure and STOP
+ condition detection during DMA
+ process. This requires the
+ following updates on user
+ application:
+
+ - Configure
+ and enable the I2C IRQ in
+ HAL_I2C_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, I2C_IRQHandler()
+ function: add a call to
+ HAL_I2C_IRQHandler()
+ function
+ - Add and
+ customize the Error Callback
+ API: HAL_I2C_ErrorCallback()
+ - Refer to
+ the I2C_EEPROM or
+ I2C_TwoBoards_ComDMA project
+ examples usage of the API
+
+ - NACK error
+ during addressing phase is
+ returned through interrupt
+ instead of previously through
+ I2C transfer API's
+ - I2C
+ addressing phase is updated to
+ be managed using interrupt
+ instead of polling (Only
+ for HAL I2C driver)
+
+ - Add new
+ static functions to manage
+ I2C SB, ADDR and ADD10 flags
+
+
+ - HAL
+
+
+
+ SPI update
+
+
+
+ - Overall
+ driver optimization to improve
+ performance in
+ polling/interrupt mode to
+ reach maximum peripheral frequency
+
+ - Polling
+ mode:
+
+ - Replace
+ the use of SPI_WaitOnFlagUnitTimeout()
+ function by "if" statement
+ to check on RXNE/TXE flage
+ while transferring data
+
+
+
+
+
+
+
+ - Interrupt
+
+
+
+ mode:
+
+ - Minimize
+ access on SPI registers
+
+ - All modes:
+
+ - Add the
+ USE_SPI_CRC switch to
+ minimize the number of
+ statements when CRC
+ calculation is disabled
+ - Update timeout
+
+
+
+
+ management to check on
+ global processes
+ - Update
+ error code management in
+ all processes
+
+
+ - Update DMA
+ process:
+
+ - Add the
+ management of SPI peripheral
+ errors during DMA process.
+ This requires the following
+ updates in the user
+ application:
+
+ - Configure
+ and enable the SPI IRQ in
+ HAL_SPI_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, SPI_IRQHandler()
+ function: add a call to HAL_SPI_IRQHandler()
+
+
+
+
+ function
+ - Add and
+ customize the Error
+ Callback API: HAL_SPI_ErrorCallback()
+ - Refer to
+ the following example
+ which describe the
+ changes: SPI_FullDuplex_ComDMA
+
+
+ - Fix
+ regression in polling mode:
+
+ - Add
+ preparing data to transmit
+ in case of slave mode in HAL_SPI_TransmitReceive()
+ and HAL_SPI_Transmit()
+ - Add to
+ manage properly the overrun
+ flag at the end of a HAL_SPI_TransmitReceive()
+
+ - Fix
+ regression in interrupt mode:
+
+ - Add a wait
+ on TXE flag in SPI_CloseTx_ISR()
+ and in SPI_CloseTxRx_ISR()
+ - Add to
+ manage properly
+ the overrun flag in SPI_CloseRxTx_ISR()
+ and SPI_CloseRx_ISR()
+
+
+
+
+ - HAL
+
+
+
+ DMA2D update
+
+ - Update the
+ HAL_DMA2D_DeInit()
+ function to:
+
+ - Abort
+ transfer in case of ongoing
+ DMA2D transfer
+ - Reset DMA2D
+ control registers
+
+ - Update
+ HAL_DMA2D_Abort()
+ to disable DMA2D interrupts
+ after stopping transfer
+ - Optimize
+ HAL_DMA2D_IRQHandler()
+ by reading status registers
+ only once
+ - Update
+ HAL_DMA2D_ProgramLineEvent()
+ function to:
+
+ - Return HAL
+ error state in case of wrong
+ line value
+ - Enable line
+ interrupt after setting the
+ line watermark configuration
+
+ - Add new
+ HAL_DMA2D_CLUTLoad()
+ and HAL_DMA2D_CLUTLoad_IT() functions
+
+
+
+
+ to start DMA2D CLUT loading
+
+ - HAL_DMA2D_CLUTLoading_Abort()
+ function to abort the DMA2D
+ CLUT loading
+ - HAL_DMA2D_CLUTLoading_Suspend()
+ function to suspend the
+ DMA2D CLUT loading
+ - HAL_DMA2D_CLUTLoading_Resume()
+ function to resume the DMA2D
+ CLUT loading
+
+ - Add new DMA2D
+ dead time management:
+
+ - HAL_DMA2D_EnableDeadTime()
+ function to enable DMA2D
+ dead time feature
+ - HAL_DMA2D_DisableDeadTime()
+ function to disable DMA2D
+ dead time feature
+ - HAL_DMA2D_ConfigDeadTime()
+ function to configure dead
+ time
+
+ - Update the
+ name of DMA2D Input/Output
+ color mode defines to be more
+
+
+
+ clear for
+ user (DMA2D_INPUT_XXX for
+ input layers Colors,
+ DMA2D_OUTPUT_XXX for output
+ framebuffer Colors)
+
+
+
+ - HAL
+
+
+
+ LTDC update
+
+
+
+ - Update HAL_LTDC_IRQHandler()
+ to manage the case of reload
+ interrupt
+ - Add new
+ callback API HAL_LTDC_ReloadEventCallback()
+ - Add HAL_LTDC_Reload()
+ to configure LTDC reload
+ feature
+ - Add new No
+ Reload LTDC variant APIs
+
+ - HAL_LTDC_ConfigLayer_NoReload() to
+ configure the LTDC Layer
+ according to the specified
+ without reloading
+ - HAL_LTDC_SetWindowSize_NoReload() to set
+ the LTDC window size without
+ reloading
+ - HAL_LTDC_SetWindowPosition_NoReload() to set
+ the LTDC window position
+ without reloading
+ - HAL_LTDC_SetPixelFormat_NoReload() to
+ reconfigure the pixel format
+ without reloading
+ - HAL_LTDC_SetAlpha_NoReload() to
+ reconfigure the layer alpha
+ value without reloading
+ - HAL_LTDC_SetAddress_NoReload() to
+ reconfigure the frame buffer
+ Address without reloading
+ - HAL_LTDC_SetPitch_NoReload() to
+ reconfigure the pitch for
+ specific cases
+ - HAL_LTDC_ConfigColorKeying_NoReload() to
+ configure the color keying
+ without reloading
+ - HAL_LTDC_EnableColorKeying_NoReload() to enable
+ the color keying without
+ reloading
+ - HAL_LTDC_DisableColorKeying_NoReload() to
+ disable the color keying
+ without reloading
+ - HAL_LTDC_EnableCLUT_NoReload() to enable
+ the color lookup table
+ without reloading
+ - HAL_LTDC_DisableCLUT_NoReload() to
+ disable the color lookup
+ table without reloading
+ - Note: Variant
+ functions with _NoReload
+ post fix allows to set the
+ LTDC configuration/settings
+ without immediate reload.
+ This is useful in case when
+ the program requires to
+ modify several LTDC settings
+ (on one or both layers) then
+ applying (reload) these
+ settings in one shot by
+ calling the function HAL_LTDC_Reload
+
+
+ - HAL
+
+
+
+ RTC update
+
+ - Add new
+ timeout implementation based
+ on cpu
+ cycles
+ for ALRAWF, ALRBWF
+ and WUTWF flags
+
+
+
+ - HAL
+
+
+
+ SAI update
+
+ - Update SAI
+ state in case of TIMEOUT error
+ within the HAL_SAI_Transmit()
+ / HAL_SAI_Receive()
+ - Update HAL_SAI_IRQHandler:
+
+ - Add error
+ management in case DMA
+ errors through XferAbortCallback()
+ and HAL_DMA_Abort_IT()
+ - Add error
+ management in case of IT
+
+ - Move SAI_BlockSynchroConfig()
+ and SAI_GetInputClock()
+
+
+
+
+ functions to
+ stm32f4xx_hal_sai.c/.h files
+ (extension files are kept
+ empty for projects
+ compatibility reason)
+
+
+
+ - HAL
+
+
+
+ DCMI update
+
+ - Rename DCMI_DMAConvCplt
+ to DCMI_DMAXferCplt
+ - Update HAL_DCMI_Start_DMA()
+ function to Enable the
+ DCMI peripheral
+ - Add new
+ timeout implementation based
+ on cpu
+ cycles for DCMI stop
+ - Add HAL_DCMI_Suspend()
+ function to suspend DCMI
+ capture
+ - Add HAL_DCMI_Resume()
+ function to resume capture
+ after DCMI suspend
+ - Update lock
+ mechanism for DCMI process
+ - Update HAL_DCMI_IRQHandler()
+ function to:
+
+ - Add error
+ management in case DMA
+ errors through XferAbortCallback()
+ and HAL_DMA_Abort_IT()
+ - Optimize
+ code by using direct
+ register read
+
+
+
+
+ - HAL
+
+
+
+ DMA
+ update
+
+ - Add new APIs
+ HAL_DMA_RegisterCallback()
+ and HAL_DMA_UnRegisterCallback
+ to register/unregister the
+ different callbacks identified
+ by the enum
+ typedef HAL_DMA_CallbackIDTypeDef
+ - Add new API HAL_DMA_Abort_IT()
+ to abort DMA transfer under
+ interrupt context
+
+ - The new
+ registered Abort callback is
+ called when DMA transfer
+ abortion is completed
+
+ - Add the check
+ of compatibility between FIFO
+ threshold level and size of
+ the memory burst in the HAL_DMA_Init()
+ API
+ - Add new Error
+ Codes: HAL_DMA_ERROR_PARAM,
+ HAL_DMA_ERROR_NO_XFER and
+ HAL_DMA_ERROR_NOT_SUPPORTED
+ - Remove all
+ DMA states related to
+ MEM0/MEM1 in HAL_DMA_StateTypeDef
+
+ - HAL
+
+
+
+ IWDG
+ update
+
+ - Overall
+ rework of the driver for a
+ more
+ efficient implementation
+
+ - Remove the
+ following APIs:
+
+ - HAL_IWDG_Start()
+ - HAL_IWDG_MspInit()
+ - HAL_IWDG_GetState()
+
+ - Update
+ implementation:
+
+ - HAL_IWDG_Init(): this
+ function insures the
+ configuration and the
+ start of the IWDG counter
+ - HAL_IWDG_Refresh(): this
+ function insures the
+ reload of the IWDG counter
+
+ - Refer to
+ the following example to
+ identify the changes: IWDG_Example
+
+
+ - HAL
+
+
+
+ LPTIM
+ update
+
+ - Update HAL_LPTIM_TimeOut_Start_IT()
+ and HAL_LPTIM_Counter_Start_IT(
+ ) APIs to configure WakeUp
+ Timer EXTI interrupt to be
+ able to wakeup
+ MCU from low power mode by
+ pressing the EXTI line.
+ - Update HAL_LPTIM_TimeOut_Stop_IT()
+ and HAL_LPTIM_Counter_Stop_IT(
+ ) APIs to disable WakeUp
+ Timer EXTI interrupt.
+
+ - HAL
+
+
+
+ NOR update
+
+ - Update
+ NOR_ADDR_SHIFT macro implementation
+
+ - HAL
+
+
+
+ PCD update
+
+ - Update HAL_PCD_IRQHandler()
+ to get HCLK frequency before
+ setting TRDT value
+
+ - HAL
+
+
+
+ QSPI
+ update
+
+
+
+ - Update to
+ manage QSPI error management
+ during DMA process
+ - Improve the
+ DMA transmit process by using
+ QSPI TC interrupt instead of
+ waiting loop on TC flag under
+ DMA ISR
+ - These two
+ improvements require the
+ following updates on user
+ application:
+
+ - Configure
+ and enable the QSPI IRQ in HAL_QSPI_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, QSPI_IRQHandler()
+ function: add a call to HAL_QSPI_IRQHandler()
+
+
+
+ function
+ - Add and
+ customize the Error Callback
+ API: HAL_QSPI_ErrorCallback()
+
+ - Add the
+ management of non-blocking
+ transfer abort service: HAL_QSPI_Abort_IT().
+
+
+
+
+ In this case the user must:
+
+ - Add new
+ callback HAL_QSPI_AbortCpltCallback()
+ to inform user at the end of
+ abort process
+ - A new value
+ of State in the HAL_QSPI_StateTypeDef
+ provides the current state
+ during the abort phase
+
+ - Polling
+ management update:
+
+ - The Timeout
+ value user must be estimated
+ for the overall process
+ duration: the
+ Timeout measurement is
+ cumulative.
+
+ - Refer to the
+ following examples, which
+ describe the changes:
+
+ - QSPI_ReadWrite_DMA
+ - QSPI_MemoryMapped
+ - QSPI_ExecuteInPlace
+
+
+
+
+
+ - Add two new
+ APIs for the QSPI fifo
+ threshold:
+
+ - HAL_QSPI_SetFifoThreshold():
+ configure the FIFO threshold
+ of the QSPI
+ - HAL_QSPI_GetFifoThreshold(): give the
+ current FIFO threshold
+
+ - Fix wrong
+ data size management in HAL_QSPI_Receive_DMA()
+
+
+
+ - HAL
+
+
+
+ ADC update
+
+ - Add new
+ __HAL_ADC_PATH_INTERNAL_VBAT_DISABLE()
+ macro for STM32F42x and
+ STM32F43x devices to
+ provide the possibility
+ to convert VrefInt
+ channel when both VrefInt
+ and Vbat
+ channels are selected.
+
+ - HAL
+
+
+
+ SPDIFRX update
+
+ - Overall driver
+ update for wait on flag
+ management optimization
+
+ - HAL
+
+
+
+ WWDG update
+
+ - Overall
+ rework of the driver for more
+ efficient implementation
+
+ - Remove the
+ following APIs:
+
+ - HAL_WWDG_Start()
+ - HAL_WWDG_Start_IT()
+ - HAL_WWDG_MspDeInit()
+ - HAL_WWDG_GetState()
+
+ - Update
+ implementation:
+
+ - HAL_WWDG_Init()
+
+ - A new
+
+
+
+ parameter in the Init
+ Structure: EWIMode
+
+ - HAL_WWDG_MspInit()
+ - HAL_WWDG_Refresh()
+
+ - This
+ function insures the
+ reload of the counter
+ - The
+ "counter" parameter has
+ been removed
+
+ - HAL_WWDG_IRQHandler()
+ - HAL_WWDG_EarlyWakeupCallback() is the
+ new prototype of HAL_WWDG_WakeUpCallback()
+
+
+ - Refer to the
+ following example to identify
+ the changes: WWDG_Example
+
+
+ V1.4.4
+
+
+
+ / 22-January-2016
+ Main Changes
+
+ - HAL
+
+
+
+ Generic update
+
+ - stm32f4xx_hal_conf_template.h
+
+ - Optimize
+ HSE Startup Timeout value
+ from 5000ms to 100 ms
+ - Add new
+ define LSE_STARTUP_TIMEOUT
+ - Add new
+ define USE_SPI_CRC for code
+ cleanup when the CRC
+ calculation is disabled.
+
+ - Update HAL
+ drivers to support MISRA C
+ 2004 rule 10.6
+ - Add new
+ template driver to
+ configure timebase
+ using TIMER :
+
+ - stm32f4xx_hal_timebase_tim_template.c
+
+
+
+
+ - HAL
+
+
+
+ CAN update
+
+ - Update HAL_CAN_Transmit()
+ and HAL_CAN_Transmit_IT()
+
+
+
+
+ functions to unlock
+ process when all Mailboxes are
+ busy
+
+
+
+ - HAL
+
+
+
+ DSI update
+
+ - Update HAL_DSI_SetPHYTimings()
+ functions to use the correct
+ mask
+
+ - HAL
+
+
+
+ UART update
+
+ - Several
+ update on HAL UART driver to
+ implement the new UART state
+ machine:
+
+ - Add new
+ field in UART_HandleTypeDef
+ structure: "rxState",
+
+
+
+
+ UART state information
+ related to Rx Operations
+ - Rename
+ "state" field in UART_HandleTypeDef
+ structure by "gstate":
+
+
+
+ UART state information
+ related to global Handle
+ management and Tx Operations
+ - Update UART
+ process to manage the new
+ UART states.
+ - Update
+ __HAL_UART_RESET_HANDLE_STATE()
+ macro to handle the new UART
+ state parameters (gState,
+ rxState)
+
+ - Update
+ UART_BRR_SAMPLING16() and
+ UART_BRR_SAMPLING8() Macros to
+ fix wrong baudrate
+ calculation.
+
+
+
+ - HAL
+
+
+
+ IRDA update
+
+ - Several
+ update on HAL IRDA driver to
+ implement the new UART state
+ machine:
+
+ - Add new
+ field in IRDA_HandleTypeDef
+ structure: "rxState",
+
+
+
+
+ IRDA state information
+ related to Rx Operations
+ - Rename
+ "state" field in UART_HandleTypeDef
+ structure by "gstate":
+
+
+
+ IRDA state information
+ related to global Handle
+ management and Tx Operations
+ - Update IRDA
+ process to manage the new
+ UART states.
+ - Update
+ __HAL_IRDA_RESET_HANDLE_STATE()
+ macro to handle the new IRDA
+ state parameters (gState,
+ rxState)
+
+ - Removal of
+ IRDA_TIMEOUT_VALUE define
+ - Update IRDA_BRR()
+ Macro to fix wrong baudrate
+ calculation
+
+ - HAL
+
+
+
+ SMARTCARD update
+
+ - Several
+ update on HAL SMARTCARD driver
+ to implement the new UART
+ state machine:
+
+ - Add new
+ field in SMARTCARD_HandleTypeDef
+ structure: "rxState",
+
+
+
+
+ SMARTCARDstate
+ information related to Rx Operations
+ - Rename
+ "state" field in UART_HandleTypeDef
+ structure by "gstate":
+
+
+
+ SMARTCARDstate
+ information related to
+ global Handle management and
+ Tx Operations
+ - Update SMARTCARD
+
+
+
+
+ process to manage the new
+ UART states.
+ - Update
+ __HAL_SMARTCARD_RESET_HANDLE_STATE()
+ macro to handle the
+ new SMARTCARD state
+ parameters (gState,
+ rxState)
+
+ - Update
+ SMARTCARD_BRR()
+ macro to fix wrong baudrate
+ calculation
+
+
+
+ - HAL
+ RCC
+ update
+
+ - Add new
+ default define value for HSI
+ calibration
+ "RCC_HSICALIBRATION_DEFAULT"
+ - Optimize
+ Internal oscillators and PLL
+ startup timeout
+ - Update to
+ avoid the disable for HSE/LSE
+ oscillators before setting the
+ new RCC HSE/LSE configuration
+ and add the following notes in
+ HAL_RCC_OscConfig()
+ API description:
+
+
+
+
+
+
+
+
+
+
+ *
+ @note Transitions LSE
+ Bypass to LSE On and LSE On to LSE
+ Bypass are not
+
+
+
+
+
+
+
+
+
+
+
+ *
+ supported by this
+ API. User should request a
+ transition to LSE Off
+
+
+
+
+
+
+
+
+
+
+
+ *
+ first and then LSE
+ On or LSE Bypass.
+
+
+
+
+
+
+
+
+
+
+ *
+ @note Transition HSE
+ Bypass to HSE On and HSE On to HSE
+ Bypass are not
+
+
+
+
+
+
+
+
+
+
+
+ *
+ supported by this
+ API. User should request a
+ transition to HSE Off
+
+
+
+
+
+
+
+
+
+
+ *
+ first and then HSE
+ On or HSE Bypass.
+
+
+ - Optimize
+ the HAL_RCC_ClockConfig()
+ API implementation.
+
+
+
+ - HAL
+
+
+
+ DMA2D update
+
+ - Update
+ HAL_DMA2D_Abort()
+ Function to end current DMA2D
+ transfer properly
+ - Update
+ HAL_DMA2D_PollForTransfer()
+ function to add poll for
+ background CLUT loading (layer
+ 0 and layer 1).
+ - Update
+ HAL_DMA2D_PollForTransfer()
+ to set the corresponding ErrorCode
+ in case of error occurrence
+ - Update
+ HAL_DMA2D_ConfigCLUT()
+ function to fix wrong CLUT
+ size and color mode settings
+ - Removal of
+ useless macro __HAL_DMA2D_DISABLE()
+ - Update
+ HAL_DMA2D_Suspend()
+ to manage correctly the case
+ where no transfer is on going
+ - Update
+ HAL_DMA2D_Resume() to
+
+
+
+
+ manage correctly the case
+ where no transfer is on going
+ - Update
+ HAL_DMA2D_Start_IT()
+ to enable all required
+ interrupts before enabling the
+ transfer.
+ - Add
+ HAL_DMA2D_CLUTLoad_IT()
+ Function to allow loading a
+ CLUT with interruption model.
+ - Update
+ HAL_DMA2D_IRQHandler()
+ to manage the following
+ cases :
+
+
+
+ - CLUT
+ transfer complete
+ - CLUT access
+ error
+ - Transfer
+ watermark reached
+
+ - Add new
+ Callback APIs:
+
+ - HAL_DMA2D_LineEventCallback()
+ to signal a transfer
+ watermark reached event
+ - HAL_DMA2D_CLUTLoadingCpltCallback()
+ to signal a CLUT loading
+ complete event
+
+
+
+
+
+ - Miscellaneous
+ Improvement:
+
+ - Add
+ "HAL_DMA2D_ERROR_CAE" new
+ define for CLUT Access error
+ management.
+ - Add assert_param
+ used for parameters check is
+ now done on the top of the
+ exported functions : before
+ locking the process using
+ __HAL_LOCK
+
+
+
+
+
+ - HAL
+
+
+
+ I2C update
+
+ - Add support
+ of I2C repeated start feature:
+
+ - With the
+ following new API's
+
+ - HAL_I2C_Master_Sequential_Transmit_IT()
+ - HAL_I2C_Master_Sequential_Receive_IT()
+ - HAL_I2C_Master_Abort_IT()
+ - HAL_I2C_Slave_Sequential_Transmit_IT()
+ - HAL_I2C_Slave_Sequential_Receive_IT()
+ - HAL_I2C_EnableListen_IT()
+ - HAL_I2C_DisableListen_IT()
+
+ - Add new
+ user callbacks:
+
+ - HAL_I2C_ListenCpltCallback()
+ - HAL_I2C_AddrCallback()
+
+
+ - Update to
+ generate STOP condition when a
+ acknowledge failure error is detected
+ - Several
+ update on HAL I2C driver to
+ implement the new I2C state
+ machine:
+
+ - Add new API
+ to get the I2C mode:
+ HAL_I2C_GetMode()
+ - Update I2C
+ process to manage the new
+ I2C states.
+
+ - Fix wrong behaviour
+ in single byte transmission
+ - Update I2C_WaitOnFlagUntilTimeout() to
+
+
+
+
+ manage the NACK feature.
+ - Update I2C
+ transmission process to
+ support the case data size
+ equal 0
+
+
+
+ - HAL
+
+
+
+ FMPI2C update
+
+ - Add support
+ of FMPI2C repeated start
+ feature:
+
+ - With the
+ following new API's
+
+ - HAL_FMPI2C_Master_Sequential_Transmit_IT()
+ - HAL_FMPI2C_Master_Sequential_Receive_IT()
+ - HAL_FMPI2C_Master_Abort_IT()
+ - HAL_FMPI2C_Slave_Sequential_Transmit_IT()
+ - HAL_FMPI2C_Slave_Sequential_Receive_IT()
+ - HAL_FMPI2C_EnableListen_IT()
+ - HAL_FMPI2C_DisableListen_IT()
+
+ - Add new
+ user callbacks:
+
+ - HAL_FMPI2C_ListenCpltCallback()
+ - HAL_FMPI2C_AddrCallback()
+
+
+ - Several
+ update on HAL I2C driver to
+ implement the new I2C state
+ machine:
+
+ - Add new API
+ to get the FMPI2C mode:
+ HAL_FMPI2C_GetMode()
+ - Update
+ FMPI2C process to manage the
+ new FMPI2C states.
+
+
+
+
+ - HAL
+
+
+
+ SPI update
+
+ - Major Update
+ to improve performance in
+ polling/interrupt mode to
+ reach max frequency:
+
+ - Polling mode
+
+
+
+ :
+
+ - Replace
+ use of SPI_WaitOnFlagUnitTimeout()
+ funnction
+ by "if" statement to check
+ on RXNE/TXE flage
+ while transferring data.
+ - Use API
+ data pointer instead of
+ SPI handle data pointer.
+ - Use a Goto
+ implementation instead of
+ "if..else"
+ statements.
+
+
+
+
+
+
+
+ - Interrupt
+ mode
+
+ - Minimize
+ access on SPI registers.
+ - Split the
+ SPI modes into dedicated
+ static functions to
+ minimize checking
+ statements under HAL_IRQHandler():
+
+ - 1lines/2lines
+
+
+
+ modes
+ - 8 bit/
+ 16 bits data formats
+ - CRC
+ calculation
+ enabled/disabled.
+
+ - Remove
+ waiting loop under ISR
+ when closing
+
+
+
+ the
+ communication.
+
+ - All
+ modes:
+
+ - Adding
+ switch USE_SPI_CRC to
+ minimize number of
+ statements when CRC
+ calculation is disabled.
+ - Update
+ Timeout management to
+ check on global process.
+ - Update
+ Error code management in
+ all processes.
+
+
+ - Add note to
+ the max frequencies reached in
+ all modes.
+ - Add note
+ about Master Receive mode restrictions :
+
+ - Master
+
+
+
+ Receive mode restriction:
+
+ (#) In Master
+ unidirectional receive-only
+ mode (MSTR =1, BIDIMODE=0,
+ RXONLY=0) or
+
+
+
+
+
+ bidirectional receive mode
+ (MSTR=1, BIDIMODE=1,
+ BIDIOE=0), to ensure that
+ the SPI
+
+
+
+
+ does not initiate a new
+ transfer the following
+ procedure has to be
+ respected:
+
+
+
+
+ (##) HAL_SPI_DeInit()
+
+
+
+
+ (##) HAL_SPI_Init()
+
+
+
+
+
+
+
+
+ - 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
+
+
+
+ ETH update
+
+ - Removal of
+ ETH MAC debug register defines
+
+ - HAL
+
+
+
+ FLASH update
+
+ - Update FLASH_MassErase()
+ function to apply correctly
+ voltage range parameter
+
+ - HAL
+
+
+
+ I2S update
+
+ - Update I2S_DMATxCplt()
+ and I2S_DMARxCplt() to manage
+ properly FullDuplex
+ mode without any risk of
+ missing data.
+
+ - LL
+
+
+
+ FMC update
+
+ - Update the FMC_NORSRAM_Init()
+ function to use BurstAccessMode
+ field properly
+
+ - LL
+
+
+
+ FSMC
+
+
+
+ update
+
+ - Update the FSMC_NORSRAM_Init()
+ function to use BurstAccessMode
+ field properly
+
+
+
+
+
+ V1.4.4
+ / 11-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:
+
+ - STM32Fxxx_User_Manual.chm
+
+
+
+
+ files regenerated for HAL
+ V1.4.3
+
+ - HAL
+
+
+
+ ETH update
+
+ - Update HAL_ETH_Init()
+ function to add timeout on the
+ Software reset management
+
+
+ V1.4.2
+
+
+
+ / 10-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.4.1
+
+ - 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:
+
+
+
+
+ - HAL
+
+
+
+ CORTEX update
+
+ - Remove
+ duplication for
+ __HAL_CORTEX_SYSTICKCLK_CONFIG()
+ macro
+
+
+
+ - HAL
+
+
+
+ HASH update
+
+ - Rename HAL_HASH_STATETypeDef
+ to HAL_HASH_StateTypeDef
+ - Rename HAL_HASH_PhaseTypeDef
+ to HAL_HASH_PhaseTypeDef
+
+ - HAL
+
+
+
+ RCC update
+
+ - Add new
+ macros __HAL_RCC_PPP_IS_CLK_ENABLED()
+ to check on Clock
+ enable/disable status
+ - Update
+ __HAL_RCC_USB_OTG_FS_CLK_DISABLE()
+ macro to remove the disable
+ for the SYSCFG
+ - Update HAL_RCC_MCOConfig()
+ API to use new defines for the
+ GPIO Speed
+ - Generic
+ update to improve the
+ PLL VCO min
+ value(100MHz): PLLN, PLLI2S
+ and PLLSAI min value is 50
+ instead of 192
+
+ - HAL
+
+
+
+ FLASH update
+
+ - __HAL_FLASH_INSTRUCTION_CACHE_RESET()
+ macro: update to reset
+ ICRST bit in
+ the ACR register after
+ setting it.
+ - Update to
+ support until 15 FLASH wait
+ state (FLASH_LATENCY_15) for
+ STM32F446xx devices
+
+
+
+
+
+
+
+
+ HAL CRYP update
+
+
+ - Update HAL_CRYP_DESECB_Decrypt()
+ API to fix the inverted pPlainData
+ and pCypherData
+ parameters issue
+
+ - HAL
+
+
+
+ I2S update
+
+ - Update
+ HAL_I2S_Init()
+ API to call
+ __HAL_RCC_I2S_CONFIG() macro
+ when external I2S clock is
+ selected
+
+ - HAL
+
+
+
+ LTDC update
+
+ - Update HAL_LTDC_SetWindowPosition()
+ API to configure
+ Immediate reload register
+ instead of vertical blanking
+ reload register.
+
+ - HAL
+
+
+
+ TIM update
+
+ - Update HAL_TIM_ConfigClockSource()
+ API to check only the
+ required parameters
+
+ - HAL
+
+
+
+ NAND update
+
+ - Update
+ HAL_NAND_Read_Page()/HAL_NAND_Write_Page()/HAL_NAND_Read_SpareArea()
+ APIs to manage correctly the
+ NAND Page access
+
+ - HAL
+
+
+
+ CAN update
+
+ - Update to use
+ "=" instead of "|=" to clear
+ flags in the MSR, TSR, RF0R
+ and RF1R registers
+
+ - HAL
+
+
+
+ HCD update
+
+ - Fix typo in
+ __HAL_USB_OTG_HS_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE()
+ macro implementation
+
+ - HAL
+
+
+
+ PCD update
+
+ - Update HAL_PCD_IRQHandler()
+ API to avoid issue
+ when DMA mode enabled for
+ Status Phase IN stage
+
+ - LL
+
+
+
+ FMC update
+
+ - Update the FMC_NORSRAM_Extended_Timing_Init()
+ API to remove the check
+ on CLKDIvison
+ and DataLatency
+ parameters
+ - Update the FMC_NORSRAM_Init()
+ API to add a check on the PageSize
+ parameter for STM32F42/43xx
+ devices
+
+ - LL
+
+
+
+ FSMC update
+
+ - Update the FSMC_NORSRAM_Extended_Timing_Init()
+ API to remove the check
+ on CLKDIvison
+ and DataLatency
+ parameters
+
+
+ V1.4.1
+
+
+
+ / 09-October-2015
+ Main Changes
+
+ - HAL
+
+
+
+ DSI update
+
+ - Update TCCR
+ register assigned value
+ in HAL_DSI_ConfigHostTimeouts()
+ function
+ - Update WPCR
+ register assigned value
+ in HAL_DSI_Init(),
+
+
+
+
+ HAL_DSI_SetSlewRateAndDelayTuning(),
+
+
+
+
+ HAL_DSI_SetSlewRateAndDelayTuning(),
+
+
+
+
+ HAL_DSI_SetLowPowerRXFilter()
+
+
+
+
+ / HAL_DSI_SetSDD(),
+
+
+
+
+ HAL_DSI_SetLanePinsConfiguration(),
+
+
+
+
+ HAL_DSI_SetPHYTimings(),
+
+
+
+
+ HAL_DSI_ForceTXStopMode(),
+
+
+
+
+ HAL_DSI_ForceRXLowPower(),
+
+
+
+
+ HAL_DSI_ForceDataLanesInRX(),
+
+
+
+
+ HAL_DSI_SetPullDown()
+
+
+
+
+ and HAL_DSI_SetContentionDetectionOff()
+
+
+
+
+ functions
+ - Update
+ DSI_HS_PM_ENABLE define value
+ - Implement
+ workaround for the hardware
+ limitation: The time to
+ activate the clock between HS
+ transmissions is not
+ calculated correctly
+
+
+ V1.4.0
+
+
+
+ / 14-August-2015
+ Main Changes
+
+ - Add
+ support of STM32F469xx, STM32F479xx,
+ STM32F410Cx, STM32F410Rx
+ and STM32F410Tx
+ devices
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - Add
+ new HAL drivers for DSI and LPTIM
+
+
+
+
+ peripherals
+
+
+ - HAL
+
+
+
+ ADC update
+
+ - Rename
+ ADC_CLOCKPRESCALER_PCLK_DIV2
+ define to
+ ADC_CLOCK_SYNC_PCLK_DIV2
+ - Rename
+ ADC_CLOCKPRESCALER_PCLK_DIV4
+ define to
+ ADC_CLOCK_SYNC_PCLK_DIV4
+ - Rename
+ ADC_CLOCKPRESCALER_PCLK_DIV6
+ define to
+ ADC_CLOCK_SYNC_PCLK_DIV6
+ - Rename
+ ADC_CLOCKPRESCALER_PCLK_DIV8
+ define to
+ ADC_CLOCK_SYNC_PCLK_DIV8
+
+ - HAL
+
+
+
+ CORTEX update
+
+ - Add specific
+ API for MPU management
+
+ - add MPU_Region_InitTypeDef
+ structure
+ - add new
+ function HAL_MPU_ConfigRegion()
+
+
+ - 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
+
+
+
+ FLASH update
+
+ - update HAL_FLASH_Program_IT()
+ function by removing the
+ pending flag clear
+ - update HAL_FLASH_IRQHandler()
+ function to improve erase
+ operation procedure
+ - update FLASH_WaitForLastOperation()
+ function by checking on end of
+ operation flag
+
+ - 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
+
+
+
+ I2S update
+
+ - Move
+ I2S_Clock_Source defines to
+ extension file to properly add
+ the support of STM32F410xx devices
+
+ - HAL
+
+
+
+ LTDC update
+
+ - rename HAL_LTDC_LineEvenCallback()
+ function to HAL_LTDC_LineEventCallback()
+ - add new
+ function HAL_LTDC_SetPitch()
+ - add new
+ functions HAL_LTDC_StructInitFromVideoConfig()
+ and HAL_LTDC_StructInitFromAdaptedCommandConfig()
+
+
+
+
+ applicable only to STM32F469xx
+ and STM32F479xx devices
+
+ - HAL
+
+
+
+ PWR update
+
+ - move
+ __HAL_PWR_VOLTAGESCALING_CONFIG()
+ macro to extension file
+ - move
+ PWR_WAKEUP_PIN2 define to
+ extension file
+ - add
+ PWR_WAKEUP_PIN3 define,
+ applicable only to STM32F10xx
+ devices
+ - add new
+ functions HAL_PWREx_EnableWakeUpPinPolarityRisingEdge()
+ and HAL_PWREx_EnableWakeUpPinPolarityFallingEdge(),
+
+
+
+
+ applicable only to STM32F469xx
+ and STM32F479xx devices
+
+
+
+ - HAL
+
+
+
+ RTC update
+
+ - Update HAL_RTCEx_SetWakeUpTimer()
+ and HAL_RTCEx_SetWakeUpTimer_IT()
+
+
+
+
+ functions to properly check on
+ the WUTWF flag
+
+ - HAL
+
+
+
+ TIM update
+
+ - add new
+ defines TIM_SYSTEMBREAKINPUT_HARDFAULT,
+
+
+
+ TIM_SYSTEMBREAKINPUT_PVD
+
+
+
+
+ and
+ TIM_SYSTEMBREAKINPUT_HARDFAULT_PVD,
+ applicable only to STM32F410xx
+ devices
+
+
+ V1.3.2
+
+
+
+ / 26-June-2015
+ Main Changes
+
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - One
+
+
+
+ changes
+ done on the HAL may require an
+ update on the application code
+ based on HAL V1.3.1
+
+ - HASH IT
+ process: update to call the HAL_HASH_InCpltCallback()
+ at the end of the complete
+ buffer instead of every each
+ 512 bits
+
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - HAL_RCCEx_PeriphCLKConfig() updates:
+
+ - Update the
+ LSE check condition after
+ backup domain reset:
+ update to check LSE
+ ready flag when LSE
+ oscillator is already
+ enabled instead of check on
+ LSE oscillator only when LSE
+ is used as RTC clock source
+ - Use the
+ right macro to check the
+ PLLI2SQ parameters
+
+
+
+
+
+ - HAL
+
+
+
+ RTC update
+
+ - __HAL_RTC_TAMPER_TIMESTAMP_EXTI_GET_FLAG()
+ macro: fix implementation
+ issue
+ - __HAL_RTC_ALARM_GET_IT(),
+
+
+
+
+ __HAL_RTC_ALARM_CLEAR_FLAG(),
+ __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(),
+
+
+
+
+ __HAL_RTC_TIMESTAMP_CLEAR_FLAG()
+
+
+
+ and
+ __HAL_RTC_TAMPER_CLEAR_FLAG()
+ macros implementation changed:
+ remove unused cast
+ - IS_RTC_TAMPER()
+ macro: update to use literal
+ instead of hardcoded
+ value
+ - Add new
+ parameter SecondFraction
+ in RTC_TimeTypeDef
+ structure
+ - HAL_RTC_GetTime() API update
+ to support the new
+ parameter SecondFraction
+
+
+ - HAL
+
+
+
+ ADC update
+
+ - 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
+
+
+
+ FLASH update
+
+ - FLASH_OB_GetRDP() API update
+ to return uint8_t instead of FlagStatus
+ - __HAL_FLASH_GET_LATENCY()
+ new macro add to get the flash
+ latency
+
+ - HAL
+
+
+
+ SPI update
+
+ - Fix the wrong
+ definition of
+ HAL_SPI_ERROR_FLAG literal
+
+ - HAL
+
+
+
+ I2S update
+
+ - HAL_I2S_Transmit()
+ API update to check on busy
+ flag only for I2S slave mode
+
+ - HAL
+
+
+
+ CRC update
+
+ - __HAL_CRC_SET_IDR()
+ macro implementation change to
+ use WRITE_REG() instead of
+ MODIFY_REG()
+
+ - HAL
+
+
+
+ DMA2D update
+
+ - HAL_DMA2D_ConfigLayer()
+ API update to use "=" instead
+ of "|=" to erase BGCOLR and
+ FGCOLR registers before
+ setting the new configuration
+
+ - HAL
+
+
+
+ HASH update
+
+ - HAL_HASH_MODE_Start_IT() (MODE
+
+
+
+ stands for MD5, SHA1,
+ SHA224 and SHA36) updates:
+
+ - Fix processing
+
+
+
+
+ fail for small input buffers
+ - Update to
+ unlock the process and
+ call return
+ HAL_OK at the end of
+ HASH processing to avoid
+ incorrectly repeating software
+ - Update to
+ properly manage the HashITCounter
+ - Update to
+ call the HAL_HASH_InCpltCallback()
+ at the end of the complete
+ buffer instead of every each
+ 512 bits
+
+ - __HAL_HASH_GET_FLAG()
+ update to check the
+ right register when the DINNE
+ flag is selected
+ - HAL_HASH_SHA1_Accumulate()
+ updates:
+
+ - Add
+ a call to the new
+ IS_HASH_SHA1_BUFFER_SIZE()
+ macro to check the size
+ parameter.
+ - Add the
+ following note in API description
+
+
+
+
+ *
+
+
+
+
+ @note
+
+
+
+
+ Input buffer
+ size in bytes must be a multiple
+ of 4 otherwise the digest
+ computation is corrupted.
+
+
+ - HAL
+
+
+
+ RTC update
+
+ - Update to
+ define hardware
+ independent literals names:
+
+ - Rename
+ RTC_TAMPERPIN_PC13 by
+
+
+
+ RTC_TAMPERPIN_DEFAULT
+ - Rename
+ RTC_TAMPERPIN_PA0 by
+ RTC_TAMPERPIN_POS1
+ - Rename
+ RTC_TAMPERPIN_PI8 by
+ RTC_TAMPERPIN_POS1
+ - Rename
+ RTC_TIMESTAMPPIN_PC13 by
+ RTC_TIMESTAMPPIN_DEFAULT
+ - Rename
+ RTC_TIMESTAMPPIN_PA0 by
+ RTC_TIMESTAMPPIN_POS1
+ - Rename
+ RTC_TIMESTAMPPIN_PI8 by
+ RTC_TIMESTAMPPIN_POS1
+
+
+ - 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
+
+
+
+ PCD update
+
+ - HAL_PCD_IRQHandler API: fix the
+ bad Configuration of
+ Turnaround Time
+
+ - HAL
+
+
+
+ HCD update
+
+ - Update to use
+ local variable in USB
+ Host channel re-activation
+
+ - LL
+
+
+
+ FMC update
+
+ - FMC_SDRAM_SendCommand() API: remove
+ the following line: return
+ HAL_ERROR;
+
+ - LL
+
+
+
+ USB update
+
+ - USB_FlushTxFifo API:
+ update to flush all Tx FIFO
+ - Update to use
+ local variable in USB
+ Host channel re-activation
+
+
+ V1.3.1
+
+
+
+ / 25-Mars-2015
+ Main Changes
+
+ - HAL
+
+
+
+ PWR update
+
+ - Fix
+ compilation issue with
+ STM32F417xx product:
+ update STM32F17xx
+ by STM32F417xx
+
+ - HAL
+
+
+
+ SPI update
+
+ - Remove unused
+ variable to avoid warning with
+ TrueSTUDIO
+
+ - HAL
+
+
+
+ I2C update
+
+ - I2C
+ Polling/IT/DMA processes: move
+ the wait loop on busy
+ flag at the top of the
+ processes, to ensure that
+ software not perform any write
+ access to I2C_CR1 register
+ before hardware
+ clearing STOP bit and to
+ avoid
+
+
+
+
+ also the
+ waiting loop on BUSY flag
+ under I2C/DMA ISR.
+ - Update busy
+ flag Timeout value
+ - I2C Master
+ Receive Processes update to
+ disable ACK before generate
+ the STOP
+
+ - HAL
+
+
+
+ DAC update
+
+ - Fix V1.3.0
+ regression issue with DAC
+ software trigger configuration
+
+
+ V1.3.0
+
+
+
+ / 09-Mars-2015
+ Main Changes
+
+ - Add
+ support of STM32F446xx devices
+ - General
+
+
+
+ updates to fix known defects and
+ enhancements implementation
+ - Add
+ new HAL drivers for CEC,
+ QSPI, FMPI2C and SPDIFRX
+
+
+
+ peripherals
+ - Two
+
+
+
+ changes done on the HAL
+ requires an update on the
+ application code based on HAL
+ V1.2.0
+
+ - Overall SAI
+ driver rework to have
+ exhaustive support of the
+ peripheral features: details
+ are provided in HAL SAI update
+
+
+
+ section below --> Compatibility
+
+
+
+
+ with previous version is impacted
+ - CRYP driver
+ updated to support multi instance,so
+ user must ensure that the
+ new parameter Instance is
+ initalized
+ in his application(CRYPHandle.Instance
+ = CRYP)
+
+
+
+ - HAL
+
+
+
+ Generic update
+
+ - stm32f4xx_hal_def.h
+
+ - Remove NULL
+ definition and add
+ include for stdio.h
+
+ - stm32_hal_legacy.h
+
+ - Update method
+
+
+
+ to manage deference in
+ alias implementation between
+ all STM32 families
+
+ - stm32f4xx_hal_ppp.c
+
+ - HAL_PPP_Init(): update
+ to force the
+ HAL_PPP_STATE_RESET before
+ calling the HAL_PPP_MspInit()
+
+
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - Add new
+ function HAL_RCCEx_GetPeriphCLKFreq()
+ - Move RCC_PLLInitTypeDef
+ structure to extension file
+ and add the new PLLR field
+ specific to STM32F446xx devices
+ - Move the
+ following functions to
+ extension file and add a
+ __weak attribute in generic driver
+
+
+
+ : this
+ update is related to new
+ system clock source (PLL/PLLR)
+ added and only available for
+ STM32F44xx devices
+
+ - HAL_RCC_OscConfig()
+ - HAL_RCC_GetSysClockFreq()
+ - HAL_RCC_GetOscConfig()
+
+ - Move the
+ following macro to extension
+ file as they have device
+ dependent implementation
+
+ - __HAL_RCC_PLL_CONFIG()
+ - __HAL_RCC_PLLI2S_CONFIG()
+ - __HAL_RCC_I2S_CONFIG()
+
+ - Add new
+ structure RCC_PLLI2SInitTypeDef
+ containing new PLLI2S
+ division factors used only w/
+ STM32F446xx devices
+ - Add new
+ structure RCC_PLLSAIInitTypeDef
+ containing new PLLSAI
+ division factors used only w/
+ STM32F446xx devices
+ - Add new RCC_PeriphCLKInitTypeDef
+ to support the peripheral
+ source clock selection for (I2S,
+
+
+
+ SAI, SDIO, FMPI2C, CEC,
+ SPDIFRX and CLK48)
+ - Update the HAL_RCCEx_PeriphCLKConfig()
+ and HAL_RCCEx_GetPeriphCLKConfig()
+
+
+
+
+ functions to support the
+ new peripherals Clock source
+ selection
+ - Add __HAL_RCC_PLL_CONFIG()
+ macro (the number of parameter
+ and the implementation depend
+ on the device part number)
+ - Add __HAL_RCC_PLLI2S_CONFIG()
+ macro(the number of parameter
+ and the implementation depend
+ on device part number)
+ - Update __HAL_RCC_PLLSAI_CONFIG()
+ macro to support new PLLSAI
+ factors (PLLSAIM and
+ PLLSAIP)
+ - Add new
+ macros for clock
+ enable/Disable for the
+ following peripherals (CEC,
+
+
+
+ SPDIFRX, SAI2, QUADSPI)
+ - Add the
+ following new macros for clock
+ source selection
+
+
+
+ :
+
+ - __HAL_RCC_SAI1_CONFIG()
+ /
+ __HAL_RCC_GET_SAI1_SOURCE()
+ - __HAL_RCC_SAI2_CONFIG()
+ /
+ __HAL_RCC_GET_SAI2_SOURCE()
+ - __HAL_RCC_I2S1_CONFIG()
+ /
+ __HAL_RCC_GET_I2S1_SOURCE()
+ - __HAL_RCC_I2S2_CONFIG()
+ /
+ __HAL_RCC_GET_I2S2_SOURCE()
+ - __HAL_RCC_CEC_CONFIG()
+ /
+ __HAL_RCC__GET_CEC_SOURCE()
+
+ - __HAL_RCC_FMPI2C1_CONFIG()
+ /
+ __HAL_RCC_GET_FMPI2C1_SOURCE()
+
+ - __HAL_RCC_SDIO_CONFIG()
+ /
+ __HAL_RCC_GET_SDIO_SOURCE()
+
+ - __HAL_RCC_CLK48_CONFIG()
+ /
+ __HAL_RCC_GET_CLK48_SOURCE()
+
+ - __HAL_RCC_SPDIFRXCLK_CONFIG()
+ /
+ __HAL_RCC_GET_SPDIFRX_SOURCE()
+
+ - __HAL_RCC_PPP_CLK_ENABLE():
+
+
+
+
+ Implement workaround to cover
+ RCC limitation regarding
+ peripheral enable delay
+ - HAL_RCC_OscConfig() fix
+ issues:
+
+ - Add a check
+ on LSERDY flag when
+ LSE_BYPASS is selected as
+ new state for LSE
+ oscillator.
+
+ - Add
+ new possible value RCC_PERIPHCLK_PLLI2S
+
+
+
+ to be selected as PeriphClockSelection
+ parameter in the
+
+
+
+
+ RCC_PeriphCLKInitTypeDef
+ structure to allow the
+ possibility to output the
+ PLLI2S on MCO without
+ activating the I2S or the SAI.
+ - __HAL_RCC_HSE_CONFIG()
+ macro: add
+ the comment below:
+
+
+
+ *
+
+
+
+
+ @note Transition
+ HSE Bypass to HSE On and HSE
+ On to HSE Bypass are not
+ supported by this macro.
+ *
+
+
+
+ User should request a
+ transition to HSE Off first
+ and then HSE On or HSE Bypass.
+
+
+
+ - __HAL_RCC_LSE_CONFIG() macro: add
+ the comment below:
+
+
+
+ *
+
+
+
+
+ @note Transition
+ LSE Bypass to LSE On and LSE
+ On to LSE Bypass are not
+ supported by this macro.
+
+ *
+ User should request a
+ transition to LSE Off first
+ and then LSE On or LSE Bypass.
+
+
+
+ - Add the
+ following new macros for
+ PLL source and PLLM selection
+
+
+
+ :
+
+ - __HAL_RCC_PLL_PLLSOURCE_CONFIG()
+ - __HAL_RCC_PLL_PLLM_CONFIG()
+
+ - Macros
+ rename:
+
+ - HAL_RCC_OTGHS_FORCE_RESET()
+by HAL_RCC_USB_OTG_HS_FORCE_RESET()
+ - HAL_RCC_OTGHS_RELEASE_RESET()
+by HAL_RCC_USB_OTG_HS_RELEASE_RESET()
+ - HAL_RCC_OTGHS_CLK_SLEEP_ENABLE()
+by HAL_RCC_USB_OTG_HS_CLK_SLEEP_ENABLE()
+ - HAL_RCC_OTGHS_CLK_SLEEP_DISABLE()
+by HAL_RCC_USB_OTG_HS_CLK_SLEEP_DISABLE()
+ - HAL_RCC_OTGHSULPI_CLK_SLEEP_ENABLE()
+by HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_ENABLE()
+ - HAL_RCC_OTGHSULPI_CLK_SLEEP_DISABLE()
+by HAL_RCC_USB_OTG_HS_ULPI_CLK_SLEEP_DISABLE()
+
+ - Add __HAL_RCC_SYSCLK_CONFIG()
+ new macro to configure the
+ system clock source (SYSCLK)
+ - __HAL_RCC_GET_SYSCLK_SOURCE()
+ updates:
+
+ - Add new RCC
+ Literals:
+
+ - RCC_SYSCLKSOURCE_STATUS_HSI
+ - RCC_SYSCLKSOURCE_STATUS_HSE
+ - RCC_SYSCLKSOURCE_STATUS_PLLCLK
+ - RCC_SYSCLKSOURCE_STATUS_PLLRCLK
+
+ - Update
+
+
+
+ macro description to refer
+ to the literals above
+
+
+
+ - HAL
+
+
+
+ PWR update
+
+ - Add new
+ define PWR_WAKEUP_PIN2
+ - Add new API
+ to Control/Get VOS bits
+ of CR register
+
+ - HAL_PWR_HAL_PWREx_ControlVoltageScaling()
+ - HAL_PWREx_GetVoltageRange()
+
+ - __HAL_PWR_
+ VOLTAGESCALING_CONFIG(): Implement
+ workaround to cover VOS
+ limitation delay when PLL is
+ enabled after setting the VOS
+ configuration
+
+ - HAL
+
+
+
+ GPIO update
+
+ - Add the new
+ Alternate functions literals
+ related to remap for SPI,
+
+
+
+ USART, I2C, SPDIFRX, CEC
+ and QSPI
+ - HAL_GPIO_DeInit():
+
+
+
+ Update to check if GPIO
+ Pin x is already used in EXTI
+ mode on another GPIO Port
+ before De-Initialize the EXTI
+ registers
+
+ - HAL
+
+
+
+ FLASH update
+
+ - __HAL_FLASH_INSTRUCTION_CACHE_RESET()
+ macro: update to reset
+ ICRST bit in
+ the ACR register after
+ setting it.
+ - __HAL_FLASH_DATA_CACHE_RESET() macro:
+
+
+
+
+ update to reset
+ DCRST bit in the ACR
+ register after setting it.
+
+ - HAL
+
+
+
+ ADC update
+
+ - Add new
+ literal: ADC_SOFTWARE_START to
+ be used as possible value for
+ the ExternalTrigConv
+ parameter in the ADC_InitTypeDef
+ structure to select the ADC
+ software trigger mode.
+ - IS_ADC_CHANNEL()
+ macro update to don't assert
+ stop the ADC_CHANNEL_TEMPSENSOR
+ value
+ - HAL_ADC_PollForConversion(): update to
+ manage particular case when
+ ADC configured in DMA mode and
+ ADC sequencer with several
+ ranks and polling for end of
+ each conversion
+ - HAL_ADC_Start()/HAL_ADC_Start_IT()
+ /HAL_ADC_Start_DMA()
+
+
+
+
+ update:
+
+ - unlock the
+ process before starting the
+ ADC software conversion.
+ - Optimize
+ the ADC stabilization delays
+
+ - __HAL_ADC_GET_IT_SOURCE()
+ update macro implementation
+ - Add more
+ details in 'How to use this
+ driver' section
+
+ - HAL
+
+
+
+ DAC update
+
+ - Add new macro
+ to check if the specified DAC
+ interrupt source is enabled or
+ disabled
+
+ - __HAL_DAC_GET_IT_SOURCE()
+
+ - HAL_DACEx_TriangleWaveGeneration() update to
+ use DAC CR bit mask definition
+ - HAL_DACEx_NoiseWaveGeneration() update to
+ use DAC CR bit mask definition
+
+ - HAL
+
+
+
+ CAN update
+
+ - CanTxMsgTypeDef structure:
+ update to use uint8_t Data[8]
+
+
+
+
+ instead of
+ uint32_t Data[8]
+ - CanRxMsgTypeDef structure:
+ update to use uint8_t Data[8]
+ instead of
+ uint32_t Data[8]
+
+
+
+ - HAL
+
+
+
+ RTC update
+
+ - Update to
+ use CMSIS mask definition
+ instead of hardcoded values (EXTI_IMR_IM17,
+ EXTI_IMR_IM19..)
+
+ - HAL
+
+
+
+ LTDC update
+
+ - LTDC_SetConfig() update to
+ allow the drawing
+ of partial bitmap in
+ active layer.
+
+ - HAL
+
+
+
+ USART update
+
+ - HAL_USART_Init() fix USART
+ baud rate configuration
+ issue: USART baud rate is
+ twice Higher than expected
+
+ - HAL
+
+
+
+ SMARTCARD update
+
+ - HAL_SMARTCARD_Transmit_IT() update to
+ force the disable for the ERR
+ interrupt to avoid the OVR
+ interrupt
+ - HAL_SMARTCARD_IRQHandler()
+ update check condition
+ for transmission end
+ - Clean up:
+ remove the following
+ literals that aren't used in
+ smartcard mode
+
+ - SMARTCARD_PARITY_NONE
+ - SMARTCARD_WORDLENGTH_8B
+ - SMARTCARD_STOPBITS_1
+ - SMARTCADR_STOPBITS_2
+
+
+ - HAL
+
+
+
+ SPI update
+
+ - HAL_SPI_Transmit_DMA()/HAL_SPI_Receive_DMA()/HAL_SPI_TarnsmitReceive_DMA()
+ update to unlock
+ the process before
+ enabling the SPI peripheral
+ - HAL_SPI_Transmit_DMA() update to
+ manage correctly the DMA RX
+ stream in SPI Full duplex mode
+ - Section
+ SPI_Exported_Functions_Group2 update
+ to remove duplication in *.chm
+ UM
+
+ - HAL
+
+
+
+ CRYP update
+
+ - Update to
+ manage multi instance:
+
+ - Add new
+ parameter Instance in the CRYP_HandleTypeDef
+ Handle structure.
+ - Add new
+ parameter in all HAL CRYP
+ macros
+
+ - example: __HAL_CRYP_ENABLE()
+ updated by
+ __HAL_CRYP_ENABLE(__HANDLE__)
+
+
+
+ - HAL
+
+
+
+ DCMI update
+
+ - Add an
+ extension
+ driver stm32f4xx_hal_dcmi_ex.c/h
+ to manage the support of new
+ Black and White feature
+
+ - Add __weak attribute
+ for HAL_DCMI_Init()
+ function and add a new
+ implementation in the
+ extension driver to manage the
+ black and white configuration
+ only available in the
+ STM32F446xx devices.
+
+ - Move DCMI_InitTypeDef
+ structure to extension driver
+ and add the
+ following new fields
+ related to black and white
+ feature: ByteSelectMode, ByteSelectStart, LineSelectMode
+ and LineSelectStart
+
+ - HAL
+
+
+
+ PCD update
+
+ - Add the
+ support of LPM feature
+
+ - add PCD_LPM_StateTypeDef
+ enum
+ - update PCD_HandleTypeDef
+ structure to support the LPM
+ feature
+ - add new
+ functions HAL_PCDEx_ActivateLPM(),
+
+
+
+
+ HAL_PCDEx_DeActivateLPM()
+
+
+
+
+ and HAL_PCDEx_LPM_Callback()
+
+
+
+
+ in the
+ stm32f4xx_hal_pcd_ex.h/.c
+ files
+
+
+ - HAL
+
+
+
+ TIM update
+
+ - Add
+ TIM_TIM11_SPDIFRX
+
+
+
+ define
+
+ - HAL
+
+
+
+ SAI update
+
+ - Add
+ stm32f4xx_hal_sai_ex.h/.c
+ files for the SAI_BlockSynchroConfig()
+ and the SAI_GetInputClock()
+
+
+
+
+ management
+ - Add new
+ defines HAL_SAI_ERROR_AFSDET,
+ HAL_SAI_ERROR_LFSDET,
+ HAL_SAI_ERROR_CNREADY,
+ HAL_SAI_ERROR_WCKCFG,
+ HAL_SAI_ERROR_TIMEOUT in the SAI_Error_Code
+ group
+ - Add new
+ defines SAI_SYNCEXT_DISABLE,
+ SAI_SYNCEXT_IN_ENABLE,
+ SAI_SYNCEXT_OUTBLOCKA_ENABLE,
+ SAI_SYNCEXT_OUTBLOCKB_ENABLE
+ for the SAI External
+ synchronization
+ - Add new
+ defines SAI_I2S_STANDARD,
+ SAI_I2S_MSBJUSTIFIED,
+ SAI_I2S_LSBJUSTIFIED,
+ SAI_PCM_LONG and SAI_PCM_SHORT
+ for the SAI Supported protocol
+ - Add new
+ defines
+ SAI_PROTOCOL_DATASIZE_16BIT,
+ SAI_PROTOCOL_DATASIZE_16BITEXTENDED,
+ SAI_PROTOCOL_DATASIZE_24BIT
+ and
+ SAI_PROTOCOL_DATASIZE_32BIT
+ for SAI protocol data size
+ - Add SAI
+ Callback prototype definition
+ - Update SAI_InitTypeDef
+ structure by adding new
+ fields: SynchroExt,
+ Mckdiv,
+ MonoStereoMode,
+ CompandingMode,
+ TriState
+ - Update SAI_HandleTypeDef
+ structure:
+
+ - remove
+ uint16_t *pTxBuffPtr,
+ *pRxBuffPtr,
+ TxXferSize,
+ RxXferSize,
+ TxXferCount
+ and RxXferCount
+ and replace them
+ respectively by uint8_t *pBuffPtr,
+ uint16_t XferSize and
+
+
+
+
+ uint16_t XferCount
+ - add mutecallback
+ field
+ - add struct
+ __SAI_HandleTypeDef
+ *hsai field
+
+ - Remove
+ SAI_CLKSOURCE_PLLR and
+ SAI_CLOCK_PLLSRC defines
+ - Add
+ SAI_CLKSOURCE_NA define
+ - Add
+ SAI_AUDIO_FREQUENCY_MCKDIV
+ define
+ - Add
+ SAI_SPDIF_PROTOCOL define
+ - Add
+ SAI_SYNCHRONOUS_EXT define
+ - Add new
+ functions HAL_SAI_InitProtocol(),
+
+
+
+
+ HAL_SAI_Abort(),
+
+
+
+
+ HAL_SAI_EnableTxMuteMode(),
+
+
+
+
+ HAL_SAI_DisableTxMuteMode(),
+
+
+
+
+ HAL_SAI_EnableRxMuteMode(),
+
+
+
+
+ HAL_SAI_DisableRxMuteMode()
+ - Update HAL_SAI_Transmit(),
+
+
+
+
+ HAL_SAI_Receive(),
+
+
+
+
+ HAL_SAI_Transmit_IT(),
+
+
+
+
+ HAL_SAI_Receive_IT(),
+
+
+
+
+ HAL_SAI_Transmit_DMA(),
+
+
+
+
+ HAL_SAI_Receive_DMA()
+
+
+
+
+ functions to use uint8_t *pData
+ instead of uint16_t *pData
+ --> This update is mainly
+ impacting the compatibility
+ with previous driver
+ version.
+
+ - HAL
+
+
+
+ I2S update
+
+ - Split the
+ following
+ functions between Generic
+ and Extended API based on full
+ duplex management and add the
+ attribute __weak in the
+ Generic API
+
+ - HAL_I2S_Init(),
+
+
+
+
+ HAL_I2S_DMAPause(), HAL_I2S_DMAStop(), HAL_I2S_DMAResume(), HAL_I2S_IRQHandle()
+
+
+
+
+
+
+ - Move the
+ following static functions
+ from generic to extension driver
+
+ - I2S_DMARxCplt()
+ and I2S_DMATxCplt()
+
+ - Remove static
+ attribute from I2S_Transmit_IT()
+ and I2S_Receive_IT() functions
+ - Move I2SxEXT()
+ macro to extension file
+ - Add
+ I2S_CLOCK_PLLR and
+ I2S_CLOCK_PLLSRC defines for
+ I2S clock source
+ - Add new
+ function I2S_GetInputClock()
+
+ - HAL
+
+
+
+ LL FMC update
+
+ - Add WriteFifo
+ and PageSize
+ fields in the FMC_NORSRAM_InitTypeDef
+ structure
+ - Add
+ FMC_PAGE_SIZE_NONE,
+ FMC_PAGE_SIZE_128,
+ FMC_PAGE_SIZE_256,
+ FMC_PAGE_SIZE_1024,
+ FMC_WRITE_FIFO_DISABLE,
+ FMC_WRITE_FIFO_ENABLE defines
+ - Update FMC_NORSRAM_Init(),
+
+
+
+
+ FMC_NORSRAM_DeInit()
+
+
+
+
+ and FMC_NORSRAM_Extended_Timing_Init() functions
+
+ - HAL
+
+
+
+ LL USB update
+
+ - Update USB_OTG_CfgTypeDef
+ structure to support LPM, lpm_enable
+ field added
+ - Update USB_HostInit()
+ and USB_DevInit()
+
+
+
+
+ functions to support the VBUS
+ Sensing B activation
+
+
+ V1.2.0
+
+
+
+ / 26-December-2014
+ Main Changes
+
+ - Maintenance
+
+
+
+ release to fix known defects
+ and enhancements implementation
+
+
+ - Macros
+
+
+
+ and literals renaming to
+ ensure compatibles across
+ STM32 series,
+ backward compatibility
+ maintained thanks to new added
+ file stm32_hal_legacy.h under
+
+
+
+ /Inc/Legacy
+ - Add
+ *.chm UM for all drivers, a UM
+ is provided for each superset RPN
+ - Update
+
+
+
+ drivers to be C++ compliant
+ - Several
+
+
+
+ update on source code
+ formatting, for better UM
+ generation (i.e.
+ Doxygen
+ tags updated)
+ - Two
+
+
+
+ changes done on the HAL
+ requires an update on the
+ application code based on HAL
+ V1.1.0
+
+ - LSI_VALUE constant has
+ been corrected in
+ stm32f4xx_hal_conf.h file, its
+ value changed from 40 KHz
+ to 32 KHz
+ - UART, USART,
+ IRDA and SMARTCARD
+ (referenced as PPP
+ here below) drivers:
+ in DMA transmit process, the
+ code has been updated to avoid
+ waiting on TC flag under DMA
+ ISR, PPP TC interrupt
+ is used instead. Below the
+ update to be done on user
+ application:
+
+ - Configure
+ and enable the USART IRQ in
+ HAL_PPP_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, PPP_IRQHandler()
+ function: add a call to HAL_PPP_IRQHandler()
+
+
+
+ function
+
+
+
+
+ - HAL
+
+
+
+ generic
+ update
+
+
+
+ - stm32f4xx_hal_def.h
+
+ - Update NULL
+ definition to fix C++
+ compilation issue
+ - Add UNUSED()
+ macro
+ - Add a new
+ define __NOINLINE to be used
+ for the no inline code
+ independent from tool chain
+
+ - stm32f4xx_hal_conf_template.h
+
+ - LSI_VALUE constant
+ has been corrected,
+ its value changed from 40 KHz
+ to 32 KHz
+
+
+
+
+
+ - Update all
+ macros and literals naming to
+ be uper
+ case
+ - ErrorCode parameter in
+ PPP_HandleTypeDef
+ structure updated
+ to uint32_t instead
+ of enum HAL_PPP_ErrorTypeDef
+ - Remove the
+
+
+
+ unused FLAG and IT assert macros
+
+ - HAL
+
+
+
+ ADC update
+
+ - Fix temperature
+
+
+
+
+ sensor channel configuration
+ issue for STM32F427/437xx
+
+
+
+
+ and STM32F429/439xx
+
+
+
+ devices
+
+ - HAL
+
+
+
+ DAC update
+
+ - HAL_DAC_ConfigChannel(): update the
+ access to the DAC peripheral
+ registers via the hdac
+ handle instance
+ - HAL_DAC_IRQHandler(): update to
+ check on both DAC_FLAG_DMAUDR1
+ and DAC_FLAG_DMAUDR2
+ - HAL_DACEx_NoiseWaveGenerate(): update to
+ reset DAC CR register before
+ setting the new DAC
+ configuration
+ - HAL_DACEx_TriangleWaveGenerate(): update to
+ reset DAC CR register before
+ setting the new DAC
+ configuration
+
+ - HAL
+
+
+
+ CAN update
+
+ - Unlock the
+ CAN process when communication
+ error occurred
+
+ - HAL
+
+
+
+ CORTEX update
+
+ - Add new macro
+ IS_NVIC_DEVICE_IRQ()
+ to check on negative values of
+ IRQn
+ parameter
+
+
+
+
+
+
+
+ HAL CRYP update
+
+
+ - HAL_CRYP_DESECB_Decrypt_DMA(): fix the
+ inverted pPlainData
+ and pCypherData
+ parameters issue
+ - CRYPEx_GCMCCM_SetInitVector(): remove
+ the IVSize
+ parameter as the key length
+ 192bits and 256bits are not
+ supported by this version
+ - Add restriction for
+
+
+
+
+ the CCM Encrypt/Decrypt API's
+ that only DataType
+ equal to 8bits is supported
+ - HAL_CRYPEx_AESGCM_Finish():
+
+ - Add restriction
+
+
+
+
+ that the implementation is
+ limited to 32bits inputs
+ data length (Plain/Cyphertext,
+
+
+
+ Header) compared with GCM stadards
+ specifications (800-38D)
+ - Update Size
+ parameter on 32bits instead
+ of 16bits
+ - Fix issue
+ with 16-bit Data Type:
+ update to use intrinsic __ROR()
+ instead of __REV16()
+
+
+
+
+
+
+
+
+ HAL DCMI update
+
+
+ - HAL_DCMI_ConfigCROP(): Invert
+ assert macros to check Y0 and
+ Ysize
+ parameters
+
+
+
+
+
+
+
+ HAL DMA update
+
+
+ - HAL_DMA_Init(): Update to
+
+
+
+
+ clear the DBM bit in the
+ SxCR
+ register before setting the
+ new configuration
+ - DMA_SetConfig():
+ add to clear the DBM
+ bit in the SxCR
+ register
+
+
+
+
+
+
+
+ HAL FLASH update
+
+
+ - Add "HAL_"
+ prefix in the defined values
+ for the FLASH error code
+
+ - Example: FLASH_ERROR_PGP
+ renamed by HAL_FLASH_ERROR_PGP
+
+ - Clear the
+
+
+
+ Flash ErrorCode
+ in the FLASH_WaitForLastOperation()
+ function
+ - Update FLASH_SetErrorCode()
+ function to use "|="
+ operant to update the Flash ErrorCode
+ parameter in the FLASH handle
+ - IS_FLASH_ADDRESS(): Update the
+ macro check using '<='
+ condition instead of '<'
+ - IS_OPTIONBYTE(): Update the
+ macro check using '<='
+ condition instead of '<'
+ - Add "FLASH_"
+
+
+
+
+ prefix in the defined values
+ of FLASH Type Program
+ parameter
+
+ - Example: TYPEPROGRAM_BYTE
+ renamed by FLASH_TYPEPROGRAM_BYTE
+
+ - Add "FLASH_"
+
+
+
+
+ prefix in the defined values
+ of FLASH Type Erase parameter
+
+ - Example: TYPEERASE_SECTORS
+ renamed by FLASH_TYPEERASE_SECTORS
+
+ - Add "FLASH_"
+
+
+
+
+ prefix in the defined values
+ of FLASH Voltage Range
+ parameter
+
+ - Example: VOLTAGE_RANGE_1
+ renamed by FLASH_VOLTAGE_RANGE_1
+
+ - Add "OB_"
+
+
+
+
+ prefix in the defined values
+ of FLASH WRP State parameter
+
+ - Example: WRPSTATE_ENABLE
+ renamed by OB_WRPSTATE_ENABLE
+
+ - Add "OB_"
+
+
+
+
+ prefix in the defined values
+ of the FLASH PCROP State
+ parameter
+
+ - PCROPSTATE_DISABLE
+ updated by OB_PCROP_STATE_DISABLE
+ - PCROPSTATE_ENABLE
+ updated by OB_PCROP_STATE_ENABLE
+
+ - Change
+ "OBEX" prefix by
+ "OPTIONBYTE" prefix in these
+ defines:
+
+ - OBEX_PCROP
+
+
+
+ by OPTIONBYTE_PCROP
+ - OBEX_BOOTCONFIG
+
+
+
+ by OPTIONBYTE_BOOTCONFIG
+
+
+
+
+
+
+
+
+ HAL ETH update
+
+
+ - Fix macros
+ naming typo
+
+
+
+
+
+ - Update
+ __HAL_ETH_EXTI_SET_RISING_EGDE_TRIGGER()
+ by
+ __HAL_ETH_EXTI_SET_RISING_EDGE_TRIGGER()
+ - Update
+ __HAL_ETH_EXTI_SET_FALLING_EGDE_TRIGGER()
+by __HAL_ETH_EXTI_SET_FALLING_EDGE_TRIGGER()
+
+
+
+
+
+
+
+
+ HAL PWR update
+
+
+ - Add new API
+ to manage SLEEPONEXIT and
+ SEVONPEND bits of SCR register
+
+ - HAL_PWR_DisableSleepOnExit()
+ - HAL_PWR_EnableSleepOnExit()
+ - HAL_PWR_EnableSEVOnPend()
+ - HAL_PWR_DisableSEVOnPend()
+
+ - HAL_PWR_EnterSTOPMode()
+
+ - Update to
+
+
+
+ clear the CORTEX SLEEPDEEP
+ bit of SCR register
+ before entering in sleep mode
+ - Update
+ usage of __WFE()
+ in low power entry function:
+ if there is a pending event,
+ calling __WFE() will not
+ enter the CortexM4 core to
+ sleep mode. The solution is
+ to made the call below; the
+ first __WFE()
+ is always ignored and clears
+ the event if one was already
+ pending, the second is
+ always applied
+
+
+
+
+ __SEV()
+ __WFE()
+ __WFE()
+
+
+
+ - Add
+ new PVD configuration modes
+
+ - PWR_PVD_MODE_NORMAL
+ - PWR_PVD_MODE_EVENT_RISING
+ - PWR_PVD_MODE_EVENT_FALLING
+ - PWR_PVD_MODE_EVENT_RISING_FALLING
+
+ - Add new
+ macros to manage PVD Trigger
+
+ - __HAL_PWR_PVD_EXTI_ENABLE_RISING_EDGE()
+ - __HAL_PWR_PVD_EXTI_DISABLE_RISING_EDGE(
+ - __HAL_PWR_PVD_EXTI_ENABLE_FALLING_EDGE()
+ - __HAL_PWR_PVD_EXTI_DISABLE_FALLING_EDGE()
+ - __HAL_PWR_PVD_EXTI_ENABLE_RISING_FALLING_EDGE()
+ - __HAL_PWR_PVD_EXTI_DISABLE_RISING_FALLING_EDGE()
+
+ - PVD macros:
+
+ - Remove the
+ __EXTILINE__ parameter
+ - Update to
+ use prefix "__HAL_PWR_PVD_"
+ instead of prefix
+ "__HAL_PVD"
+
+
+
+
+
+ - Rename HAL_PWR_PVDConfig()
+ by HAL_PWR_ConfigPVD()
+ - Rename HAL_PWREx_ActivateOverDrive()
+ by HAL_PWREx_EnableOverDrive()
+
+
+
+
+
+ - Rename HAL_PWREx_DeactivateOverDrive()
+ by HAL_PWREx_DisableOverDrive()
+
+
+
+
+
+
+ - HAL
+
+
+
+ GPIO update
+
+ - HAL_GPIO_Init()/HAL_GPIO_DeInit(): add a call
+ to the CMSIS assert macro
+ to check GPIO instance:
+ IS_GPIO_ALL_INSTANCE()
+ - HAL_GPIO_WritePin(): update to
+ write in BSRR register
+ - Rename GPIO_GET_SOURCE()
+ by GET_GPIO_INDEX() and
+
+
+
+ move this later to file
+ stm32f4xx_hal_gpio_ex.h
+ - Add new
+ define for alternate function
+ GPIO_AF5_SPI3 for
+ STM32F429xx/439xx and
+ STM32F427xx/437xx devices
+
+ - HAL
+
+
+
+ HASH update
+
+ - HAL_HASH_MD5_Start_IT():
+
+
+
+
+ fix input
+ address management issue
+
+ - HAL
+
+
+
+ RCC update
+
+ - Rename the
+ following Macros
+
+ - __PPP_CLK_ENABLE()
+
+
+
+
+ by
+ __HAL_RCC_PPP_CLK_ENABLE()
+ - __PPP_CLK_DISABLE()
+
+
+
+
+ by
+ __HAL_RCC_PPP_CLK_DISABLE()
+ - __PPP_FORCE_RESET()
+
+
+
+
+ by
+ __HAL_RCC_PPP_FORCE_RESET()
+ - __PPP_RELEASE_RESET()
+
+
+
+
+ by
+ __HAL_RCC_PPP_RELEASE_RESET()
+ - __PPP_CLK_SLEEP_ENABLE()
+ by
+ __HAL_RCC_PPP_CLK_SLEEP_ENABLE()
+ - __PPP_CLK_SLEEP_DISABLE()
+ by
+ __HAL_RCC_PPP_CLK_SLEEP_DISABLE()
+
+ - IS_RCC_PLLSAIN_VALUE()
+ macro: update the check
+ condition
+ - Add
+ description of RCC known Limitations
+ - Rename HAL_RCC_CCSCallback()
+ by HAL_RCC_CSSCallback()
+ - HAL_RCC_OscConfig() fix
+ issues:
+
+ - Remove the
+ disable of HSE
+ oscillator when
+ HSE_BYPASS is used as
+ system clock source or as
+ PPL clock source
+ - Add a check
+ on HSERDY flag
+ when HSE_BYPASS is
+ selected as new state
+ for HSE oscillator.
+
+ - Rename
+ __HAL_RCC_I2SCLK()
+ by __HAL_RCC_I2S_Config()
+
+
+
+
+
+
+
+ HAL I2S update
+
+
+ - HAL_I2S_Init(): add check
+ on I2S instance
+ using CMSIS macro IS_I2S_ALL_INSTANCE()
+ - HAL_I2S_IRQHandler()
+ update for compliancy w/ C++
+ - Add use
+ of tmpreg
+ variable in __HAL_I2S_CLEAR_OVRFLAG()
+ and __HAL_I2S_CLEAR_UDRFLAG()
+ macro for compliancy with C++
+ - HAL_I2S_GetError(): update to
+ return uint32_t instead of
+ HAL_I2S_ErrorTypeDef
+ enumeration
+
+
+
+
+
+
+
+ HAL I2C update
+
+
+ - Update to
+
+
+
+
+ clear the POS bit in the
+ CR1 register at the end
+ of HAL_I2C_Master_Read_IT()
+ and HAL_I2C_Mem_Read_IT()
+ process
+ - Rename
+ HAL_I2CEx_DigitalFilter_Config()
+
+
+
+ by
+ HAL_I2CEx_ConfigDigitalFilter()
+
+ - Rename
+ HAL_I2CEx_AnalogFilter_Config()
+
+
+
+ by
+ HAL_I2CEx_ConfigAnalogFilter()
+
+ - Add use
+ of tmpreg
+ variable in __HAL_I2C_CLEAR_ADDRFLAG()
+ and __HAL_I2C_CLEAR_STOPFLAG()
+ macro for compliancy with
+ C++
+
+ - HAL
+
+
+
+ IrDA update
+
+ - DMA transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under DMA ISR, IrDA TC
+ interrupt is used instead.
+ Below the update to be done on
+ user application:
+
+ - Configure
+ and enable the USART IRQ in
+ HAL_IRDA_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, UASRTx_IRQHandler()
+ function: add a call to HAL_IRDA_IRQHandler()
+
+
+
+ function
+
+ - IT transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under IRDA ISR, IrDA TC
+ interrupt is used instead. No
+ impact on user application
+ - Rename
+ Macros: add prefix "__HAL"
+
+ - __IRDA_ENABLE()
+ by __HAL_IRDA_ENABLE()
+ - __IRDA_DISABLE()
+ by __HAL_IRDA_DISABLE()
+
+ - Add new user
+ macros to manage the sample
+ method feature
+
+ - __HAL_IRDA_ONE_BIT_SAMPLE_ENABLE()
+ - __HAL_IRDA_ONE_BIT_SAMPLE_DISABLE()
+
+ - HAL_IRDA_Transmit_IT(): update to
+ remove the enable of the
+ parity error interrupt
+ - Add use
+ of tmpreg
+ variable in __HAL_IRDA_CLEAR_PEFLAG()
+ macro for compliancy with
+ C++
+ - HAL_IRDA_Transmit_DMA() update to
+ follow the
+ right procedure
+ "Transmission using DMA"
+ in the reference manual
+
+ - Add clear
+ the TC flag in the SR
+ register before enabling the
+ DMA transmit
+ request
+
+
+ - HAL
+
+
+
+ IWDG update
+
+ - Rename the
+ defined IWDG keys:
+
+ - KR_KEY_RELOAD
+
+
+
+ by IWDG_KEY_RELOAD
+ - KR_KEY_ENABLE
+
+
+
+ by IWDG_KEY_ENABLE
+ - KR_KEY_EWA
+ by
+ IWDG_KEY_WRITE_ACCESS_ENABLE
+ - KR_KEY_DWA
+ by
+ IWDG_KEY_WRITE_ACCESS_DISABLE
+
+ - Add new
+ macros
+ __HAL_IWDG_RESET_HANDLE_STATE()
+ and
+ __HAL_IWDG_CLEAR_FLAG()
+ - Update
+ __HAL_IWDG_ENABLE_WRITE_ACCESS()
+ and
+ __HAL_IWDG_DISABLE_WRITE_ACCESS()
+ as private macro
+
+
+
+
+
+
+
+ HAL SPI update
+
+
+ - HAL_SPI_TransmitReceive_DMA() update to
+ remove the DMA Tx Error
+ Callback initialization when
+ SPI RxOnly
+ mode is selected
+ - Add use of UNUSED(tmpreg)
+ in __HAL_SPI_CLEAR_MODFFLAG(),
+ __HAL_SPI_CLEAR_OVRFLAG(),
+ __HAL_SPI_CLEAR_FREFLAG() to
+ fix "Unused variable" warning
+ with TrueSTUDIO.
+ - Rename
+ Literals: remove "D" from
+ "DISABLED" and "ENABLED"
+
+ - SPI_TIMODE_DISABLED by
+
+
+
+
+ SPI_TIMODE_DISABLE
+ - SPI_TIMODE_ENABLED by SPI_TIMODE_ENABLE
+ - SPI_CRCCALCULATION_DISABLED
+ by
+
+
+
+
+ SPI_CRCCALCULATION_DISABLE
+ - SPI_CRCCALCULATION_ENABLED
+ by
+
+
+
+
+ SPI_CRCCALCULATION_ENABLE
+
+ - Add use
+ of tmpreg
+ variable in __HAL_SPI_CLEAR_MODFFLAG(),
+
+
+
+
+ __HAL_SPI_CLEAR_FREFLAG() and
+ __HAL_SPI_CLEAR_OVRFLAG()
+ macros for compliancy
+ with C++
+
+
+
+
+
+
+
+ HAL SDMMC update
+
+
+ - IS_SDIO_ALL_INSTANCE()
+ macro moved to CMSIS
+ files
+
+ - HAL
+
+
+
+ LTDC update
+
+ - HAL_LTDC_ConfigCLUT: optimize
+ the function when pixel format
+is LTDC_PIXEL_FORMAT_AL44
+
+ - Update the
+ size of color look up table
+ to 16 instead of 256 when
+ the pixel format
+ is LTDC_PIXEL_FORMAT_AL44
+
+
+
+ - HAL
+
+
+
+ NAND update
+
+ - Rename NAND
+ Address structure to NAND_AddressTypeDef
+ instead of NAND_AddressTypedef
+ - Update the
+ used algorithm of these functions
+
+ - HAL_NAND_Read_Page()
+ - HAL_NAND_Write_Page()
+ - HAL_NAND_Read_SpareArea()
+ - HAL_NAND_Write_SpareArea()
+
+ - HAL_NAND_Write_Page(): move
+ initialization of tickstart
+ before while loop
+ - HAL_NAND_Erase_Block(): add whait
+ until NAND status is ready
+ before exiting this function
+
+ - HAL
+
+
+
+ NOR update
+
+ - Rename NOR
+ Address structure to NOR_AddressTypeDef
+ instead of NOR_AddressTypedef
+ - NOR Status
+ literals renamed
+
+ - NOR_SUCCESS
+ by HAL_NOR_STATUS_SUCCESS
+ - NOR_ONGOING
+ by HAL_NOR_STATUS_ONGOING
+ - NOR_ERROR
+ by HAL_NOR_STATUS_ERROR
+ - NOR_TIMEOUT
+ by HAL_NOR_STATUS_TIMEOUT
+
+ - HAL_NOR_GetStatus() update to
+ fix Timeout issue
+ and exit from waiting
+ loop when timeout occurred
+
+ - HAL
+
+
+
+ PCCARD update
+
+ - Rename PCCARD
+ Address structure to HAL_PCCARD_StatusTypeDef
+ instead of CF_StatusTypedef
+ - PCCARD Status
+ literals renamed
+
+ - CF_SUCCESS
+ by HAL_PCCARD_STATUS_SUCCESS
+ - CF_ONGOING
+ by HAL_PCCARD_STATUS_ONGOING
+ - CF_ERROR
+ by HAL_PCCARD_STATUS_ERROR
+ - CF_TIMEOUT
+ by HAL_PCCARD_STATUS_TIMEOUT
+
+ - Update "CF"
+ by "PCCARD" in functions,
+ literals
+ and macros
+
+ - HAL
+
+
+
+ PCD update
+
+ - Rename functions
+
+ - HAL_PCD_ActiveRemoteWakeup() by HAL_PCD_ActivateRemoteWakeup()
+ - HAL_PCD_DeActiveRemoteWakeup() by HAL_PCD_DeActivateRemoteWakeup()
+
+ - Rename literals
+
+ - USB_FS_EXTI_TRIGGER_RISING_EDGE
+
+
+
+
+ by
+ USB_OTG_FS_WAKEUP_EXTI_RISING_EDGE
+ - USB_FS_EXTI_TRIGGER_FALLING_EDGE
+
+
+
+
+ by
+ USB_OTG_FS_WAKEUP_EXTI_FALLING_EDGE
+ - USB_FS_EXTI_TRIGGER_BOTH_EDGE()
+ by
+ USB_OTG_FS_WAKEUP_EXTI_RISING_FALLING_EDGE
+ - USB_HS_EXTI_TRIGGER_RISING_EDGE
+
+
+
+
+ by
+ USB_OTG_HS_WAKEUP_EXTI_RISING_EDGE
+ - USB_HS_EXTI_TRIGGER_FALLING_EDGE
+
+
+
+
+ by
+ USB_OTG_HS_WAKEUP_EXTI_FALLING_EDGE
+ - USB_HS_EXTI_TRIGGER_BOTH_EDGE
+
+
+
+
+ by
+ USB_OTG_HS_WAKEUP_EXTI_RISING_FALLING_EDGE
+ - USB_HS_EXTI_LINE_WAKEUP
+
+
+
+
+ by
+ USB_OTG_HS_EXTI_LINE_WAKEUP
+ - USB_FS_EXTI_LINE_WAKEUP
+
+
+
+
+ by
+ USB_OTG_FS_EXTI_LINE_WAKEUP
+
+ - Rename USB
+ EXTI macros (FS, HS
+
+
+
+ referenced as SUBBLOCK
+ here below)
+
+ - __HAL_USB_SUBBLOCK_EXTI_ENABLE_IT()
+ by
+ __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_ENABLE_IT()
+ - __HAL_USB_SUBBLOCK_EXTI_DISABLE_IT()
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_DISABLE_IT()
+ - __HAL_USB_SUBBLOCK_EXTI_GET_FLAG()
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_GET_FLAG()
+ - __HAL_USB_SUBBLOCK_EXTI_CLEAR_FLAG()
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_CLEAR_FLAG()
+ - __HAL_USB_SUBBLOCK_EXTI_SET_RISING_EGDE_TRIGGER()
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_ENABLE_RISING_EDGE()
+ - __HAL_USB_SUBBLOCK_EXTI_SET_FALLING_EGDE_TRIGGER()
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_ENABLE_FALLING_EDGE()
+ - __HAL_USB_SUBBLOCK_EXTI_SET_FALLINGRISING_TRIGGER()
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_ENABLE_RISING_FALLING_EDGE()
+ - __HAL_USB_SUBBLOCK_EXTI_GENERATE_SWIT()
+
+
+
+
+ by __HAL_USB_OTG_SUBBLOCK_WAKEUP_EXTI_GENERATE_SWIT()
+
+
+
+
+
+
+
+
+
+ - HAL
+
+
+
+ RNG update
+
+ - Add new functions
+
+ - HAL_RNG_GenerateRandomNumber(): to
+ generate a 32-bits random
+ number,
+ return
+ random value in argument and
+ return HAL status.
+ - HAL_RNG_GenerateRandomNumber_IT(): to
+ start generation of
+ the 32-bits random
+ number, user should call
+ the HAL_RNG_ReadLastRandomNumber()
+
+
+
+
+ function under the HAL_RNG_ReadyCallback()
+
+
+
+ to get the generated random
+ value.
+ - HAL_RNG_ReadLastRandomNumber(): to
+ return the last random value
+ stored in the RNG handle
+
+ - HAL_RNG_GetRandomNumber(): return
+ value update (obsolete),
+ replaced by HAL_RNG_GenerateRandomNumber()
+ - HAL_RNG_GetRandomNumber_IT(): wrong
+ implementation (obsolete),
+ replaced by HAL_RNG_GenerateRandomNumber_IT()
+ - __HAL_RNG_CLEAR_FLAG()
+ macro (obsolete), replaced by
+ new __HAL_RNG_CLEAR_IT() macro
+ - Add new
+ define for RNG ready
+ interrupt: RNG_IT_DRDY
+
+ - HAL
+
+
+
+ RTC update
+
+ - HAL_RTC_GetTime() and HAL_RTC_GetDate():
+
+
+
+
+ add the comment below
+
+
+
+
+
+
+
+
+
+ * @note You must call HAL_RTC_GetDate()
+ after HAL_RTC_GetTime()
+
+
+
+
+ to unlock the values
+
+
+
+
+
+ * in the higher-order
+ calendar shadow registers to
+ ensure consistency between
+ the time and date values.
+
+
+
+
+
+ * Reading RTC current time
+ locks the values in calendar
+ shadow registers until
+ Current date is read.
+
+
+
+
+ - Rename
+ literals: add prefix "__HAL"
+
+ - FORMAT_BIN by HAL_FORMAT_BIN
+ - FORMAT_BCD
+ by HAL_FORMAT_BCD
+
+ - Rename macros
+ (ALARM, WAKEUPTIMER and
+ TIMESTAMP referenced
+ as SUBBLOCK here
+ below)
+
+ - __HAL_RTC_EXTI_ENABLE_IT()
+ by __HAL_RTC_SUBBLOCK_EXTI_ENABLE_IT()
+ - __HAL_RTC_EXTI_DISABLE_IT()
+ by __HAL_RTC_SUBBLOCK_EXTI_DISABLE_IT()
+ - __HAL_RTC_EXTI_CLEAR_FLAG()
+ by __HAL_RTC_SUBBLOCK_EXTI_CLEAR_FLAG()
+ - __HAL_RTC_EXTI_GENERATE_SWIT()
+ by __HAL_RTC_SUBBLOCK_EXTI_GENERATE_SWIT()
+
+ - Add new
+ macros (ALARM,
+ WAKEUPTIMER and TAMPER_TIMESTAMP
+
+
+
+ referenced as SUBBLOCK
+ here below)
+
+ - __HAL_RTC_SUBBLOCK_GET_IT_SOURCE()
+ - __HAL_RTC_SUBBLOCK_EXTI_ENABLE_EVENT()
+ - __HAL_RTC_SUBBLOCK_EXTI_DISABLE_EVENT()
+ - __HAL_RTC_SUBBLOCK_EXTI_ENABLE_FALLING_EDGE()
+ - __HAL_RTC_SUBBLOCK_EXTI_DISABLE_FALLING_EDGE()
+ - __HAL_RTC_SUBBLOCK_EXTI_ENABLE_RISING_EDGE()
+ - __HAL_RTC_SUBBLOCK_EXTI_DISABLE_RISING_EDGE()
+ - __HAL_RTC_SUBBLOCK_EXTI_ENABLE_RISING_FALLING_EDGE()
+ - __HAL_RTC_SUBBLOCK_EXTI_DISABLE_RISING_FALLING_EDGE()
+ - __HAL_RTC_SUBBLOCK_EXTI_GET_FLAG()
+
+
+ - HAL
+
+
+
+ SAI update
+
+ - Update
+ SAI_STREOMODE by SAI_STEREOMODE
+ - Update FIFO
+ status Level defines in upper
+ case
+ - Rename
+ literals: remove "D" from
+ "DISABLED" and "ENABLED"
+
+ - SAI_OUTPUTDRIVE_DISABLED
+
+
+
+
+ by
+ SAI_OUTPUTDRIVE_DISABLE
+ - SAI_OUTPUTDRIVE_ENABLED
+
+
+
+
+ by
+ SAI_OUTPUTDRIVE_ENABLE
+ - SAI_MASTERDIVIDER_ENABLED by
+ SAI_MASTERDIVIDER_ENABLE
+ - SAI_MASTERDIVIDER_DISABLED by
+ SAI_MASTERDIVIDER_DISABLE
+
+
+
+
+ - HAL
+
+
+
+ SD update
+
+ - Rename
+ SD_CMD_SD_APP_STAUS by SD_CMD_SD_APP_STATUS
+ - SD_PowerON() updated to
+ add 1ms required power up
+ waiting time before starting
+ the SD initialization sequence
+ - SD_DMA_RxCplt()/SD_DMA_TxCplt():
+
+
+
+
+ add a call to
+ HAL_DMA_Abort()
+ - HAL_SD_ReadBlocks() update to
+ set the defined
+ DATA_BLOCK_SIZE as SDIO DataBlockSize
+ parameter
+ - HAL_SD_ReadBlocks_DMA()/HAL_SD_WriteBlocks_DMA()
+ update to call the HAL_DMA_Start_IT()
+
+
+
+ function with DMA Datalength
+ set to BlockSize/4
+
+
+
+
+ as the DMA is
+ configured in word
+
+ - HAL
+
+
+
+ SMARTCARD update
+
+ - DMA transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under DMA ISR, SMARTCARD
+ TC interrupt is used instead.
+ Below the update to be done on
+ user application:
+
+ - Configure
+ and enable the USART IRQ in
+ HAL_SAMRTCARD_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, UASRTx_IRQHandler()
+ function: add a call to HAL_SMARTCARD_IRQHandler()
+
+
+
+
+ function
+
+ - IT transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under SMARTCARD
+ ISR, SMARTCARD TC
+ interrupt is used instead. No
+ impact on user application
+ - Rename
+ macros: add prefix "__HAL"
+
+ - __SMARTCARD_ENABLE()
+ by __HAL_SMARTCARD_ENABLE()
+ - __SMARTCARD_DISABLE()
+ by __HAL_SMARTCARD_DISABLE()
+ - __SMARTCARD_ENABLE_IT()
+ by
+ __HAL_SMARTCARD_ENABLE_IT()
+ - __SMARTCARD_DISABLE_IT()
+ by
+ __HAL_SMARTCARD_DISABLE_IT()
+ - __SMARTCARD_DMA_REQUEST_ENABLE()
+ by
+ __HAL_SMARTCARD_DMA_REQUEST_ENABLE()
+ - __SMARTCARD_DMA_REQUEST_DISABLE()
+ by
+ __HAL_SMARTCARD_DMA_REQUEST_DISABLE()
+
+ - Rename
+ literals: remove "D" from
+ "DISABLED" and "ENABLED"
+
+ - SMARTCARD_NACK_ENABLED by
+
+
+
+
+ SMARTCARD_NACK_ENABLE
+ - SMARTCARD_NACK_DISABLED by SMARTCARD_NACK_DISABLE
+
+ - Add new user
+ macros to manage the sample
+ method feature
+
+ - __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE()
+ - __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE()
+
+ - Add use
+ of tmpreg
+ variable in
+ __HAL_SMARTCARD_CLEAR_PEFLAG()
+ macro for compliancy with
+ C++
+ - HAL_SMARTCARD_Transmit_DMA() update to
+ follow the
+ right procedure
+ "Transmission using DMA"
+ in the reference manual
+
+ - Add clear
+ the TC flag in the SR
+ register before enabling the
+ DMA transmit
+ request
+
+
+ - HAL
+
+
+
+ TIM update
+
+ - Add
+ TIM_CHANNEL_ALL as possible
+ value for all Encoder
+ Start/Stop APIs Description
+ - HAL_TIM_OC_ConfigChannel() remove call
+ to IS_TIM_FAST_STATE() assert
+ macro
+ - HAL_TIM_PWM_ConfigChannel() add a call
+ to IS_TIM_FAST_STATE() assert
+ macro to check the OCFastMode
+ parameter
+ - HAL_TIM_DMADelayPulseCplt() Update to
+ set the TIM Channel before to
+ call HAL_TIM_PWM_PulseFinishedCallback()
+ - HAL_TIM_DMACaptureCplt() update to
+ set the TIM Channel before to
+ call HAL_TIM_IC_CaptureCallback()
+ - TIM_ICx_ConfigChannel() update
+ to fix Timer CCMR1 register
+ corruption when setting ICFilter
+ parameter
+ - HAL_TIM_DMABurst_WriteStop()/HAL_TIM_DMABurst_ReadStop()
+ update to abort the DMA
+ transfer for the specifc
+ TIM channel
+ - Add new
+ function for TIM Slave
+ configuration in IT mode:
+ HAL_TIM_SlaveConfigSynchronization_IT()
+ - HAL_TIMEx_ConfigBreakDeadTime() add an
+ assert check on Break & DeadTime
+ parameters values
+ - HAL_TIMEx_OCN_Start_IT() add the
+ enable of Break Interrupt for
+ all output modes
+ - Add new
+ macros to ENABLE/DISABLE URS
+ bit in TIM CR1 register:
+
+ - __HAL_TIM_URS_ENABLE()
+ - __HAL_TIM_URS_DISABLE()
+
+ - Add new macro
+ for TIM Edge modification:
+ __HAL_TIM_SET_CAPTUREPOLARITY()
+
+ - HAL
+
+
+
+ UART update
+
+ - Add IS_LIN_WORD_LENGTH()
+ and
+ IS_LIN_OVERSAMPLING()
+ macros: to check respectively
+ WordLength
+ and OverSampling
+ parameters in LIN mode
+ - DMA transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under DMA ISR, UART TC
+ interrupt is used instead.
+ Below the update to be done on
+ user application:
+
+ - Configure
+ and enable the USART IRQ in
+ HAL_UART_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, USARTx_IRQHandler()
+ function: add a call to HAL_UART_IRQHandler()
+
+
+
+ function
+
+ - IT transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under UART ISR, UART
+ TC interrupt is used instead.
+ No impact on user application
+ - Rename
+ macros:
+
+ - __HAL_UART_ONEBIT_ENABLE()
+ by
+ __HAL_UART_ONE_BIT_SAMPLE_ENABLE()
+ - __HAL_UART_ONEBIT_DISABLE()
+ by
+ __HAL_UART_ONE_BIT_SAMPLE_DISABLE()
+
+ - Rename
+ literals:
+
+ - UART_WAKEUPMETHODE_IDLELINE by
+
+
+
+
+ UART_WAKEUPMETHOD_IDLELINE
+ - UART_WAKEUPMETHODE_ADDRESSMARK by
+UART_WAKEUPMETHOD_ADDRESSMARK
+
+ - Add use
+ of tmpreg
+ variable in __HAL_UART_CLEAR_PEFLAG()
+ macro for compliancy with
+ C++
+ - HAL_UART_Transmit_DMA() update to
+ follow the right procedure
+ "Transmission using DMA" in
+ the reference manual
+
+ - Add clear
+ the TC flag in the SR
+ register before enabling the
+ DMA transmit
+ request
+
+
+ - HAL
+
+
+
+ USART update
+
+ - DMA transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under DMA ISR, USART TC
+ interrupt is used instead.
+ Below the update to be done on
+ user application:
+
+ - Configure
+ and enable the USART IRQ in
+ HAL_USART_MspInit()
+ function
+ - In
+ stm32f4xx_it.c file, USARTx_IRQHandler()
+ function: add a call to HAL_USART_IRQHandler()
+
+
+
+
+ function
+
+ - IT transmit
+ process; the code has been
+ updated to avoid waiting on TC
+ flag under USART ISR,
+ USART TC interrupt is used
+ instead. No impact on user
+ application
+ - HAL_USART_Init() update
+ to enable the USART
+ oversampling by 8 by default
+ in order to reach max USART
+ frequencies
+ - USART_DMAReceiveCplt() update
+ to set the new USART state
+ after checking on the
+ old state
+ - HAL_USART_Transmit_DMA()/HAL_USART_TransmitReceive_DMA()
+ update to
+ follow the
+ right procedure
+ "Transmission using DMA"
+ in the reference manual
+
+ - Add clear
+ the TC flag in the SR
+ register before enabling the
+ DMA transmit
+ request
+
+ - Rename
+ macros:
+
+ - __USART_ENABLE()
+ by __HAL_USART_ENABLE()
+ - __USART_DISABLE()
+ by __HAL_USART_DISABLE()
+ - __USART_ENABLE_IT()
+ by __HAL_USART_ENABLE_IT()
+ - __USART_DISABLE_IT()
+ by __HAL_USART_DISABLE_IT()
+
+ - Rename
+ literals: remove "D" from
+ "DISABLED" and "ENABLED"
+
+ - USART_CLOCK_DISABLED by
+
+
+
+
+ USART_CLOCK_DISABLE
+ - USART_CLOCK_ENABLED by
+
+
+
+
+ USART_CLOCK_ENABLE
+ - USARTNACK_ENABLED
+
+
+
+ by USART_NACK_ENABLE
+ - USARTNACK_DISABLED
+
+
+
+ by USART_NACK_DISABLE
+
+ - Add new user
+ macros to manage the sample
+ method feature
+
+ - __HAL_USART_ONE_BIT_SAMPLE_ENABLE()
+ - __HAL_USART_ONE_BIT_SAMPLE_DISABLE()
+
+ - Add use
+ of tmpreg
+ variable in __HAL_USART_CLEAR_PEFLAG()
+ macro for compliancy with
+ C++
+
+ - HAL
+
+
+
+ WWDG update
+
+ - Add new
+ parameter in
+ __HAL_WWDG_ENABLE_IT()
+ macro
+ - Add new
+ macros to manage WWDG IT &
+ correction:
+
+ - __HAL_WWDG_DISABLE()
+ - __HAL_WWDG_DISABLE_IT()
+ - __HAL_WWDG_GET_IT()
+ - __HAL_WWDG_GET_IT_SOURCE()
+
+
+
+ V1.1.0
+
+
+
+ / 19-June-2014
+ Main Changes
+
+ - Add
+ support of STM32F411xE devices
+
+
+ - HAL
+
+
+
+ generic
+ update
+
+ - Enhance HAL
+ delay and time base implementation
+
+ - Systick timer is
+ used by default as source of
+ time base, but user can
+ eventually implement his
+ proper time base source (a general
+
+
+
+ purpose
+ timer for example or other
+ time source)
+ - Functions
+ affecting time base
+ configurations are declared
+ as __Weak to make override
+ possible in case of other
+ implementations in user
+ file, for more details
+ please refer to HAL_TimeBase
+ example
+
+ - 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
+ - Add a new
+ attribute for functions
+ executed from internal SRAM
+ and depending from
+ Compiler implementation
+ - When USE_RTOS
+ == 1 (in
+ stm32l0xx_hal_conf.h), the
+ __HAL_LOCK()
+ is not defined instead of
+ being defined empty
+ - Miscellaneous
+ comments and formatting update
+ - stm32f4xx_hal_conf_template.h
+
+ - Add a new
+ define for LSI default value
+ LSI_VALUE
+ - Add a new
+ define for LSE default value
+ LSE_VALUE
+ - Add a new
+ define for Tick interrupt
+ priority TICK_INT_PRIORITY
+ (needed for the enhanced
+ time base implementation)
+
+ - Important
+
+
+
+
+ Note:
+ aliases has been added for any
+ API naming change, to keep
+ compatibility with previous version
+
+ - HAL
+
+
+
+ GPIO update
+
+
+
+ - Add a new
+ macro __HAL_GPIO_EXTI_GENERATE_SWIT()
+ to manage the generation of
+ software interrupt on selected
+ EXTI line
+ - HAL_GPIO_Init(): use
+ temporary variable when
+ modifying the registers, to
+ avoid unexpected transition in
+ the GPIO pin configuration
+ - Remove
+ IS_GET_GPIO_PIN macro
+ - Add a new
+ function HAL_GPIO_LockPin()
+ - Private Macro
+ __HAL_GET_GPIO_SOURCE renamed
+ into GET_GPIO_SOURCE
+ - Add the
+ support of STM32F411xx devices
+
+
+
+
+ : add the
+ new Alternate functions values
+ related to new remap added for
+ SPI, USART, I2C
+ - Update the
+ following HAL GPIO macros
+ description: rename EXTI_Linex
+ by GPIO_PIN_x
+
+ - __HAL_GPIO_EXTI_CLEAR_IT()
+ - __HAL_GPIO_EXTI_GET_IT()
+ - __HAL_GPIO_EXTI_CLEAR_FLAG()
+ - __HAL_GPIO_EXTI_GET_FLAG()
+
+
+
+
+
+
+
+
+ HAL DMA update
+
+
+ - Fix in HAL_DMA_PollForTransfer()
+ to:
+
+ - set DMA
+ error code in case of
+ HAL_ERROR status
+ - set HAL
+ Unlock before DMA state update
+
+
+
+
+
+
+
+
+ HAL DMA2D
+ update
+
+
+ - Add
+ configuration of source
+ address in case of A8 or A4
+ M2M_PFC DMA2D mode
+
+ - HAL
+
+
+
+ FLASH update
+
+
+
+ - Functions
+ reorganization update,
+ depending on the features
+ supported by each STM32F4 device
+ - Add new
+ driver
+ (stm32f4xx_hal_flash_ramfunc.h/.c)
+ to manage function executed
+ from RAM, these functions are
+ available only for STM32F411xx
+ Devices
+
+ - FLASH_StopFlashInterfaceClk() :
+ Stop the flash interface
+ while System Run
+ - FLASH_StartFlashInterfaceClk() : Stop the
+ flash interface while System
+ Run
+ - FLASH_EnableFlashSleepMode() : Enable
+ the flash sleep while System
+ Run
+ - FLASH_DisableFlashSleepMode() :
+ Disable the flash sleep
+ while System Run
+
+
+
+
+ - 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_PWR_EnterSLEEPMode()
+
+ - Remove
+ disable and enable of SysTick
+ Timer
+ - Update
+ usage of __WFE()
+ in low power entry function:
+ if there is a pending event,
+ calling __WFE() will not
+ enter the CortexM4 core to
+ sleep mode. The solution is
+ to made the call below; the
+ first __WFE()
+ is always ignored and clears
+ the event if one was already
+ pending, the second is
+ always applied
+
+
+
+
+ __SEV()
+ __WFE()
+ __WFE()
+
+
+
+ - Add new macro
+ for software event generation
+ __HAL_PVD_EXTI_GENERATE_SWIT()
+ - Remove the
+ following defines form Generic
+ driver and add them under
+ extension driver because they
+ are only used within extension
+ functions.
+
+ - CR_FPDS_BB:
+ used within HAL_PWREx_EnableFlashPowerDown()
+ function
+ - CSR_BRE_BB:
+ used within HAL_PWREx_EnableBkUpReg()
+ function
+
+ - Add the
+ support of STM32F411xx devices
+ add the define STM32F411xE
+
+ - For
+ STM32F401xC, STM32F401xE and
+ STM32F411xE devices add the
+ following functions used to
+ enable or disable the low
+ voltage mode for regulators
+
+
+
+
+
+
+
+ - HAL_PWREx_EnableMainRegulatorLowVoltage()
+ - HAL_PWREx_DisableMainRegulatorLowVoltage()
+ - HAL_PWREx_EnableLowRegulatorLowVoltage()
+ - HAL_PWREx_DisableLowRegulatorLowVoltage()
+
+
+ - For
+ STM32F42xxx/43xxx devices, add
+ a new function for Under
+ Driver management as the macro
+ already added for this mode is
+ not sufficient: HAL_PWREx_EnterUnderDriveSTOPMode()
+
+
+
+ - HAL
+
+
+
+ RCC update
+
+ - In HAL_RCC_ClockConfig()
+ function: update the AHB clock
+ divider before clock switch to
+ new source
+ - Allow to
+ calibrate the HSI when it is
+ used as system clock source
+ - Rename the
+ following macros
+
+ - __OTGFS_FORCE_RESET
+
+
+
+ () by
+ __USB_OTG_FS_FORCE_RESET()
+ - __OTGFS_RELEASE_RESET
+
+
+
+ () by
+__USB_OTG_FS_RELEASE_RESET()
+ - __OTGFS_CLK_SLEEP_ENABLE
+
+
+
+
+ () by
+__USB_OTG_FS_CLK_SLEEP_ENABLE()
+ - __OTGFS_CLK_SLEEP_DISABLE
+
+
+
+
+ () by __USB_OTG_FS_CLK_SLEEP_DISABLE()
+
+
+
+
+
+
+ - Add new field
+ PLLI2SM in
+ RCC_PLLI2SInitTypeDef
+ structure, this division
+ factor is added for PLLI2S VCO
+ input clock only STM32F411xE
+ devices => the FW
+ compatibility is broken vs.
+ STM32F401xx devices
+ - Update HAL_RCCEx_PeriphCLKConfig()
+ and HAL_RCCEx_GetPeriphCLKConfig()
+
+
+
+
+ functions to support the new
+ PLLI2SM
+ - Add new
+ function to manage the new LSE
+ mode
+
+
+
+
+ : HAL_RCCEx_SelectLSEMode()
+ - Reorganize
+ the macros depending from
+ Part number used and make them
+ more clear
+
+
+ HAL
+
+
+
+ UART update
+
+
+ - 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
+
+
+
+ RNG update
+
+
+ - Add a
+ conditional define to make
+ this driver visible for all
+ STM32F4xx devices except
+ STM32F401xx and STM32F411xx
+ Devices.
+
+
+ - HAL
+
+
+
+ CRC update
+
+
+ - These
+ macros are added to
+ read/write the CRC IDR
+ register: __HAL_CRC_SET_IDR()
+ and __HAL_CRC_GET_IDR()
+
+
+
+
+ - HAL
+
+
+
+ DAC update
+
+ - Enhance the
+ DMA channel configuration when
+ used with DAC
+
+ - HAL
+
+
+
+ TIM update
+
+ - HAL_TIM_IRQHandler(): update to
+ check the input capture
+ channel 3 and 4 in CCMR2
+ instead of CCMR1
+ - __HAL_TIM_PRESCALER()
+ updated to use '=' instead of
+ '|='
+ - Add the
+ following macro in TIM HAL
+ driver
+
+ - __HAL_TIM_GetCompare()
+
+ - __HAL_TIM_GetCounter()
+
+ - __HAL_TIM_GetAutoreload()
+
+ - __HAL_TIM_GetClockDivision()
+
+ - __HAL_TIM_GetICPrescaler()
+
+
+ - HAL
+
+
+
+ SDMMC update
+
+
+
+ - Use of CMSIS
+ constants instead of magic values
+ - Miscellaneous
+ update in functions internal
+ coding
+
+ - HAL
+
+
+
+ NAND update
+
+ - Fix
+
+
+
+ issue of macros returning
+ wrong address for NAND blocks
+ - Fix
+
+
+
+ issue for read/write NAND
+ page/spare area
+
+ - HAL
+
+
+
+ NOR update
+
+ - Add
+
+
+
+ the NOR address bank macro
+ used within the API
+ - Update
+
+
+
+ NOR API implementation to
+ avoid the use of NOR address
+ bank hard coded
+
+ - HAL
+
+
+
+ HCD update
+
+ - HCD_StateTypeDef structure
+ members renamed
+ - These macro are renamed
+
+ - __HAL_GET_FLAG(__HANDLE__,
+
+
+
+
+ __INTERRUPT__)
+
+
+
+ by
+ __HAL_HCD_GET_FLAG(__HANDLE__,
+ __INTERRUPT__)
+ - __HAL_CLEAR_FLAG(__HANDLE__,
+
+
+
+
+ __INTERRUPT__) by
+ __HAL_HCD_CLEAR_FLAG(__HANDLE__,
+ __INTERRUPT__)
+ - __HAL_IS_INVALID_INTERRUPT(__HANDLE__)
+
+
+
+
+ by
+ __HAL_HCD_IS_INVALID_INTERRUPT(__HANDLE__)
+
+
+
+ - HAL
+
+
+
+ PCD update
+
+ - HAL_PCD_SetTxFiFo() and HAL_PCD_SetRxFiFo()
+
+
+
+
+ renamed into HAL_PCDEx_SetTxFiFo()
+
+
+
+
+ and HAL_PCDEx_SetRxFiFo()
+
+
+
+
+ and moved to the extension
+ files
+ stm32f4xx_hal_pcd_ex.h/.c
+ - PCD_StateTypeDef structure
+ members renamed
+ - Fix incorrect
+ masking of TxFIFOEmpty
+ - stm32f4xx_ll_usb.c:
+
+
+
+ fix issue in HS mode
+ - New macros added
+
+ - __HAL_PCD_IS_PHY_SUSPENDED()
+ - __HAL_USB_HS_EXTI_GENERATE_SWIT()
+ - __HAL_USB_FS_EXTI_GENERATE_SWIT()
+
+ - These macro are renamed
+
+ - __HAL_GET_FLAG(__HANDLE__,
+
+
+
+
+ __INTERRUPT__)
+
+
+
+ by
+ __HAL_PCD_GET_FLAG(__HANDLE__,
+ __INTERRUPT__)
+ - __HAL_CLEAR_FLAG(__HANDLE__,
+
+
+
+
+ __INTERRUPT__) by
+ __HAL_PCD_CLEAR_FLAG(__HANDLE__,
+ __INTERRUPT__)
+ - __HAL_IS_INVALID_INTERRUPT(__HANDLE__)
+
+
+
+
+ by
+ __HAL_PCD_IS_INVALID_INTERRUPT(__HANDLE__)
+
+ - __HAL_PCD_UNGATE_CLOCK(__HANDLE__)
+
+
+
+
+ by
+ __HAL_PCD_UNGATE_PHYCLOCK(__HANDLE__)
+ - __HAL_PCD_GATE_CLOCK(__HANDLE__)
+
+
+
+
+ by
+ __HAL_PCD_GATE_PHYCLOCK(__HANDLE__)
+
+
+ - HAL
+
+
+
+ ETH update
+
+ - Update HAL_ETH_GetReceivedFrame_IT()
+ function to return HAL_ERROR
+ if the received packet is not
+ complete
+ - Use HAL_Delay()
+ instead of counting loop
+ - __HAL_ETH_MAC_CLEAR_FLAG()
+ macro is removed: the MACSR
+ register is read only
+ - Add the
+ following macros used to Wake
+ up the device from STOP mode
+ by Ethernet event
+
+
+
+ :
+
+ - __HAL_ETH_EXTI_ENABLE_IT()
+ - __HAL_ETH_EXTI_DISABLE_IT()
+ - __HAL_ETH_EXTI_GET_FLAG()
+ - __HAL_ETH_EXTI_CLEAR_FLAG()
+ - __HAL_ETH_EXTI_SET_RISING_EGDE_TRIGGER()
+ - __HAL_ETH_EXTI_SET_FALLING_EGDE_TRIGGER()
+ - __HAL_ETH_EXTI_SET_FALLINGRISING_TRIGGER()
+
+
+ - HAL
+
+
+
+ WWDG update
+
+ - Update macro
+ parameters to use underscore:
+ __XXX__
+ - Use of CMSIS
+ constants instead of magic values
+ - Use
+ MODIFY_REG macro in HAL_WWDG_Init()
+ - Add
+ IS_WWDG_ALL_INSTANCE in HAL_WWDG_Init()
+ and HAL_WWDG_DeInit()
+
+ - HAL
+
+
+
+ IWDG update
+
+ - Use WRITE_REG
+ instead of SET_BIT for all
+ IWDG macros
+ - __HAL_IWDG_CLEAR_FLAG
+
+
+
+
+ removed: no IWDG flag cleared
+ by access to SR register
+ - Use
+ MODIFY_REG macro in HAL_IWDG_Init()
+ - Add
+ IS_IWDG_ALL_INSTANCE in HAL_IWDG_Init()Add
+
+
+
+
+ the following macros used to
+ Wake
+
+
+ V1.0.0
+
+
+
+ / 18-February-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:
+
+ - Redistributions
+
+
+
+ of source code must retain the
+ above copyright notice, this
+ list of conditions and the
+ following disclaimer.
+ - 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.
+ - 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
+ |
+
+