### I2C Error Handling Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for I2C error handling, including wrong start condition. ```C #define HAL_I2C_WRONG_START ... ``` -------------------------------- ### WWDG Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for managing WWDG interrupt enable, disable, get IT, and get IT source. ```C __HAL_WWDG_DISABLE() __HAL_WWDG_DISABLE_IT() __HAL_WWDG_GET_IT() __HAL_WWDG_GET_IT_SOURCE() ``` -------------------------------- ### SMARTCARD One Bit Sample Enable/Disable Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html New user macros to manage the one-bit sample method feature for SMARTCARD. ```c #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE() __HAL_SMARTCARD_ONE_BIT_SAMPLE_ENABLE() #define __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE() __HAL_SMARTCARD_ONE_BIT_SAMPLE_DISABLE() ``` -------------------------------- ### HAL GPIO EXTI Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for clearing and getting interrupt status and flags for EXTI lines. ```C #define __HAL_GPIO_EXTI_CLEAR_IT() #define __HAL_GPIO_EXTI_GET_IT() #define __HAL_GPIO_EXTI_CLEAR_FLAG() #define __HAL_GPIO_EXTI_GET_FLAG() ``` -------------------------------- ### TIM Channel All for Encoder APIs Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html TIM_CHANNEL_ALL is now a possible value for all Encoder Start/Stop APIs. ```c /* Add TIM_CHANNEL_ALL as possible value for all Encoder Start/Stop APIs Description */ ``` -------------------------------- ### TIM Remapping Input Configuration Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for configuring TIM remapping inputs. ```C HAL_TIMEx_RemapConfig(htim, ...) { /* Remove redundant check on LPTIM_OR_TIM5_ITR1_RMP bit */ /* Replace it by check on LPTIM_OR_TIM9_ITR1_RMP bit */ ... } ``` -------------------------------- ### LPTIM Wake-up Timer EXTI Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for configuring LPTIM Wake-up Timer EXTI lines. ```C #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_FALLING_EDGE( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_FALLING_EDGE( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_EDGE( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_EDGE( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_ENABLE_RISING_FALLING_EDGE( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_DISABLE_RISING_FALLING_EDGE( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_GET_FLAG( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_CLEAR_FLAG( __EXTI_LINE__ ) ... #define __HAL_LPTIM_WAKEUPTIMER_EXTI_GENERATE_SWIT( __EXTI_LINE__ ) ... ``` -------------------------------- ### New ETH EXTI Macros for Wake Up Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros added to the ETH HAL driver to enable Wake Up from STOP mode by Ethernet event. ```c __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 Time Base Implementation Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Explanation of HAL delay and time base implementation using Systick timer, with options for user-defined time base sources. ```C /* 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 */ ``` -------------------------------- ### TIM Synchronization Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for TIM synchronization configuration. ```C #define IS_TIM_MASTER_INSTANCE( INSTANCE ) ... #define IS_TIM_SLAVE_INSTANCE( INSTANCE ) ... ``` -------------------------------- ### UART One Bit Sample Macros Rename Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Renamed macros for UART one-bit sample enable/disable. ```c #define __HAL_UART_ONEBIT_ENABLE() by __HAL_UART_ONE_BIT_SAMPLE_ENABLE() #define __HAL_UART_ONEBIT_DISABLE() by __HAL_UART_ONE_BIT_SAMPLE_DISABLE() ``` -------------------------------- ### TIM Input Remapping Definitions Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html New definitions for TIM input remapping. ```C #define LL_TIM_TIM11_TI1_RMP_SPDIFRX ... #define LL_TIM_TIM2_ITR1_RMP_ETH_PTP ... #define LL_TIM_TIM9_ITR1_RMP_TIM3_TRGO ... #define LL_TIM_TIM9_ITR1_RMP_LPTIM ... #define LL_TIM_TIM5_ITR1_RMP_TIM3_TRGO ... #define LL_TIM_TIM5_ITR1_RMP_LPTIM ... #define LL_TIM_TIM1_ITR2_RMP_TIM3_TRGO ... #define LL_TIM_TIM1_ITR2_RMP_LPTIM ... ``` -------------------------------- ### LPTIM Input Trigger Remapping API Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html API for remapping LPTIM input triggers. ```C #define LL_LPTIM_INPUT1_SRC_PAD_AF ... #define LL_LPTIM_INPUT1_SRC_PAD_PA4 ... #define LL_LPTIM_INPUT1_SRC_PAD_PB9 ... #define LL_LPTIM_INPUT1_SRC_TIM_DAC ... LL_LPTIM_SetInput1Src(hlptim, Source) { ... } ``` -------------------------------- ### Renamed PCDEx APIs and Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Renamed PCD (Peripheral Controller Driver) APIs and macros, with some moved to extension files. ```c 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 __HAL_PCD_IS_PHY_SUSPENDED() __HAL_USB_HS_EXTI_GENERATE_SWIT() __HAL_USB_FS_EXTI_GENERATE_SWIT() __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__) ``` -------------------------------- ### LIN Word Length and Oversampling Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html IS_LIN_WORD_LENGTH() and IS_LIN_OVERSAMPLING() macros added to check parameters in LIN mode. ```c Add IS_LIN_WORD_LENGTH() and IS_LIN_OVERSAMPLING() macros: to check respectively WordLength and OverSampling parameters in LIN mode ``` -------------------------------- ### USART Macros Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Macros for managing USART clock and NACK settings, and enabling/disabling one-bit sample. ```C #define USART_CLOCK_DISABLED USART_CLOCK_DISABLE #define USART_CLOCK_ENABLED USART_CLOCK_ENABLE #define USARTNACK_ENABLED USART_NACK_ENABLE #define USARTNACK_DISABLED USART_NACK_DISABLE __HAL_USART_ONE_BIT_SAMPLE_ENABLE() __HAL_USART_ONE_BIT_SAMPLE_DISABLE() ``` -------------------------------- ### TIM Break & DeadTime Parameters Check Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html HAL_TIMEx_ConfigBreakDeadTime() now includes an assert check on Break & DeadTime parameters values. ```c HAL_TIMEx_ConfigBreakDeadTime() add an assert check on Break & DeadTime parameters values ``` -------------------------------- ### LTDC Reload Event Callback Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html New callback API HAL_LTDC_ReloadEventCallback() for managing LTDC reload events. ```c void HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc) { /* Prevent unused argument(s) compilation warning */ UNUSED(hltdc); /* USER CODE BEGIN LTDC_ReloadEventCallback */ /* USER CODE END LTDC_ReloadEventCallback */ } ``` -------------------------------- ### TIM Slave Configuration in IT Mode Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html New function HAL_TIM_SlaveConfigSynchronization_IT() for TIM Slave configuration in IT mode. ```c Add new function for TIM Slave configuration in IT mode: HAL_TIM_SlaveConfigSynchronization_IT() ``` -------------------------------- ### Preventing Unused Argument Compilation Warnings Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html Update to HAL weak empty callbacks to prevent unused argument compilation warnings with some compilers. ```c UNUSED(hppp); ``` -------------------------------- ### DMA2D CLUT Loading Functions Source: https://github.com/stmicroelectronics/stm32f4xx_hal_driver/blob/master/Release_Notes.html New functions added for DMA2D CLUT (Color Look-Up Table) loading management. ```c HAL_StatusTypeDef HAL_DMA2D_CLUTLoad(DMA2D_HandleTypeDef *hdma2d, uint32_t CLUT, uint32_t CLUTSize, uint32_t CLUTColorMode); HAL_StatusTypeDef HAL_DMA2D_CLUTLoad_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t CLUT, uint32_t CLUTSize, uint32_t CLUTColorMode); HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d); HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d); HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d); ```