Update STM32F7 HAL driver to 1.5.0 version

This commit is contained in:
Sami Korhonen 2016-11-19 14:40:47 +02:00
parent cb8e8b60ab
commit 03475a1ede
144 changed files with 6623 additions and 4100 deletions

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32_hal_legacy.h * @file stm32_hal_legacy.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief This file contains aliases definition for the STM32Cube HAL constants * @brief This file contains aliases definition for the STM32Cube HAL constants
* macros and functions maintained for legacy purpose. * macros and functions maintained for legacy purpose.
****************************************************************************** ******************************************************************************
@ -138,6 +138,7 @@
#define COMP_EXTI_LINE_COMP5_EVENT COMP_EXTI_LINE_COMP5 #define COMP_EXTI_LINE_COMP5_EVENT COMP_EXTI_LINE_COMP5
#define COMP_EXTI_LINE_COMP6_EVENT COMP_EXTI_LINE_COMP6 #define COMP_EXTI_LINE_COMP6_EVENT COMP_EXTI_LINE_COMP6
#define COMP_EXTI_LINE_COMP7_EVENT COMP_EXTI_LINE_COMP7 #define COMP_EXTI_LINE_COMP7_EVENT COMP_EXTI_LINE_COMP7
#define COMP_LPTIMCONNECTION_ENABLED COMP_LPTIMCONNECTION_IN1_ENABLED /*!< COMPX output is connected to LPTIM input 1 */
#define COMP_OUTPUT_COMP6TIM2OCREFCLR COMP_OUTPUT_COMP6_TIM2OCREFCLR #define COMP_OUTPUT_COMP6TIM2OCREFCLR COMP_OUTPUT_COMP6_TIM2OCREFCLR
#if defined(STM32F373xC) || defined(STM32F378xx) #if defined(STM32F373xC) || defined(STM32F378xx)
#define COMP_OUTPUT_TIM3IC1 COMP_OUTPUT_COMP1_TIM3IC1 #define COMP_OUTPUT_TIM3IC1 COMP_OUTPUT_COMP1_TIM3IC1
@ -150,6 +151,9 @@
#define COMP_NONINVERTINGINPUT_IO1 COMP_INPUT_PLUS_IO1 #define COMP_NONINVERTINGINPUT_IO1 COMP_INPUT_PLUS_IO1
#define COMP_NONINVERTINGINPUT_IO2 COMP_INPUT_PLUS_IO2 #define COMP_NONINVERTINGINPUT_IO2 COMP_INPUT_PLUS_IO2
#define COMP_NONINVERTINGINPUT_IO3 COMP_INPUT_PLUS_IO3 #define COMP_NONINVERTINGINPUT_IO3 COMP_INPUT_PLUS_IO3
#define COMP_NONINVERTINGINPUT_IO4 COMP_INPUT_PLUS_IO4
#define COMP_NONINVERTINGINPUT_IO5 COMP_INPUT_PLUS_IO5
#define COMP_NONINVERTINGINPUT_IO6 COMP_INPUT_PLUS_IO6
#define COMP_INVERTINGINPUT_1_4VREFINT COMP_INPUT_MINUS_1_4VREFINT #define COMP_INVERTINGINPUT_1_4VREFINT COMP_INPUT_MINUS_1_4VREFINT
#define COMP_INVERTINGINPUT_1_2VREFINT COMP_INPUT_MINUS_1_2VREFINT #define COMP_INVERTINGINPUT_1_2VREFINT COMP_INPUT_MINUS_1_2VREFINT
@ -160,8 +164,16 @@
#define COMP_INVERTINGINPUT_DAC1 COMP_INPUT_MINUS_DAC1_CH1 #define COMP_INVERTINGINPUT_DAC1 COMP_INPUT_MINUS_DAC1_CH1
#define COMP_INVERTINGINPUT_DAC2 COMP_INPUT_MINUS_DAC1_CH2 #define COMP_INVERTINGINPUT_DAC2 COMP_INPUT_MINUS_DAC1_CH2
#define COMP_INVERTINGINPUT_IO1 COMP_INPUT_MINUS_IO1 #define COMP_INVERTINGINPUT_IO1 COMP_INPUT_MINUS_IO1
#if defined(STM32L0)
/* Issue fixed on STM32L0 COMP driver: only 2 dedicated IO (IO1 and IO2), */
/* IO2 was wrongly assigned to IO shared with DAC and IO3 was corresponding */
/* to the second dedicated IO (only for COMP2). */
#define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_DAC1_CH2
#define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO2
#else
#define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_IO2 #define COMP_INVERTINGINPUT_IO2 COMP_INPUT_MINUS_IO2
#define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO3 #define COMP_INVERTINGINPUT_IO3 COMP_INPUT_MINUS_IO3
#endif
#define COMP_INVERTINGINPUT_IO4 COMP_INPUT_MINUS_IO4 #define COMP_INVERTINGINPUT_IO4 COMP_INPUT_MINUS_IO4
#define COMP_INVERTINGINPUT_IO5 COMP_INPUT_MINUS_IO5 #define COMP_INVERTINGINPUT_IO5 COMP_INPUT_MINUS_IO5
@ -344,6 +356,7 @@
#define OB_RDP_LEVEL0 OB_RDP_LEVEL_0 #define OB_RDP_LEVEL0 OB_RDP_LEVEL_0
#define OB_RDP_LEVEL1 OB_RDP_LEVEL_1 #define OB_RDP_LEVEL1 OB_RDP_LEVEL_1
#define OB_RDP_LEVEL2 OB_RDP_LEVEL_2 #define OB_RDP_LEVEL2 OB_RDP_LEVEL_2
/** /**
* @} * @}
*/ */
@ -841,6 +854,8 @@
#define __DIVFRAQ_SAMPLING8 UART_DIVFRAQ_SAMPLING8 #define __DIVFRAQ_SAMPLING8 UART_DIVFRAQ_SAMPLING8
#define __UART_BRR_SAMPLING8 UART_BRR_SAMPLING8 #define __UART_BRR_SAMPLING8 UART_BRR_SAMPLING8
#define __DIV_LPUART UART_DIV_LPUART
#define UART_WAKEUPMETHODE_IDLELINE UART_WAKEUPMETHOD_IDLELINE #define UART_WAKEUPMETHODE_IDLELINE UART_WAKEUPMETHOD_IDLELINE
#define UART_WAKEUPMETHODE_ADDRESSMARK UART_WAKEUPMETHOD_ADDRESSMARK #define UART_WAKEUPMETHODE_ADDRESSMARK UART_WAKEUPMETHOD_ADDRESSMARK
@ -2637,10 +2652,22 @@
#define RCC_IT_HSI14 RCC_IT_HSI14RDY #define RCC_IT_HSI14 RCC_IT_HSI14RDY
#if defined(STM32L0) #define RCC_IT_CSSLSE RCC_IT_LSECSS
#define RCC_IT_LSECSS RCC_IT_CSSLSE #define RCC_IT_CSSHSE RCC_IT_CSS
#define RCC_IT_CSS RCC_IT_CSSHSE
#endif #define RCC_PLLMUL_3 RCC_PLL_MUL3
#define RCC_PLLMUL_4 RCC_PLL_MUL4
#define RCC_PLLMUL_6 RCC_PLL_MUL6
#define RCC_PLLMUL_8 RCC_PLL_MUL8
#define RCC_PLLMUL_12 RCC_PLL_MUL12
#define RCC_PLLMUL_16 RCC_PLL_MUL16
#define RCC_PLLMUL_24 RCC_PLL_MUL24
#define RCC_PLLMUL_32 RCC_PLL_MUL32
#define RCC_PLLMUL_48 RCC_PLL_MUL48
#define RCC_PLLDIV_2 RCC_PLL_DIV2
#define RCC_PLLDIV_3 RCC_PLL_DIV3
#define RCC_PLLDIV_4 RCC_PLL_DIV4
#define IS_RCC_MCOSOURCE IS_RCC_MCO1SOURCE #define IS_RCC_MCOSOURCE IS_RCC_MCO1SOURCE
#define __HAL_RCC_MCO_CONFIG __HAL_RCC_MCO1_CONFIG #define __HAL_RCC_MCO_CONFIG __HAL_RCC_MCO1_CONFIG

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal.h * @file stm32f7xx_hal.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief This file contains all the functions prototypes for the HAL * @brief This file contains all the functions prototypes for the HAL
* module driver. * module driver.
****************************************************************************** ******************************************************************************

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_adc.h * @file stm32f7xx_hal_adc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of ADC HAL extension module. * @brief Header file of ADC HAL extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_adc.h * @file stm32f7xx_hal_adc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of ADC HAL module. * @brief Header file of ADC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_can.h * @file stm32f7xx_hal_can.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CAN HAL module. * @brief Header file of CAN HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cec.h * @file stm32f7xx_hal_cec.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CEC HAL module. * @brief Header file of CEC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,6 +43,8 @@
extern "C" { extern "C" {
#endif #endif
#if defined (CEC)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
@ -737,7 +739,9 @@ uint32_t HAL_CEC_GetError(CEC_HandleTypeDef *hcec);
/** /**
* @} * @}
*/ */
#endif /* CEC */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_conf_template.h * @file stm32f7xx_hal_conf_template.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief HAL configuration template file. * @brief HAL configuration template file.
* This file should be copied to the application folder and renamed * This file should be copied to the application folder and renamed
* to stm32f7xx_hal_conf.h. * to stm32f7xx_hal_conf.h.

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cortex.h * @file stm32f7xx_hal_cortex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CORTEX HAL module. * @brief Header file of CORTEX HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -291,6 +291,8 @@ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb);
*/ */
/* Peripheral Control functions ***********************************************/ /* Peripheral Control functions ***********************************************/
#if (__MPU_PRESENT == 1) #if (__MPU_PRESENT == 1)
void HAL_MPU_Enable(uint32_t MPU_Control);
void HAL_MPU_Disable(void);
void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init); void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init);
#endif /* __MPU_PRESENT */ #endif /* __MPU_PRESENT */
uint32_t HAL_NVIC_GetPriorityGrouping(void); uint32_t HAL_NVIC_GetPriorityGrouping(void);
@ -401,53 +403,8 @@ void HAL_SYSTICK_Callback(void);
#endif /* __MPU_PRESENT */ #endif /* __MPU_PRESENT */
/** /**
* @}
*/
/* Private functions ---------------------------------------------------------*/
/** @defgroup CORTEX_Private_Functions CORTEX Private Functions
* @brief CORTEX private functions
* @{
*/
#if (__MPU_PRESENT == 1)
/**
* @brief Disables the MPU
* @retval None
*/
__STATIC_INLINE void HAL_MPU_Disable(void)
{
/* Disable fault exceptions */
SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk;
/* Disable the MPU */
MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk;
}
/**
* @brief Enables the MPU
* @param MPU_Control: Specifies the control mode of the MPU during hard fault,
* NMI, FAULTMASK and privileged access to the default memory
* This parameter can be one of the following values:
* @arg MPU_HFNMI_PRIVDEF_NONE
* @arg MPU_HARDFAULT_NMI
* @arg MPU_PRIVILEGED_DEFAULT
* @arg MPU_HFNMI_PRIVDEF
* @retval None
*/
__STATIC_INLINE void HAL_MPU_Enable(uint32_t MPU_Control)
{
/* Enable the MPU */
MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk;
/* Enable fault exceptions */
SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;
}
#endif /* __MPU_PRESENT */
/**
* @} * @}
*/ */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_crc.h * @file stm32f7xx_hal_crc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CRC HAL module. * @brief Header file of CRC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_crc_ex.h * @file stm32f7xx_hal_crc_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CRC HAL extension module. * @brief Header file of CRC HAL extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cryp.h * @file stm32f7xx_hal_cryp.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CRYP HAL module. * @brief Header file of CRYP HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,10 +43,10 @@
extern "C" { extern "C" {
#endif #endif
#if defined (STM32F756xx) || defined (STM32F777xx) || defined (STM32F779xx)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
#if defined (CRYP)
/** @addtogroup STM32F7xx_HAL_Driver /** @addtogroup STM32F7xx_HAL_Driver
* @{ * @{
*/ */
@ -521,7 +521,7 @@ HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp);
* @} * @}
*/ */
#endif /* STM32F756xx || STM32F777xx || STM32F779xx */ #endif /* CRYP */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cryp_ex.h * @file stm32f7xx_hal_cryp_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of CRYP HAL Extension module. * @brief Header file of CRYP HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,10 +43,11 @@
extern "C" { extern "C" {
#endif #endif
#if defined (STM32F756xx) || defined (STM32F777xx) || defined (STM32F779xx)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
#if defined (CRYP)
/** @addtogroup STM32F7xx_HAL_Driver /** @addtogroup STM32F7xx_HAL_Driver
* @{ * @{
*/ */
@ -206,7 +207,8 @@ void HAL_CRYPEx_GCMCCM_IRQHandler(CRYP_HandleTypeDef *hcryp);
* @} * @}
*/ */
#endif /* STM32F756xx || STM32F777xx || STM32F779xx */ #endif /* CRYP */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dac.h * @file stm32f7xx_hal_dac.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DAC HAL module. * @brief Header file of DAC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dac.h * @file stm32f7xx_hal_dac.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DAC HAL Extension module. * @brief Header file of DAC HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dcmi.h * @file stm32f7xx_hal_dcmi.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DCMI HAL module. * @brief Header file of DCMI HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,6 +43,8 @@
extern "C" { extern "C" {
#endif #endif
#if defined (DCMI)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
@ -615,6 +617,7 @@ uint32_t HAL_DCMI_GetError(DCMI_HandleTypeDef *hdcmi);
/** /**
* @} * @}
*/ */
#endif /* DCMI */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dcmi_ex.h * @file stm32f7xx_hal_dcmi_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DCMI Extension HAL module. * @brief Header file of DCMI Extension HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_def.h * @file stm32f7xx_hal_def.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief This file contains HAL common defines, enumeration, macros and * @brief This file contains HAL common defines, enumeration, macros and
* structures definitions. * structures definitions.
****************************************************************************** ******************************************************************************

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dfsdm.h * @file stm32f7xx_hal_dfsdm.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DFSDM HAL module. * @brief Header file of DFSDM HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dma.h * @file stm32f7xx_hal_dma.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DMA HAL module. * @brief Header file of DMA HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dma2d.h * @file stm32f7xx_hal_dma2d.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DMA2D HAL module. * @brief Header file of DMA2D HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,6 +43,8 @@
extern "C" { extern "C" {
#endif #endif
#if defined (DMA2D)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
@ -624,6 +626,7 @@ uint32_t HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d);
* @} * @}
*/ */
#endif /* DMA2D */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dma_ex.h * @file stm32f7xx_hal_dma_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DMA HAL extension module. * @brief Header file of DMA HAL extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dsi.h * @file stm32f7xx_hal_dsi.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of DSI HAL module. * @brief Header file of DSI HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_eth.h * @file stm32f7xx_hal_eth.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of ETH HAL module. * @brief Header file of ETH HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,6 +43,8 @@
extern "C" { extern "C" {
#endif #endif
#if defined (ETH)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
@ -692,7 +694,7 @@ typedef struct
/* 5 Ethernet driver receive buffers are used (in a chained linked list)*/ /* 5 Ethernet driver receive buffers are used (in a chained linked list)*/
#ifndef ETH_RXBUFNB #ifndef ETH_RXBUFNB
#define ETH_RXBUFNB ((uint32_t)5U /* 5 Rx buffers of size ETH_RX_BUF_SIZE */ #define ETH_RXBUFNB ((uint32_t)5U) /* 5 Rx buffers of size ETH_RX_BUF_SIZE */
#endif #endif
@ -719,7 +721,7 @@ typedef struct
/* 5 Ethernet driver transmit buffers are used (in a chained linked list)*/ /* 5 Ethernet driver transmit buffers are used (in a chained linked list)*/
#ifndef ETH_TXBUFNB #ifndef ETH_TXBUFNB
#define ETH_TXBUFNB ((uint32_t)5U /* 5 Tx buffers of size ETH_TX_BUF_SIZE */ #define ETH_TXBUFNB ((uint32_t)5U) /* 5 Tx buffers of size ETH_TX_BUF_SIZE */
#endif #endif
/** /**
@ -2169,6 +2171,8 @@ HAL_ETH_StateTypeDef HAL_ETH_GetState(ETH_HandleTypeDef *heth);
/** /**
* @} * @}
*/ */
#endif /* ETH */
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_flash.h * @file stm32f7xx_hal_flash.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of FLASH HAL module. * @brief Header file of FLASH HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -136,7 +136,11 @@ typedef struct
#define FLASH_FLAG_PGAERR FLASH_SR_PGAERR /*!< FLASH Programming Alignment error flag */ #define FLASH_FLAG_PGAERR FLASH_SR_PGAERR /*!< FLASH Programming Alignment error flag */
#define FLASH_FLAG_PGPERR FLASH_SR_PGPERR /*!< FLASH Programming Parallelism error flag */ #define FLASH_FLAG_PGPERR FLASH_SR_PGPERR /*!< FLASH Programming Parallelism error flag */
#define FLASH_FLAG_ERSERR FLASH_SR_ERSERR /*!< FLASH Erasing Sequence error flag */ #define FLASH_FLAG_ERSERR FLASH_SR_ERSERR /*!< FLASH Erasing Sequence error flag */
#define FLASH_FLAG_BSY FLASH_SR_BSY /*!< FLASH Busy flag */ #define FLASH_FLAG_BSY FLASH_SR_BSY /*!< FLASH Busy flag */
#define FLASH_FLAG_ALL_ERRORS (FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \
FLASH_FLAG_PGPERR | FLASH_FLAG_ERSERR)
/** /**
* @} * @}
*/ */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_flash_ex.h * @file stm32f7xx_hal_flash_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of FLASH HAL Extension module. * @brief Header file of FLASH HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -540,7 +540,7 @@ void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit);
((SECTOR) == FLASH_SECTOR_4) || ((SECTOR) == FLASH_SECTOR_5) ||\ ((SECTOR) == FLASH_SECTOR_4) || ((SECTOR) == FLASH_SECTOR_5) ||\
((SECTOR) == FLASH_SECTOR_6) || ((SECTOR) == FLASH_SECTOR_7)) ((SECTOR) == FLASH_SECTOR_6) || ((SECTOR) == FLASH_SECTOR_7))
#define IS_OB_WRP_SECTOR(SECTOR) ((((SECTOR) & (uint32_t)0xFF00FFFF) == 0x00000000U) && ((SECTOR) != 0x00000000U)) #define IS_OB_WRP_SECTOR(SECTOR) ((((SECTOR) & 0xFF00FFFFU) == 0x00000000U) && ((SECTOR) != 0x00000000U))
#endif /* FLASH_SECTOR_TOTAL == 8 */ #endif /* FLASH_SECTOR_TOTAL == 8 */
#if (FLASH_SECTOR_TOTAL == 24) #if (FLASH_SECTOR_TOTAL == 24)
@ -557,7 +557,7 @@ void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit);
((SECTOR) == FLASH_SECTOR_20) || ((SECTOR) == FLASH_SECTOR_21) ||\ ((SECTOR) == FLASH_SECTOR_20) || ((SECTOR) == FLASH_SECTOR_21) ||\
((SECTOR) == FLASH_SECTOR_22) || ((SECTOR) == FLASH_SECTOR_23)) ((SECTOR) == FLASH_SECTOR_22) || ((SECTOR) == FLASH_SECTOR_23))
#define IS_OB_WRP_SECTOR(SECTOR) ((((SECTOR) & (uint32_t)0xF000FFFFU) == 0x00000000U) && ((SECTOR) != 0x00000000U)) #define IS_OB_WRP_SECTOR(SECTOR) ((((SECTOR) & 0xF000FFFFU) == 0x00000000U) && ((SECTOR) != 0x00000000U))
#endif /* FLASH_SECTOR_TOTAL == 24 */ #endif /* FLASH_SECTOR_TOTAL == 24 */
#if defined (FLASH_OPTCR_nDBANK) #if defined (FLASH_OPTCR_nDBANK)

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_gpio.h * @file stm32f7xx_hal_gpio.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of GPIO HAL module. * @brief Header file of GPIO HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -280,7 +280,7 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin);
* @{ * @{
*/ */
#define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET)) #define IS_GPIO_PIN_ACTION(ACTION) (((ACTION) == GPIO_PIN_RESET) || ((ACTION) == GPIO_PIN_SET))
#define IS_GPIO_PIN(PIN) (((PIN) & GPIO_PIN_MASK ) != (uint32_t)0x00) #define IS_GPIO_PIN(__PIN__) ((((__PIN__) & GPIO_PIN_MASK) != (uint32_t)0x00))
#define IS_GPIO_MODE(MODE) (((MODE) == GPIO_MODE_INPUT) ||\ #define IS_GPIO_MODE(MODE) (((MODE) == GPIO_MODE_INPUT) ||\
((MODE) == GPIO_MODE_OUTPUT_PP) ||\ ((MODE) == GPIO_MODE_OUTPUT_PP) ||\
((MODE) == GPIO_MODE_OUTPUT_OD) ||\ ((MODE) == GPIO_MODE_OUTPUT_OD) ||\

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_gpio_ex.h * @file stm32f7xx_hal_gpio_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of GPIO HAL Extension module. * @brief Header file of GPIO HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -64,7 +64,9 @@
/** @defgroup GPIO_Alternate_function_selection GPIO Alternate Function Selection /** @defgroup GPIO_Alternate_function_selection GPIO Alternate Function Selection
* @{ * @{
*/ */
/*--------------- STM32F74xxx/STM32F75xxx/STM32F76xxx/STM32F77xxx -------------*/
#if defined (STM32F745xx) || defined (STM32F746xx) || defined (STM32F756xx) || defined (STM32F765xx) || defined (STM32F767xx) ||\
defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
/** /**
* @brief AF 0 selection * @brief AF 0 selection
*/ */
@ -188,7 +190,8 @@
#define GPIO_AF10_SAI2 ((uint8_t)0xAU) /* SAI2 Alternate Function mapping */ #define GPIO_AF10_SAI2 ((uint8_t)0xAU) /* SAI2 Alternate Function mapping */
#if defined (STM32F765xx) || defined(STM32F767xx) || defined(STM32F769xx) || defined(STM32F777xx) || defined(STM32F779xx) #if defined (STM32F765xx) || defined(STM32F767xx) || defined(STM32F769xx) || defined(STM32F777xx) || defined(STM32F779xx)
#define GPIO_AF10_DFSDM1 ((uint8_t)0x0AU) /* DFSDM1 Alternate Function mapping */ #define GPIO_AF10_DFSDM1 ((uint8_t)0x0AU) /* DFSDM1 Alternate Function mapping */
#define GPIO_AF10_SDMMC2 ((uint8_t)0x0AU) /* SDMMC2 Alternate Function mapping */ #define GPIO_AF10_SDMMC2 ((uint8_t)0x0AU) /* SDMMC2 Alternate Function mapping */
#define GPIO_AF10_LTDC ((uint8_t)0x0AU) /* LCD-TFT Alternate Function mapping */
#endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
/** /**
@ -231,7 +234,8 @@
* @brief AF 15 selection * @brief AF 15 selection
*/ */
#define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */ #define GPIO_AF15_EVENTOUT ((uint8_t)0x0FU) /* EVENTOUT Alternate Function mapping */
#endif /* STM32F745xx || STM32F746xx || STM32F756xx || STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
/*----------------------------------------------------------------------------*/
/** /**
* @} * @}
@ -291,6 +295,8 @@
/** @defgroup GPIOEx_Get_Port_Index GPIO Get Port Index /** @defgroup GPIOEx_Get_Port_Index GPIO Get Port Index
* @{ * @{
*/ */
#if defined (STM32F745xx) || defined (STM32F746xx) || defined (STM32F756xx) || defined (STM32F765xx) ||\
defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
#define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\ #define GPIO_GET_INDEX(__GPIOx__) (uint8_t)(((__GPIOx__) == (GPIOA))? 0U :\
((__GPIOx__) == (GPIOB))? 1U :\ ((__GPIOx__) == (GPIOB))? 1U :\
((__GPIOx__) == (GPIOC))? 2U :\ ((__GPIOx__) == (GPIOC))? 2U :\
@ -300,7 +306,9 @@
((__GPIOx__) == (GPIOG))? 6U :\ ((__GPIOx__) == (GPIOG))? 6U :\
((__GPIOx__) == (GPIOH))? 7U :\ ((__GPIOx__) == (GPIOH))? 7U :\
((__GPIOx__) == (GPIOI))? 8U :\ ((__GPIOx__) == (GPIOI))? 8U :\
((__GPIOx__) == (GPIOJ))? 9U : 10U) ((__GPIOx__) == (GPIOJ))? 9U : 10U)
#endif /* STM32F745xx || STM32F746xx || STM32F756xx || STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
/** /**
* @} * @}
*/ */
@ -352,9 +360,9 @@
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF15_EVENTOUT) || \ ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF15_EVENTOUT) || \
((AF) == GPIO_AF13_DCMI) || ((AF) == GPIO_AF14_LTDC)) ((AF) == GPIO_AF13_DCMI) || ((AF) == GPIO_AF14_LTDC))
#elif defined(STM32F745xx) #elif defined(STM32F745xx)
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF1_TIM1) || \ #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF1_TIM1) || \
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF1_TIM2) || \ ((AF) == GPIO_AF0_MCO) || ((AF) == GPIO_AF1_TIM2) || \
((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \ ((AF) == GPIO_AF2_TIM3) || ((AF) == GPIO_AF2_TIM4) || \
((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \ ((AF) == GPIO_AF2_TIM5) || ((AF) == GPIO_AF3_TIM8) || \
((AF) == GPIO_AF3_TIM9) || ((AF) == GPIO_AF3_TIM10) || \ ((AF) == GPIO_AF3_TIM9) || ((AF) == GPIO_AF3_TIM10) || \
@ -379,7 +387,7 @@
((AF) == GPIO_AF13_DCMI) || ((AF) == GPIO_AF10_OTG_FS) || \ ((AF) == GPIO_AF13_DCMI) || ((AF) == GPIO_AF10_OTG_FS) || \
((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \ ((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \
((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \ ((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \
((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDMMC1) || \ ((AF) == GPIO_AF12_OTG_HS_FS) || ((AF) == GPIO_AF12_SDMMC1) || \
((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF15_EVENTOUT)) ((AF) == GPIO_AF12_FMC) || ((AF) == GPIO_AF15_EVENTOUT))
#elif defined(STM32F767xx) || defined(STM32F777xx) #elif defined(STM32F767xx) || defined(STM32F777xx)
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF1_TIM1) || \ #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF1_TIM1) || \
@ -409,10 +417,11 @@
((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF9_LTDC) || \ ((AF) == GPIO_AF10_OTG_FS) || ((AF) == GPIO_AF9_LTDC) || \
((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \ ((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \
((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \ ((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \
((AF) == GPIO_AF10_SDMMC2) || ((AF) == GPIO_AF11_SDMMC2) || \
((AF) == GPIO_AF11_CAN3) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ ((AF) == GPIO_AF11_CAN3) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
((AF) == GPIO_AF12_SDMMC1) || ((AF) == GPIO_AF12_FMC) || \ ((AF) == GPIO_AF12_SDMMC1) || ((AF) == GPIO_AF12_FMC) || \
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF13_DCMI) || \ ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF13_DCMI) || \
((AF) == GPIO_AF14_LTDC)) ((AF) == GPIO_AF14_LTDC))
#elif defined(STM32F769xx) || defined(STM32F779xx) #elif defined(STM32F769xx) || defined(STM32F779xx)
#define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF1_TIM1) || \ #define IS_GPIO_AF(AF) (((AF) == GPIO_AF0_RTC_50Hz) || ((AF) == GPIO_AF1_TIM1) || \
((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \ ((AF) == GPIO_AF0_SWJ) || ((AF) == GPIO_AF0_TRACE) || \
@ -441,6 +450,7 @@
((AF) == GPIO_AF9_LTDC) || ((AF) == GPIO_AF10_OTG_FS) || \ ((AF) == GPIO_AF9_LTDC) || ((AF) == GPIO_AF10_OTG_FS) || \
((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \ ((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \
((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \ ((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \
((AF) == GPIO_AF10_SDMMC2) || ((AF) == GPIO_AF11_SDMMC2) || \
((AF) == GPIO_AF11_CAN3) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ ((AF) == GPIO_AF11_CAN3) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
((AF) == GPIO_AF12_SDMMC1) || ((AF) == GPIO_AF12_FMC) || \ ((AF) == GPIO_AF12_SDMMC1) || ((AF) == GPIO_AF12_FMC) || \
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF13_DCMI) || \ ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF13_DCMI) || \
@ -472,6 +482,7 @@
((AF) == GPIO_AF9_TIM14) || ((AF) == GPIO_AF9_QUADSPI) || \ ((AF) == GPIO_AF9_TIM14) || ((AF) == GPIO_AF9_QUADSPI) || \
((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \ ((AF) == GPIO_AF10_OTG_HS) || ((AF) == GPIO_AF10_SAI2) || \
((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \ ((AF) == GPIO_AF10_QUADSPI) || ((AF) == GPIO_AF11_ETH) || \
((AF) == GPIO_AF10_SDMMC2) || ((AF) == GPIO_AF11_SDMMC2) || \
((AF) == GPIO_AF11_CAN3) || ((AF) == GPIO_AF12_OTG_HS_FS) || \ ((AF) == GPIO_AF11_CAN3) || ((AF) == GPIO_AF12_OTG_HS_FS) || \
((AF) == GPIO_AF12_SDMMC1) || ((AF) == GPIO_AF12_FMC) || \ ((AF) == GPIO_AF12_SDMMC1) || ((AF) == GPIO_AF12_FMC) || \
((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF13_DCMI) || \ ((AF) == GPIO_AF15_EVENTOUT) || ((AF) == GPIO_AF13_DCMI) || \

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_hash.h * @file stm32f7xx_hal_hash.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of HASH HAL module. * @brief Header file of HASH HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_hash_ex.h * @file stm32f7xx_hal_hash_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of HASH HAL Extension module. * @brief Header file of HASH HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_hcd.h * @file stm32f7xx_hal_hcd.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of HCD HAL module. * @brief Header file of HCD HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_i2c.h * @file stm32f7xx_hal_i2c.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of I2C HAL module. * @brief Header file of I2C HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -247,8 +247,8 @@ typedef struct __I2C_HandleTypeDef
/** @defgroup I2C_XFEROPTIONS I2C Sequential Transfer Options /** @defgroup I2C_XFEROPTIONS I2C Sequential Transfer Options
* @{ * @{
*/ */
#define I2C_NO_OPTION_FRAME ((uint32_t)0xFFFF0000U)
#define I2C_FIRST_FRAME ((uint32_t)I2C_SOFTEND_MODE) #define I2C_FIRST_FRAME ((uint32_t)I2C_SOFTEND_MODE)
#define I2C_FIRST_AND_NEXT_FRAME ((uint32_t)(I2C_RELOAD_MODE | I2C_SOFTEND_MODE))
#define I2C_NEXT_FRAME ((uint32_t)(I2C_RELOAD_MODE | I2C_SOFTEND_MODE)) #define I2C_NEXT_FRAME ((uint32_t)(I2C_RELOAD_MODE | I2C_SOFTEND_MODE))
#define I2C_FIRST_AND_LAST_FRAME ((uint32_t)I2C_AUTOEND_MODE) #define I2C_FIRST_AND_LAST_FRAME ((uint32_t)I2C_AUTOEND_MODE)
#define I2C_LAST_FRAME ((uint32_t)I2C_AUTOEND_MODE) #define I2C_LAST_FRAME ((uint32_t)I2C_AUTOEND_MODE)
@ -660,6 +660,7 @@ uint32_t HAL_I2C_GetError(I2C_HandleTypeDef *hi2c);
((REQUEST) == I2C_NO_STARTSTOP)) ((REQUEST) == I2C_NO_STARTSTOP))
#define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_FIRST_FRAME) || \ #define IS_I2C_TRANSFER_OPTIONS_REQUEST(REQUEST) (((REQUEST) == I2C_FIRST_FRAME) || \
((REQUEST) == I2C_FIRST_AND_NEXT_FRAME) || \
((REQUEST) == I2C_NEXT_FRAME) || \ ((REQUEST) == I2C_NEXT_FRAME) || \
((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || \ ((REQUEST) == I2C_FIRST_AND_LAST_FRAME) || \
((REQUEST) == I2C_LAST_FRAME)) ((REQUEST) == I2C_LAST_FRAME))

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_i2c_ex.h * @file stm32f7xx_hal_i2c_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of I2C HAL Extension module. * @brief Header file of I2C HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_i2s.h * @file stm32f7xx_hal_i2s.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of I2S HAL module. * @brief Header file of I2S HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_irda.h * @file stm32f7xx_hal_irda.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of IRDA HAL module. * @brief Header file of IRDA HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -157,7 +157,8 @@ typedef enum
IRDA_CLOCKSOURCE_PCLK2 = 0x01U, /*!< PCLK2 clock source */ IRDA_CLOCKSOURCE_PCLK2 = 0x01U, /*!< PCLK2 clock source */
IRDA_CLOCKSOURCE_HSI = 0x02U, /*!< HSI clock source */ IRDA_CLOCKSOURCE_HSI = 0x02U, /*!< HSI clock source */
IRDA_CLOCKSOURCE_SYSCLK = 0x04U, /*!< SYSCLK clock source */ IRDA_CLOCKSOURCE_SYSCLK = 0x04U, /*!< SYSCLK clock source */
IRDA_CLOCKSOURCE_LSE = 0x08U /*!< LSE clock source */ IRDA_CLOCKSOURCE_LSE = 0x08U, /*!< LSE clock source */
IRDA_CLOCKSOURCE_UNDEFINED = 0x10 /*!< Undefined clock source */
}IRDA_ClockSourceTypeDef; }IRDA_ClockSourceTypeDef;
/** /**
@ -173,13 +174,13 @@ typedef struct
uint16_t TxXferSize; /* IRDA Tx Transfer size */ uint16_t TxXferSize; /* IRDA Tx Transfer size */
uint16_t TxXferCount; /* IRDA Tx Transfer Counter */ __IO uint16_t TxXferCount; /* IRDA Tx Transfer Counter */
uint8_t *pRxBuffPtr; /* Pointer to IRDA Rx transfer Buffer */ uint8_t *pRxBuffPtr; /* Pointer to IRDA Rx transfer Buffer */
uint16_t RxXferSize; /* IRDA Rx Transfer size */ uint16_t RxXferSize; /* IRDA Rx Transfer size */
uint16_t RxXferCount; /* IRDA Rx Transfer Counter */ __IO uint16_t RxXferCount; /* IRDA Rx Transfer Counter */
uint16_t Mask; /* IRDA RX RDR register mask */ uint16_t Mask; /* IRDA RX RDR register mask */
@ -401,6 +402,60 @@ typedef struct
*/ */
#define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_IRDA_STATE_RESET) #define __HAL_IRDA_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_IRDA_STATE_RESET)
/** @brief Flush the IRDA DR register.
* @param __HANDLE__: specifies the IRDA Handle.
* @retval None
*/
#define __HAL_IRDA_FLUSH_DRREGISTER(__HANDLE__) \
do{ \
SET_BIT((__HANDLE__)->Instance->RQR, IRDA_RXDATA_FLUSH_REQUEST); \
SET_BIT((__HANDLE__)->Instance->RQR, IRDA_TXDATA_FLUSH_REQUEST); \
} while(0)
/** @brief Clear the specified IRDA pending flag.
* @param __HANDLE__: specifies the IRDA Handle.
* @param __FLAG__: specifies the flag to check.
* This parameter can be any combination of the following values:
* @arg @ref IRDA_CLEAR_PEF
* @arg @ref IRDA_CLEAR_FEF
* @arg @ref IRDA_CLEAR_NEF
* @arg @ref IRDA_CLEAR_OREF
* @arg @ref IRDA_CLEAR_TCF
* @retval None
*/
#define __HAL_IRDA_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
/** @brief Clear the IRDA PE pending flag.
* @param __HANDLE__: specifies the IRDA Handle.
* @retval None
*/
#define __HAL_IRDA_CLEAR_PEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_PEF)
/** @brief Clear the IRDA FE pending flag.
* @param __HANDLE__: specifies the IRDA Handle.
* @retval None
*/
#define __HAL_IRDA_CLEAR_FEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_FEF)
/** @brief Clear the IRDA NE pending flag.
* @param __HANDLE__: specifies the IRDA Handle.
* @retval None
*/
#define __HAL_IRDA_CLEAR_NEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_NEF)
/** @brief Clear the IRDA ORE pending flag.
* @param __HANDLE__: specifies the IRDA Handle.
* @retval None
*/
#define __HAL_IRDA_CLEAR_OREFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_OREF)
/** @brief Clear the IRDA IDLE pending flag.
* @param __HANDLE__: specifies the IRDA Handle.
* @retval None
*/
#define __HAL_IRDA_CLEAR_IDLEFLAG(__HANDLE__) __HAL_IRDA_CLEAR_FLAG((__HANDLE__), IRDA_CLEAR_IDLEF)
/** @brief Check whether the specified IRDA flag is set or not. /** @brief Check whether the specified IRDA flag is set or not.
* @param __HANDLE__: specifies the IRDA Handle. * @param __HANDLE__: specifies the IRDA Handle.
* The Handle Instance which can be USART1 or USART2. * The Handle Instance which can be USART1 or USART2.
@ -575,12 +630,24 @@ HAL_StatusTypeDef HAL_IRDA_Receive_DMA(IRDA_HandleTypeDef *hirda, uint8_t *pData
HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda); HAL_StatusTypeDef HAL_IRDA_DMAPause(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda); HAL_StatusTypeDef HAL_IRDA_DMAResume(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda); HAL_StatusTypeDef HAL_IRDA_DMAStop(IRDA_HandleTypeDef *hirda);
/* Transfer Abort functions */
HAL_StatusTypeDef HAL_IRDA_Abort(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortTransmit(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortReceive(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_Abort_IT(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortTransmit_IT(IRDA_HandleTypeDef *hirda);
HAL_StatusTypeDef HAL_IRDA_AbortReceive_IT(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda); void HAL_IRDA_IRQHandler(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda); void HAL_IRDA_TxCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda); void HAL_IRDA_RxCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda); void HAL_IRDA_TxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda); void HAL_IRDA_RxHalfCpltCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda); void HAL_IRDA_ErrorCallback(IRDA_HandleTypeDef *hirda);
void HAL_IRDA_AbortCpltCallback (IRDA_HandleTypeDef *hirda);
void HAL_IRDA_AbortTransmitCpltCallback (IRDA_HandleTypeDef *hirda);
void HAL_IRDA_AbortReceiveCpltCallback (IRDA_HandleTypeDef *hirda);
/** /**
* @} * @}
*/ */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_irda_ex.h * @file stm32f7xx_hal_irda_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of IRDA HAL Extension module. * @brief Header file of IRDA HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_iwdg.h * @file stm32f7xx_hal_iwdg.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of IWDG HAL module. * @brief Header file of IWDG HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_jpeg.h * @file stm32f7xx_hal_jpeg.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of JPEG HAL module. * @brief Header file of JPEG HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -128,7 +128,7 @@ typedef struct
DMA_HandleTypeDef *hdmaout; /*!< JPEG Out DMA handle parameters */ DMA_HandleTypeDef *hdmaout; /*!< JPEG Out DMA handle parameters */
uint8_t CustomQuanTable; /*!< If set to 1 specify that user customized quantization tables are used */ uint8_t CustomQuanTable; /*!< If set to 1 specify that user customized quantization tables are used */
uint8_t *QuantTable0; /*!< Basic Quantization Table for component 0 */ uint8_t *QuantTable0; /*!< Basic Quantization Table for component 0 */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_lptim.h * @file stm32f7xx_hal_lptim.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of LPTIM HAL module. * @brief Header file of LPTIM HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_ltdc.h * @file stm32f7xx_hal_ltdc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of LTDC HAL module. * @brief Header file of LTDC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_ltdc_ex.h * @file stm32f7xx_hal_ltdc_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of LTDC HAL Extension module. * @brief Header file of LTDC HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_mdios.h * @file stm32f7xx_hal_mdios.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of MDIOS HAL module. * @brief Header file of MDIOS HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_nand.h * @file stm32f7xx_hal_nand.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of NAND HAL module. * @brief Header file of NAND HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_nor.h * @file stm32f7xx_hal_nor.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of NOR HAL module. * @brief Header file of NOR HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_pcd.h * @file stm32f7xx_hal_pcd.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of PCD HAL module. * @brief Header file of PCD HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_pcd_ex.h * @file stm32f7xx_hal_pcd_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of PCD HAL module. * @brief Header file of PCD HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_pwr.h * @file stm32f7xx_hal_pwr.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of PWR HAL module. * @brief Header file of PWR HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_pwr_ex.h * @file stm32f7xx_hal_pwr_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of PWR HAL Extension module. * @brief Header file of PWR HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_qspi.h * @file stm32f7xx_hal_qspi.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of QSPI HAL module. * @brief Header file of QSPI HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_rcc.h * @file stm32f7xx_hal_rcc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of RCC HAL module. * @brief Header file of RCC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_rcc_ex.h * @file stm32f7xx_hal_rcc_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of RCC HAL Extension module. * @brief Header file of RCC HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -105,9 +105,12 @@ typedef struct
This parameter must be a number between Min_Data = 2 and Max_Data = 15. This parameter must be a number between Min_Data = 2 and Max_Data = 15.
This parameter will be used only when PLLI2S is selected as Clock Source SAI */ This parameter will be used only when PLLI2S is selected as Clock Source SAI */
#if defined (STM32F745xx) || defined (STM32F746xx) || defined (STM32F756xx) || defined (STM32F765xx) || defined (STM32F767xx) || \
defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
uint32_t PLLI2SP; /*!< Specifies the division factor for SPDIF-RX clock. uint32_t PLLI2SP; /*!< Specifies the division factor for SPDIF-RX clock.
This parameter must be a value of @ref RCCEx_PLLI2SP_Clock_Divider. This parameter must be a value of @ref RCCEx_PLLI2SP_Clock_Divider.
This parameter will be used only when PLLI2S is selected as Clock Source SPDIF-RX */ This parameter will be used only when PLLI2S is selected as Clock Source SPDIF-RX */
#endif /* STM32F745xx || STM32F746xx || STM32F756xx || STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
}RCC_PLLI2SInitTypeDef; }RCC_PLLI2SInitTypeDef;
/** /**
@ -122,11 +125,14 @@ typedef struct
uint32_t PLLSAIQ; /*!< Specifies the division factor for SAI1 clock. uint32_t PLLSAIQ; /*!< Specifies the division factor for SAI1 clock.
This parameter must be a number between Min_Data = 2 and Max_Data = 15. This parameter must be a number between Min_Data = 2 and Max_Data = 15.
This parameter will be used only when PLLSAI is selected as Clock Source SAI or LTDC */ This parameter will be used only when PLLSAI is selected as Clock Source SAI or LTDC */
#if defined (STM32F745xx) || defined (STM32F746xx) || defined (STM32F756xx) || defined (STM32F765xx) || defined (STM32F767xx) || \
defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
uint32_t PLLSAIR; /*!< specifies the division factor for LTDC clock uint32_t PLLSAIR; /*!< specifies the division factor for LTDC clock
This parameter must be a number between Min_Data = 2 and Max_Data = 7. This parameter must be a number between Min_Data = 2 and Max_Data = 7.
This parameter will be used only when PLLSAI is selected as Clock Source LTDC */ This parameter will be used only when PLLSAI is selected as Clock Source LTDC */
#endif /* STM32F745xx || STM32F746xx || STM32F756xx || STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
uint32_t PLLSAIP; /*!< Specifies the division factor for 48MHz clock. uint32_t PLLSAIP; /*!< Specifies the division factor for 48MHz clock.
This parameter must be a value of @ref RCCEx_PLLSAIP_Clock_Divider This parameter must be a value of @ref RCCEx_PLLSAIP_Clock_Divider
This parameter will be used only when PLLSAI is disabled */ This parameter will be used only when PLLSAI is disabled */
@ -273,12 +279,14 @@ typedef struct
#define RCC_PERIPHCLK_SDMMC2 ((uint32_t)0x04000000U) #define RCC_PERIPHCLK_SDMMC2 ((uint32_t)0x04000000U)
#define RCC_PERIPHCLK_DFSDM1 ((uint32_t)0x08000000U) #define RCC_PERIPHCLK_DFSDM1 ((uint32_t)0x08000000U)
#define RCC_PERIPHCLK_DFSDM1_AUDIO ((uint32_t)0x10000000U) #define RCC_PERIPHCLK_DFSDM1_AUDIO ((uint32_t)0x10000000U)
#endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */ #endif /* STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
/** /**
* @} * @}
*/ */
#if defined (STM32F745xx) || defined (STM32F746xx) || defined (STM32F756xx) || defined (STM32F765xx) || defined (STM32F767xx) || \
defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
/** @defgroup RCCEx_PLLI2SP_Clock_Divider RCCEx PLLI2SP Clock Divider /** @defgroup RCCEx_PLLI2SP_Clock_Divider RCCEx PLLI2SP Clock Divider
* @{ * @{
*/ */
@ -289,6 +297,7 @@ typedef struct
/** /**
* @} * @}
*/ */
#endif /* STM32F745xx || STM32F746xx || STM32F756xx || STM32F765xx || STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
/** @defgroup RCCEx_PLLSAIP_Clock_Divider RCCEx PLLSAIP Clock Divider /** @defgroup RCCEx_PLLSAIP_Clock_Divider RCCEx PLLSAIP Clock Divider
* @{ * @{

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_rng.h * @file stm32f7xx_hal_rng.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of RNG HAL module. * @brief Header file of RNG HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_rtc.h * @file stm32f7xx_hal_rtc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of RTC HAL module. * @brief Header file of RTC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_rtc_ex.h * @file stm32f7xx_hal_rtc_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of RTC HAL Extension module. * @brief Header file of RTC HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_sai.h * @file stm32f7xx_hal_sai.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SAI HAL module. * @brief Header file of SAI HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_sai_ex.h * @file stm32f7xx_hal_sai_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SAI Extension HAL module. * @brief Header file of SAI Extension HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_sd.h * @file stm32f7xx_hal_sd.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SD HAL module. * @brief Header file of SD HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_sdram.h * @file stm32f7xx_hal_sdram.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SDRAM HAL module. * @brief Header file of SDRAM HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_smartcard.h * @file stm32f7xx_hal_smartcard.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SMARTCARD HAL module. * @brief Header file of SMARTCARD HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -54,25 +54,25 @@
* @{ * @{
*/ */
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/
/** @defgroup SMARTCARD_Exported_Types SMARTCARD Exported Types /** @defgroup SMARTCARD_Exported_Types SMARTCARD Exported Types
* @{ * @{
*/ */
/** /**
* @brief SMARTCARD Init Structure definition * @brief SMARTCARD Init Structure definition
*/ */
typedef struct typedef struct
{ {
uint32_t BaudRate; /*!< Configures the SmartCard communication baud rate. uint32_t BaudRate; /*!< Configures the SmartCard communication baud rate.
The baud rate register is computed using the following formula: The baud rate register is computed using the following formula:
Baud Rate Register = ((PCLKx) / ((hsc->Init.BaudRate))) */ Baud Rate Register = ((PCLKx) / ((hsmartcard->Init.BaudRate))) */
uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame. uint32_t WordLength; /*!< Specifies the number of data bits transmitted or received in a frame.
This parameter @ref SMARTCARD_Word_Length can only be set to 9 (8 data + 1 parity bits). */ This parameter @ref SMARTCARD_Word_Length can only be set to 9 (8 data + 1 parity bits). */
uint32_t StopBits; /*!< Specifies the number of stop bits @ref SMARTCARD_Stop_Bits. uint32_t StopBits; /*!< Specifies the number of stop bits.
Only 1.5 stop bits are authorized in SmartCard mode. */ This parameter can be a value of @ref SMARTCARD_Stop_Bits. */
uint32_t Parity; /*!< Specifies the parity mode. uint32_t Parity; /*!< Specifies the parity mode.
This parameter can be a value of @ref SMARTCARD_Parity This parameter can be a value of @ref SMARTCARD_Parity
@ -101,9 +101,9 @@ typedef struct
uint32_t GuardTime; /*!< Specifies the SmartCard Guard Time */ uint32_t GuardTime; /*!< Specifies the SmartCard Guard Time */
uint32_t NACKState; /*!< Specifies whether the SmartCard NACK transmission is enabled uint16_t NACKEnable; /*!< Specifies whether the SmartCard NACK transmission is enabled
in case of parity error. in case of parity error.
This parameter can be a value of @ref SMARTCARD_NACK_State */ This parameter can be a value of @ref SMARTCARD_NACK_State */
uint32_t TimeOutEnable; /*!< Specifies whether the receiver timeout is enabled. uint32_t TimeOutEnable; /*!< Specifies whether the receiver timeout is enabled.
This parameter can be a value of @ref SMARTCARD_Timeout_Enable*/ This parameter can be a value of @ref SMARTCARD_Timeout_Enable*/
@ -122,7 +122,43 @@ typedef struct
}SMARTCARD_InitTypeDef; }SMARTCARD_InitTypeDef;
/** /**
* @brief SMARTCARD advanced features initalization structure definition
*/
typedef struct
{
uint32_t AdvFeatureInit; /*!< Specifies which advanced SMARTCARD features is initialized. Several
advanced features may be initialized at the same time. This parameter
can be a value of @ref SMARTCARDEx_Advanced_Features_Initialization_Type */
uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
This parameter can be a value of @ref SMARTCARD_Tx_Inv */
uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
This parameter can be a value of @ref SMARTCARD_Rx_Inv */
uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
vs negative/inverted logic).
This parameter can be a value of @ref SMARTCARD_Data_Inv */
uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
This parameter can be a value of @ref SMARTCARD_Rx_Tx_Swap */
uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
This parameter can be a value of @ref SMARTCARD_Overrun_Disable */
uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
This parameter can be a value of @ref SMARTCARD_DMA_Disable_on_Rx_Error */
uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
This parameter can be a value of @ref SMARTCARD_MSB_First */
uint16_t TxCompletionIndication; /*!< Specifies which transmission completion indication is used: before (when
relevant flag is available) or once guard time period has elapsed.
This parameter can be a value of @ref SMARTCARDEx_Transmission_Completion_Indication. */
}SMARTCARD_AdvFeatureInitTypeDef;
/**
* @brief HAL SMARTCARD State structures definition * @brief HAL SMARTCARD State structures definition
* @note HAL SMARTCARD State value is a combination of 2 different substates: gState and RxState. * @note HAL SMARTCARD State value is a combination of 2 different substates: gState and RxState.
* - gState contains SMARTCARD state information related to global Handle management * - gState contains SMARTCARD state information related to global Handle management
@ -161,60 +197,27 @@ typedef struct
* b0 (not used) * b0 (not used)
* x : Should be set to 0. * x : Should be set to 0.
*/ */
typedef struct
{
uint32_t AdvFeatureInit; /*!< Specifies which advanced SMARTCARD features is initialized. Several
advanced features may be initialized at the same time. This parameter
can be a value of @ref SMARTCARD_Advanced_Features_Initialization_Type */
uint32_t TxPinLevelInvert; /*!< Specifies whether the TX pin active level is inverted.
This parameter can be a value of @ref SMARTCARD_Tx_Inv */
uint32_t RxPinLevelInvert; /*!< Specifies whether the RX pin active level is inverted.
This parameter can be a value of @ref SMARTCARD_Rx_Inv */
uint32_t DataInvert; /*!< Specifies whether data are inverted (positive/direct logic
vs negative/inverted logic).
This parameter can be a value of @ref SMARTCARD_Data_Inv */
uint32_t Swap; /*!< Specifies whether TX and RX pins are swapped.
This parameter can be a value of @ref SMARTCARD_Rx_Tx_Swap */
uint32_t OverrunDisable; /*!< Specifies whether the reception overrun detection is disabled.
This parameter can be a value of @ref SMARTCARD_Overrun_Disable */
uint32_t DMADisableonRxError; /*!< Specifies whether the DMA is disabled in case of reception error.
This parameter can be a value of @ref SMARTCARD_DMA_Disable_on_Rx_Error */
uint32_t MSBFirst; /*!< Specifies whether MSB is sent first on UART line.
This parameter can be a value of @ref SMARTCARD_MSB_First */
}SMARTCARD_AdvFeatureInitTypeDef;
/**
* @brief HAL State structures definition
*/
typedef enum typedef enum
{ {
HAL_SMARTCARD_STATE_RESET = 0x00U, /*!< Peripheral is not yet Initialized HAL_SMARTCARD_STATE_RESET = 0x00U, /*!< Peripheral is not initialized
Value is allowed for gState and RxState */ Value is allowed for gState and RxState */
HAL_SMARTCARD_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use HAL_SMARTCARD_STATE_READY = 0x20U, /*!< Peripheral Initialized and ready for use
Value is allowed for gState and RxState */ Value is allowed for gState and RxState */
HAL_SMARTCARD_STATE_BUSY = 0x24U, /*!< an internal process is ongoing HAL_SMARTCARD_STATE_BUSY = 0x24U, /*!< an internal process is ongoing
Value is allowed for gState only */ Value is allowed for gState only */
HAL_SMARTCARD_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing HAL_SMARTCARD_STATE_BUSY_TX = 0x21U, /*!< Data Transmission process is ongoing
Value is allowed for gState only */ Value is allowed for gState only */
HAL_SMARTCARD_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing HAL_SMARTCARD_STATE_BUSY_RX = 0x22U, /*!< Data Reception process is ongoing
Value is allowed for RxState only */ Value is allowed for RxState only */
HAL_SMARTCARD_STATE_BUSY_TX_RX = 0x23U, /*!< Data Transmission and Reception process is ongoing HAL_SMARTCARD_STATE_BUSY_TX_RX = 0x23U, /*!< Data Transmission and Reception process is ongoing
Not to be used for neither gState nor RxState. Not to be used for neither gState nor RxState.
Value is result of combination (Or) between gState and RxState values */ Value is result of combination (Or) between gState and RxState values */
HAL_SMARTCARD_STATE_TIMEOUT = 0xA0U, /*!< Timeout state HAL_SMARTCARD_STATE_TIMEOUT = 0xA0U, /*!< Timeout state
Value is allowed for gState only */ Value is allowed for gState only */
HAL_SMARTCARD_STATE_ERROR = 0xE0U /*!< Error HAL_SMARTCARD_STATE_ERROR = 0xE0U /*!< Error
Value is allowed for gState only */ Value is allowed for gState only */
}HAL_SMARTCARD_StateTypeDef; }HAL_SMARTCARD_StateTypeDef;
/** /**
* @brief SMARTCARD clock sources definition * @brief SMARTCARD clock sources definition
*/ */
@ -224,44 +227,45 @@ typedef enum
SMARTCARD_CLOCKSOURCE_PCLK2 = 0x01U, /*!< PCLK2 clock source */ SMARTCARD_CLOCKSOURCE_PCLK2 = 0x01U, /*!< PCLK2 clock source */
SMARTCARD_CLOCKSOURCE_HSI = 0x02U, /*!< HSI clock source */ SMARTCARD_CLOCKSOURCE_HSI = 0x02U, /*!< HSI clock source */
SMARTCARD_CLOCKSOURCE_SYSCLK = 0x04U, /*!< SYSCLK clock source */ SMARTCARD_CLOCKSOURCE_SYSCLK = 0x04U, /*!< SYSCLK clock source */
SMARTCARD_CLOCKSOURCE_LSE = 0x08U /*!< LSE clock source */ SMARTCARD_CLOCKSOURCE_LSE = 0x08U, /*!< LSE clock source */
SMARTCARD_CLOCKSOURCE_UNDEFINED = 0x10 /*!< undefined clock source */
}SMARTCARD_ClockSourceTypeDef; }SMARTCARD_ClockSourceTypeDef;
/** /**
* @brief SMARTCARD handle Structure definition * @brief SMARTCARD handle Structure definition
*/ */
typedef struct typedef struct
{ {
USART_TypeDef *Instance; /* USART registers base address */ USART_TypeDef *Instance; /*!< USART registers base address */
SMARTCARD_InitTypeDef Init; /* SmartCard communication parameters */ SMARTCARD_InitTypeDef Init; /*!< SmartCard communication parameters */
SMARTCARD_AdvFeatureInitTypeDef AdvancedInit; /* SmartCard advanced features initialization parameters */ SMARTCARD_AdvFeatureInitTypeDef AdvancedInit; /*!< SmartCard advanced features initialization parameters */
uint8_t *pTxBuffPtr; /* Pointer to SmartCard Tx transfer Buffer */ uint8_t *pTxBuffPtr; /*!< Pointer to SmartCard Tx transfer Buffer */
uint16_t TxXferSize; /* SmartCard Tx Transfer size */ uint16_t TxXferSize; /*!< SmartCard Tx Transfer size */
uint16_t TxXferCount; /* SmartCard Tx Transfer Counter */ __IO uint16_t TxXferCount; /*!< SmartCard Tx Transfer Counter */
uint8_t *pRxBuffPtr; /* Pointer to SmartCard Rx transfer Buffer */ uint8_t *pRxBuffPtr; /*!< Pointer to SmartCard Rx transfer Buffer */
uint16_t RxXferSize; /* SmartCard Rx Transfer size */ uint16_t RxXferSize; /*!< SmartCard Rx Transfer size */
uint16_t RxXferCount; /* SmartCard Rx Transfer Counter */ __IO uint16_t RxXferCount; /*!< SmartCard Rx Transfer Counter */
DMA_HandleTypeDef *hdmatx; /* SmartCard Tx DMA Handle parameters */ DMA_HandleTypeDef *hdmatx; /*!< SmartCard Tx DMA Handle parameters */
DMA_HandleTypeDef *hdmarx; /* SmartCard Rx DMA Handle parameters */ DMA_HandleTypeDef *hdmarx; /*!< SmartCard Rx DMA Handle parameters */
HAL_LockTypeDef Lock; /* Locking object */ HAL_LockTypeDef Lock; /*!< Locking object */
__IO HAL_SMARTCARD_StateTypeDef gState; /*!< UART state information related to global Handle management __IO HAL_SMARTCARD_StateTypeDef gState; /*!< SmartCard state information related to global Handle management
and also related to Tx operations. and also related to Tx operations.
This parameter can be a value of @ref HAL_UART_StateTypeDef */ This parameter can be a value of @ref HAL_SMARTCARD_StateTypeDef */
__IO HAL_SMARTCARD_StateTypeDef RxState; /*!< UART state information related to Rx operations. __IO HAL_SMARTCARD_StateTypeDef RxState; /*!< SmartCard state information related to Rx operations.
This parameter can be a value of @ref HAL_UART_StateTypeDef */ This parameter can be a value of @ref HAL_SMARTCARD_StateTypeDef */
__IO uint32_t ErrorCode; /* SmartCard Error code */ __IO uint32_t ErrorCode; /* SmartCard Error code */
@ -619,6 +623,56 @@ typedef struct
*/ */
#define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__)) #define __HAL_SMARTCARD_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->ISR & (__FLAG__)) == (__FLAG__))
/** @brief Clear the specified SMARTCARD pending flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @param __FLAG__: specifies the flag to check.
* This parameter can be any combination of the following values:
* @arg @ref SMARTCARD_CLEAR_PEF Parity error clear flag
* @arg @ref SMARTCARD_CLEAR_FEF Framing error clear flag
* @arg @ref SMARTCARD_CLEAR_NEF Noise detected clear flag
* @arg @ref SMARTCARD_CLEAR_OREF OverRun error clear flag
* @arg @ref SMARTCARD_CLEAR_IDLEF Idle line detected clear flag
* @arg @ref SMARTCARD_CLEAR_TCF Transmission complete clear flag
@if STM32L443xx
* @arg @ref SMARTCARD_CLEAR_TCBGTF Transmission complete before guard time clear flag (when flag available)
@endif
* @arg @ref SMARTCARD_CLEAR_RTOF Receiver timeout clear flag
* @arg @ref SMARTCARD_CLEAR_EOBF End of block clear flag
* @retval None
*/
#define __HAL_SMARTCARD_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->ICR = (__FLAG__))
/** @brief Clear the SMARTCARD PE pending flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @retval None
*/
#define __HAL_SMARTCARD_CLEAR_PEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_PEF)
/** @brief Clear the SMARTCARD FE pending flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @retval None
*/
#define __HAL_SMARTCARD_CLEAR_FEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_FEF)
/** @brief Clear the SMARTCARD NE pending flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @retval None
*/
#define __HAL_SMARTCARD_CLEAR_NEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_NEF)
/** @brief Clear the SMARTCARD ORE pending flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @retval None
*/
#define __HAL_SMARTCARD_CLEAR_OREFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_OREF)
/** @brief Clear the SMARTCARD IDLE pending flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @retval None
*/
#define __HAL_SMARTCARD_CLEAR_IDLEFLAG(__HANDLE__) __HAL_SMARTCARD_CLEAR_FLAG((__HANDLE__), SMARTCARD_CLEAR_IDLEF)
/** @brief Enables the specified SmartCard interrupt. /** @brief Enables the specified SmartCard interrupt.
* @param __HANDLE__: specifies the SMARTCARD Handle. * @param __HANDLE__: specifies the SMARTCARD Handle.
* The Handle Instance which can be USART1 or USART2. * The Handle Instance which can be USART1 or USART2.
@ -773,16 +827,28 @@ void HAL_SMARTCARD_MspDeInit(SMARTCARD_HandleTypeDef *hsc);
* @{ * @{
*/ */
/* IO operation functions *******************************************************/ /* IO operation functions *******************************************************/
HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_SMARTCARD_Transmit(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_SMARTCARD_Receive(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SMARTCARD_Transmit_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SMARTCARD_Receive_IT(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SMARTCARD_Transmit_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsc, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SMARTCARD_Receive_DMA(SMARTCARD_HandleTypeDef *hsmartcard, uint8_t *pData, uint16_t Size);
void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsc); /* Transfer Abort functions */
void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsc); HAL_StatusTypeDef HAL_SMARTCARD_Abort(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsc); HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsc); HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_Abort_IT(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_AbortTransmit_IT(SMARTCARD_HandleTypeDef *hsmartcard);
HAL_StatusTypeDef HAL_SMARTCARD_AbortReceive_IT(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_IRQHandler(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_TxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_RxCpltCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_ErrorCallback(SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_AbortCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_AbortTransmitCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard);
void HAL_SMARTCARD_AbortReceiveCpltCallback (SMARTCARD_HandleTypeDef *hsmartcard);
/** /**
* @} * @}
*/ */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_smartcard_ex.h * @file stm32f7xx_hal_smartcard_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SMARTCARD HAL module. * @brief Header file of SMARTCARD HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -56,6 +56,83 @@
/* Exported types ------------------------------------------------------------*/ /* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/ /* Exported constants --------------------------------------------------------*/
/** @addtogroup SMARTCARDEx_Exported_Constants SMARTCARD Extended Exported Constants
* @{
*/
/** @defgroup SMARTCARDEx_Transmission_Completion_Indication SMARTCARD Transmission Completion Indication
* @{
*/
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_TCBGT SMARTCARD_IT_TCBGT /*!< SMARTCARD transmission complete before guard time */
#endif /* USART_TCBGT_SUPPORT */
#define SMARTCARD_TC SMARTCARD_IT_TC /*!< SMARTCARD transmission complete (flag raised when guard time has elapsed) */
/**
* @}
*/
/** @defgroup SMARTCARDEx_Advanced_Features_Initialization_Type SMARTCARD advanced feature initialization type
* @{
*/
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_ADVFEATURE_TXCOMPLETION ((uint32_t)0x00000100) /*!< TX completion indication before of after guard time */
#endif /* USART_TCBGT_SUPPORT */
/**
* @}
*/
/** @defgroup SMARTCARDEx_Flags SMARTCARD Flags
* Elements values convention: 0xXXXX
* - 0xXXXX : Flag mask in the ISR register
* @{
*/
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_FLAG_TCBGT USART_ISR_TCBGT /*!< SMARTCARD transmission complete before guard time completion */
#endif /* USART_TCBGT_SUPPORT */
/**
* @}
*/
/** @defgroup SMARTCARDEx_Interrupt_definition SMARTCARD Interrupts Definition
* Elements values convention: 000ZZZZZ0XXYYYYYb
* - YYYYY : Interrupt source position in the XX register (5 bits)
* - XX : Interrupt source register (2 bits)
* - 01: CR1 register
* - 10: CR2 register
* - 11: CR3 register
* - ZZZZZ : Flag position in the ISR register(5 bits)
* @{
*/
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_IT_TCBGT ((uint16_t)0x1978) /*!< SMARTCARD transmission complete before guard time completion interruption */
#endif /* USART_TCBGT_SUPPORT */
/**
* @}
*/
/** @defgroup SMARTCARDEx_IT_CLEAR_Flags SMARTCARD Interruption Clear Flags
* @{
*/
#define SMARTCARD_CLEAR_PEF USART_ICR_PECF /*!< SMARTCARD parity error clear flag */
#define SMARTCARD_CLEAR_FEF USART_ICR_FECF /*!< SMARTCARD framing error clear flag */
#define SMARTCARD_CLEAR_NEF USART_ICR_NCF /*!< SMARTCARD noise detected clear flag */
#define SMARTCARD_CLEAR_OREF USART_ICR_ORECF /*!< SMARTCARD overrun error clear flag */
#define SMARTCARD_CLEAR_IDLEF USART_ICR_IDLECF /*!< SMARTCARD idle line detected clear flag */
#define SMARTCARD_CLEAR_TCF USART_ICR_TCCF /*!< SMARTCARD transmission complete clear flag */
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_CLEAR_TCBGTF USART_ICR_TCBGTCF /*!< SMARTCARD transmission complete before guard time completion clear flag */
#endif /* USART_TCBGT_SUPPORT */
#define SMARTCARD_CLEAR_RTOF USART_ICR_RTOCF /*!< SMARTCARD receiver time out clear flag */
#define SMARTCARD_CLEAR_EOBF USART_ICR_EOBCF /*!< SMARTCARD end of block clear flag */
/**
* @}
*/
/* Exported macro ------------------------------------------------------------*/ /* Exported macro ------------------------------------------------------------*/
/** @brief Reports the SMARTCARD clock source. /** @brief Reports the SMARTCARD clock source.
@ -147,6 +224,62 @@
} \ } \
} while(0) } while(0)
/** @brief Set the Transmission Completion flag
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @note If TCBGT (Transmission Complete Before Guard Time) flag is not available or if
* AdvancedInit.TxCompletionIndication is not already filled, the latter is forced
* to SMARTCARD_TC (transmission completion indication when guard time has elapsed).
* @retval None
*/
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_TRANSMISSION_COMPLETION_SETTING(__HANDLE__) \
do { \
if (HAL_IS_BIT_CLR((__HANDLE__)->AdvancedInit.AdvFeatureInit, SMARTCARD_ADVFEATURE_TXCOMPLETION)) \
{ \
(__HANDLE__)->AdvancedInit.TxCompletionIndication = SMARTCARD_TC; \
} \
else \
{ \
assert_param(IS_SMARTCARD_TRANSMISSION_COMPLETION((__HANDLE__)->AdvancedInit.TxCompletionIndication)); \
} \
} while(0)
#else
#define SMARTCARD_TRANSMISSION_COMPLETION_SETTING(__HANDLE__) \
do { \
(__HANDLE__)->AdvancedInit.TxCompletionIndication = SMARTCARD_TC; \
} while(0)
#endif
/** @brief Return the transmission completion flag.
* @param __HANDLE__: specifies the SMARTCARD Handle.
* @note Based on AdvancedInit.TxCompletionIndication setting, return TC or TCBGT flag.
* When TCBGT flag (Transmission Complete Before Guard Time) is not available, TC flag is
* reported.
* @retval Transmission completion flag
*/
#if defined(USART_TCBGT_SUPPORT)
#define SMARTCARD_TRANSMISSION_COMPLETION_FLAG(__HANDLE__) \
(((__HANDLE__)->AdvancedInit.TxCompletionIndication == SMARTCARD_TC) ? (SMARTCARD_FLAG_TC) : (SMARTCARD_FLAG_TCBGT))
#else
#define SMARTCARD_TRANSMISSION_COMPLETION_FLAG(__HANDLE__) (SMARTCARD_FLAG_TC)
#endif
/**
* @brief Ensure that SMARTCARD frame transmission completion used flag is valid.
* @param __TXCOMPLETE__: SMARTCARD frame transmission completion used flag.
* @retval SET (__TXCOMPLETE__ is valid) or RESET (__TXCOMPLETE__ is invalid)
*/
#if defined(USART_TCBGT_SUPPORT)
#define IS_SMARTCARD_TRANSMISSION_COMPLETION(__TXCOMPLETE__) (((__TXCOMPLETE__) == SMARTCARD_TCBGT) ||\
((__TXCOMPLETE__) == SMARTCARD_TC))
#else
#define IS_SMARTCARD_TRANSMISSION_COMPLETION(__TXCOMPLETE__) ((__TXCOMPLETE__) == SMARTCARD_TC)
#endif
/**
* @}
*/
/* Exported functions --------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/
/* Initialization and de-initialization functions ****************************/ /* Initialization and de-initialization functions ****************************/
/* IO operation functions *****************************************************/ /* IO operation functions *****************************************************/

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_spdifrx.h * @file stm32f7xx_hal_spdifrx.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SPDIFRX HAL module. * @brief Header file of SPDIFRX HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -43,6 +43,8 @@
extern "C" { extern "C" {
#endif #endif
#if defined (SPDIFRX)
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal_def.h" #include "stm32f7xx_hal_def.h"
@ -545,6 +547,8 @@ uint32_t HAL_SPDIFRX_GetError(SPDIFRX_HandleTypeDef *hspdif);
/** /**
* @} * @}
*/ */
#endif /* SPDIFRX */
#ifdef __cplusplus #ifdef __cplusplus
} }

View File

@ -1,9 +1,9 @@
/** /**
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_spi.h * @file stm32f7xx_hal_spi.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SPI HAL module. * @brief Header file of SPI HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -32,7 +32,7 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * 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. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* *
****************************************************************************** ******************************************************************************
*/ */
/* Define to prevent recursive inclusion -------------------------------------*/ /* Define to prevent recursive inclusion -------------------------------------*/
@ -40,7 +40,7 @@
#define __STM32F7xx_HAL_SPI_H #define __STM32F7xx_HAL_SPI_H
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
@ -64,48 +64,48 @@
*/ */
typedef struct typedef struct
{ {
uint32_t Mode; /*!< Specifies the SPI operating mode. uint32_t Mode; /*!< Specifies the SPI operating mode.
This parameter can be a value of @ref SPI_Mode */ This parameter can be a value of @ref SPI_Mode */
uint32_t Direction; /*!< Specifies the SPI bidirectional mode state. uint32_t Direction; /*!< Specifies the SPI bidirectional mode state.
This parameter can be a value of @ref SPI_Direction */ This parameter can be a value of @ref SPI_Direction */
uint32_t DataSize; /*!< Specifies the SPI data size. uint32_t DataSize; /*!< Specifies the SPI data size.
This parameter can be a value of @ref SPI_Data_Size */ This parameter can be a value of @ref SPI_Data_Size */
uint32_t CLKPolarity; /*!< Specifies the serial clock steady state. uint32_t CLKPolarity; /*!< Specifies the serial clock steady state.
This parameter can be a value of @ref SPI_Clock_Polarity */ This parameter can be a value of @ref SPI_Clock_Polarity */
uint32_t CLKPhase; /*!< Specifies the clock active edge for the bit capture. uint32_t CLKPhase; /*!< Specifies the clock active edge for the bit capture.
This parameter can be a value of @ref SPI_Clock_Phase */ This parameter can be a value of @ref SPI_Clock_Phase */
uint32_t NSS; /*!< Specifies whether the NSS signal is managed by uint32_t NSS; /*!< Specifies whether the NSS signal is managed by
hardware (NSS pin) or by software using the SSI bit. hardware (NSS pin) or by software using the SSI bit.
This parameter can be a value of @ref SPI_Slave_Select_management */ This parameter can be a value of @ref SPI_Slave_Select_management */
uint32_t BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be uint32_t BaudRatePrescaler; /*!< Specifies the Baud Rate prescaler value which will be
used to configure the transmit and receive SCK clock. used to configure the transmit and receive SCK clock.
This parameter can be a value of @ref SPI_BaudRate_Prescaler This parameter can be a value of @ref SPI_BaudRate_Prescaler
@note The communication clock is derived from the master @note The communication clock is derived from the master
clock. The slave clock does not need to be set. */ clock. The slave clock does not need to be set. */
uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit. uint32_t FirstBit; /*!< Specifies whether data transfers start from MSB or LSB bit.
This parameter can be a value of @ref SPI_MSB_LSB_transmission */ This parameter can be a value of @ref SPI_MSB_LSB_transmission */
uint32_t TIMode; /*!< Specifies if the TI mode is enabled or not . uint32_t TIMode; /*!< Specifies if the TI mode is enabled or not.
This parameter can be a value of @ref SPI_TI_mode */ This parameter can be a value of @ref SPI_TI_mode */
uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not. uint32_t CRCCalculation; /*!< Specifies if the CRC calculation is enabled or not.
This parameter can be a value of @ref SPI_CRC_Calculation */ This parameter can be a value of @ref SPI_CRC_Calculation */
uint32_t CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation. uint32_t CRCPolynomial; /*!< Specifies the polynomial used for the CRC calculation.
This parameter must be a number between Min_Data = 0 and Max_Data = 65535 */ This parameter must be an odd number between Min_Data = 0 and Max_Data = 65535 */
uint32_t CRCLength; /*!< Specifies the CRC Length used for the CRC calculation. uint32_t CRCLength; /*!< Specifies the CRC Length used for the CRC calculation.
CRC Length is only used with Data8 and Data16, not other data size CRC Length is only used with Data8 and Data16, not other data size
This parameter can be a value of @ref SPI_CRC_length */ This parameter can be a value of @ref SPI_CRC_length */
uint32_t NSSPMode; /*!< Specifies whether the NSSP signal is enabled or not . uint32_t NSSPMode; /*!< Specifies whether the NSSP signal is enabled or not .
This parameter can be a value of @ref SPI_NSSP_Mode This parameter can be a value of @ref SPI_NSSP_Mode
This mode is activated by the NSSP bit in the SPIx_CR2 register and This mode is activated by the NSSP bit in the SPIx_CR2 register and
it takes effect only if the SPI interface is configured as Motorola SPI it takes effect only if the SPI interface is configured as Motorola SPI
@ -114,57 +114,58 @@ typedef struct
} SPI_InitTypeDef; } SPI_InitTypeDef;
/** /**
* @brief HAL State structures definition * @brief HAL SPI State structure definition
*/ */
typedef enum typedef enum
{ {
HAL_SPI_STATE_RESET = 0x00U, /*!< Peripheral not Initialized */ HAL_SPI_STATE_RESET = 0x00U, /*!< Peripheral not Initialized */
HAL_SPI_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */ HAL_SPI_STATE_READY = 0x01U, /*!< Peripheral Initialized and ready for use */
HAL_SPI_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */ HAL_SPI_STATE_BUSY = 0x02U, /*!< an internal process is ongoing */
HAL_SPI_STATE_BUSY_TX = 0x03U, /*!< Data Transmission process is ongoing */ HAL_SPI_STATE_BUSY_TX = 0x03U, /*!< Data Transmission process is ongoing */
HAL_SPI_STATE_BUSY_RX = 0x04U, /*!< Data Reception process is ongoing */ HAL_SPI_STATE_BUSY_RX = 0x04U, /*!< Data Reception process is ongoing */
HAL_SPI_STATE_BUSY_TX_RX = 0x05U, /*!< Data Transmission and Reception process is ongoing*/ HAL_SPI_STATE_BUSY_TX_RX = 0x05U, /*!< Data Transmission and Reception process is ongoing */
HAL_SPI_STATE_ERROR = 0x06U /*!< SPI error state */ HAL_SPI_STATE_ERROR = 0x06U, /*!< SPI error state */
}HAL_SPI_StateTypeDef; HAL_SPI_STATE_ABORT = 0x07U /*!< SPI abort is ongoing */
} HAL_SPI_StateTypeDef;
/** /**
* @brief SPI handle Structure definition * @brief SPI handle Structure definition
*/ */
typedef struct __SPI_HandleTypeDef typedef struct __SPI_HandleTypeDef
{ {
SPI_TypeDef *Instance; /* SPI registers base address */ SPI_TypeDef *Instance; /*!< SPI registers base address */
SPI_InitTypeDef Init; /* SPI communication parameters */ SPI_InitTypeDef Init; /*!< SPI communication parameters */
uint8_t *pTxBuffPtr; /* Pointer to SPI Tx transfer Buffer */ uint8_t *pTxBuffPtr; /*!< Pointer to SPI Tx transfer Buffer */
uint16_t TxXferSize; /* SPI Tx Transfer size */ uint16_t TxXferSize; /*!< SPI Tx Transfer size */
uint16_t TxXferCount; /* SPI Tx Transfer Counter */ __IO uint16_t TxXferCount; /*!< SPI Tx Transfer Counter */
uint8_t *pRxBuffPtr; /* Pointer to SPI Rx transfer Buffer */ uint8_t *pRxBuffPtr; /*!< Pointer to SPI Rx transfer Buffer */
uint16_t RxXferSize; /* SPI Rx Transfer size */ uint16_t RxXferSize; /*!< SPI Rx Transfer size */
uint16_t RxXferCount; /* SPI Rx Transfer Counter */ __IO uint16_t RxXferCount; /*!< SPI Rx Transfer Counter */
uint32_t CRCSize; /* SPI CRC size used for the transfer */ uint32_t CRCSize; /*!< SPI CRC size used for the transfer */
void (*RxISR)(struct __SPI_HandleTypeDef *hspi); /* function pointer on Rx IRQ handler */ void (*RxISR)(struct __SPI_HandleTypeDef *hspi); /*!< function pointer on Rx ISR */
void (*TxISR)(struct __SPI_HandleTypeDef *hspi); /* function pointer on Tx IRQ handler */ void (*TxISR)(struct __SPI_HandleTypeDef *hspi); /*!< function pointer on Tx ISR */
DMA_HandleTypeDef *hdmatx; /* SPI Tx DMA Handle parameters */ DMA_HandleTypeDef *hdmatx; /*!< SPI Tx DMA Handle parameters */
DMA_HandleTypeDef *hdmarx; /* SPI Rx DMA Handle parameters */ DMA_HandleTypeDef *hdmarx; /*!< SPI Rx DMA Handle parameters */
HAL_LockTypeDef Lock; /* Locking object */ HAL_LockTypeDef Lock; /*!< Locking object */
__IO HAL_SPI_StateTypeDef State; /* SPI communication state */ __IO HAL_SPI_StateTypeDef State; /*!< SPI communication state */
__IO uint32_t ErrorCode; /* SPI Error code */ __IO uint32_t ErrorCode; /*!< SPI Error code */
}SPI_HandleTypeDef; } SPI_HandleTypeDef;
/** /**
* @} * @}
@ -179,19 +180,18 @@ typedef struct __SPI_HandleTypeDef
/** @defgroup SPI_Error_Code SPI Error Code /** @defgroup SPI_Error_Code SPI Error Code
* @{ * @{
*/ */
#define HAL_SPI_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */ #define HAL_SPI_ERROR_NONE ((uint32_t)0x00000000U) /*!< No error */
#define HAL_SPI_ERROR_MODF ((uint32_t)0x00000001U) /*!< MODF error */ #define HAL_SPI_ERROR_MODF ((uint32_t)0x00000001U) /*!< MODF error */
#define HAL_SPI_ERROR_CRC ((uint32_t)0x00000002U) /*!< CRC error */ #define HAL_SPI_ERROR_CRC ((uint32_t)0x00000002U) /*!< CRC error */
#define HAL_SPI_ERROR_OVR ((uint32_t)0x00000004U) /*!< OVR error */ #define HAL_SPI_ERROR_OVR ((uint32_t)0x00000004U) /*!< OVR error */
#define HAL_SPI_ERROR_FRE ((uint32_t)0x00000008U) /*!< FRE error */ #define HAL_SPI_ERROR_FRE ((uint32_t)0x00000008U) /*!< FRE error */
#define HAL_SPI_ERROR_DMA ((uint32_t)0x00000010U) /*!< DMA transfer error */ #define HAL_SPI_ERROR_DMA ((uint32_t)0x00000010U) /*!< DMA transfer error */
#define HAL_SPI_ERROR_FLAG ((uint32_t)0x00000020U) /*!< Error on BSY/TXE/FTLVL/FRLVL Flag */ #define HAL_SPI_ERROR_FLAG ((uint32_t)0x00000020U) /*!< Error on RXNE/TXE/BSY/FTLVL/FRLVL Flag */
#define HAL_SPI_ERROR_UNKNOW ((uint32_t)0x00000040U) /*!< Unknow Error error */ #define HAL_SPI_ERROR_ABORT ((uint32_t)0x00000040U) /*!< Error during SPI Abort procedure */
/** /**
* @} * @}
*/ */
/** @defgroup SPI_Mode SPI Mode /** @defgroup SPI_Mode SPI Mode
* @{ * @{
*/ */
@ -214,19 +214,19 @@ typedef struct __SPI_HandleTypeDef
/** @defgroup SPI_Data_Size SPI Data Size /** @defgroup SPI_Data_Size SPI Data Size
* @{ * @{
*/ */
#define SPI_DATASIZE_4BIT ((uint32_t)0x0300U) #define SPI_DATASIZE_4BIT ((uint32_t)0x00000300U)
#define SPI_DATASIZE_5BIT ((uint32_t)0x0400U) #define SPI_DATASIZE_5BIT ((uint32_t)0x00000400U)
#define SPI_DATASIZE_6BIT ((uint32_t)0x0500U) #define SPI_DATASIZE_6BIT ((uint32_t)0x00000500U)
#define SPI_DATASIZE_7BIT ((uint32_t)0x0600U) #define SPI_DATASIZE_7BIT ((uint32_t)0x00000600U)
#define SPI_DATASIZE_8BIT ((uint32_t)0x0700U) #define SPI_DATASIZE_8BIT ((uint32_t)0x00000700U)
#define SPI_DATASIZE_9BIT ((uint32_t)0x0800U) #define SPI_DATASIZE_9BIT ((uint32_t)0x00000800U)
#define SPI_DATASIZE_10BIT ((uint32_t)0x0900U) #define SPI_DATASIZE_10BIT ((uint32_t)0x00000900U)
#define SPI_DATASIZE_11BIT ((uint32_t)0x0A00U) #define SPI_DATASIZE_11BIT ((uint32_t)0x00000A00U)
#define SPI_DATASIZE_12BIT ((uint32_t)0x0B00U) #define SPI_DATASIZE_12BIT ((uint32_t)0x00000B00U)
#define SPI_DATASIZE_13BIT ((uint32_t)0x0C00U) #define SPI_DATASIZE_13BIT ((uint32_t)0x00000C00U)
#define SPI_DATASIZE_14BIT ((uint32_t)0x0D00U) #define SPI_DATASIZE_14BIT ((uint32_t)0x00000D00U)
#define SPI_DATASIZE_15BIT ((uint32_t)0x0E00U) #define SPI_DATASIZE_15BIT ((uint32_t)0x00000E00U)
#define SPI_DATASIZE_16BIT ((uint32_t)0x0F00U) #define SPI_DATASIZE_16BIT ((uint32_t)0x00000F00U)
/** /**
* @} * @}
*/ */
@ -249,7 +249,7 @@ typedef struct __SPI_HandleTypeDef
* @} * @}
*/ */
/** @defgroup SPI_Slave_Select_management SPI Slave Select management /** @defgroup SPI_Slave_Select_management SPI Slave Select Management
* @{ * @{
*/ */
#define SPI_NSS_SOFT SPI_CR1_SSM #define SPI_NSS_SOFT SPI_CR1_SSM
@ -283,7 +283,7 @@ typedef struct __SPI_HandleTypeDef
* @} * @}
*/ */
/** @defgroup SPI_MSB_LSB_transmission SPI MSB LSB transmission /** @defgroup SPI_MSB_LSB_transmission SPI MSB LSB Transmission
* @{ * @{
*/ */
#define SPI_FIRSTBIT_MSB ((uint32_t)0x00000000U) #define SPI_FIRSTBIT_MSB ((uint32_t)0x00000000U)
@ -292,7 +292,7 @@ typedef struct __SPI_HandleTypeDef
* @} * @}
*/ */
/** @defgroup SPI_TI_mode SPI TI mode /** @defgroup SPI_TI_mode SPI TI Mode
* @{ * @{
*/ */
#define SPI_TIMODE_DISABLE ((uint32_t)0x00000000U) #define SPI_TIMODE_DISABLE ((uint32_t)0x00000000U)
@ -340,10 +340,7 @@ typedef struct __SPI_HandleTypeDef
* @} * @}
*/ */
/** @defgroup SPI_Interrupt_configuration_definition SPI Interrupt configuration definition /** @defgroup SPI_Interrupt_definition SPI Interrupt Definition
* @brief SPI Interrupt definition
* Elements values convention: 0xXXXXXXXX
* - XXXXXXXX : Interrupt control mask
* @{ * @{
*/ */
#define SPI_IT_TXE SPI_CR2_TXEIE #define SPI_IT_TXE SPI_CR2_TXEIE
@ -353,23 +350,18 @@ typedef struct __SPI_HandleTypeDef
* @} * @}
*/ */
/** @defgroup SPI_Flags_definition SPI Flags Definition
/** @defgroup SPI_Flag_definition SPI Flag definition
* @brief Flag definition
* Elements values convention: 0xXXXXYYYY
* - XXXX : Flag register Index
* - YYYY : Flag mask
* @{ * @{
*/ */
#define SPI_FLAG_RXNE SPI_SR_RXNE /* SPI status flag: Rx buffer not empty flag */ #define SPI_FLAG_RXNE SPI_SR_RXNE /* SPI status flag: Rx buffer not empty flag */
#define SPI_FLAG_TXE SPI_SR_TXE /* SPI status flag: Tx buffer empty flag */ #define SPI_FLAG_TXE SPI_SR_TXE /* SPI status flag: Tx buffer empty flag */
#define SPI_FLAG_BSY SPI_SR_BSY /* SPI status flag: Busy flag */ #define SPI_FLAG_BSY SPI_SR_BSY /* SPI status flag: Busy flag */
#define SPI_FLAG_CRCERR SPI_SR_CRCERR /* SPI Error flag: CRC error flag */ #define SPI_FLAG_CRCERR SPI_SR_CRCERR /* SPI Error flag: CRC error flag */
#define SPI_FLAG_MODF SPI_SR_MODF /* SPI Error flag: Mode fault flag */ #define SPI_FLAG_MODF SPI_SR_MODF /* SPI Error flag: Mode fault flag */
#define SPI_FLAG_OVR SPI_SR_OVR /* SPI Error flag: Overrun flag */ #define SPI_FLAG_OVR SPI_SR_OVR /* SPI Error flag: Overrun flag */
#define SPI_FLAG_FRE SPI_SR_FRE /* SPI Error flag: TI mode frame format error flag */ #define SPI_FLAG_FRE SPI_SR_FRE /* SPI Error flag: TI mode frame format error flag */
#define SPI_FLAG_FTLVL SPI_SR_FTLVL /* SPI fifo transmission level */ #define SPI_FLAG_FTLVL SPI_SR_FTLVL /* SPI fifo transmission level */
#define SPI_FLAG_FRLVL SPI_SR_FRLVL /* SPI fifo reception level */ #define SPI_FLAG_FRLVL SPI_SR_FRLVL /* SPI fifo reception level */
/** /**
* @} * @}
*/ */
@ -377,10 +369,10 @@ typedef struct __SPI_HandleTypeDef
/** @defgroup SPI_transmission_fifo_status_level SPI Transmission FIFO Status Level /** @defgroup SPI_transmission_fifo_status_level SPI Transmission FIFO Status Level
* @{ * @{
*/ */
#define SPI_FTLVL_EMPTY ((uint32_t)0x0000U) #define SPI_FTLVL_EMPTY ((uint32_t)0x00000000U)
#define SPI_FTLVL_QUARTER_FULL ((uint32_t)0x0800U) #define SPI_FTLVL_QUARTER_FULL ((uint32_t)0x00000800U)
#define SPI_FTLVL_HALF_FULL ((uint32_t)0x1000U) #define SPI_FTLVL_HALF_FULL ((uint32_t)0x00001000U)
#define SPI_FTLVL_FULL ((uint32_t)0x1800U) #define SPI_FTLVL_FULL ((uint32_t)0x00001800U)
/** /**
* @} * @}
@ -389,34 +381,31 @@ typedef struct __SPI_HandleTypeDef
/** @defgroup SPI_reception_fifo_status_level SPI Reception FIFO Status Level /** @defgroup SPI_reception_fifo_status_level SPI Reception FIFO Status Level
* @{ * @{
*/ */
#define SPI_FRLVL_EMPTY ((uint32_t)0x0000U) #define SPI_FRLVL_EMPTY ((uint32_t)0x00000000U)
#define SPI_FRLVL_QUARTER_FULL ((uint32_t)0x0200U) #define SPI_FRLVL_QUARTER_FULL ((uint32_t)0x00000200U)
#define SPI_FRLVL_HALF_FULL ((uint32_t)0x0400U) #define SPI_FRLVL_HALF_FULL ((uint32_t)0x00000400U)
#define SPI_FRLVL_FULL ((uint32_t)0x0600U) #define SPI_FRLVL_FULL ((uint32_t)0x00000600U)
/** /**
* @} * @}
*/ */
/** /* Exported macros -----------------------------------------------------------*/
* @}
*/
/* Exported macros ------------------------------------------------------------*/
/** @defgroup SPI_Exported_Macros SPI Exported Macros /** @defgroup SPI_Exported_Macros SPI Exported Macros
* @{ * @{
*/ */
/** @brief Reset SPI handle state /** @brief Reset SPI handle state.
* @param __HANDLE__: SPI handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
#define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPI_STATE_RESET) #define __HAL_SPI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_SPI_STATE_RESET)
/** @brief Enables or disables the specified SPI interrupts. /** @brief Enable or disable the specified SPI interrupts.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @param __INTERRUPT__ : specifies the interrupt source to enable or disable. * @param __INTERRUPT__: specifies the interrupt source to enable or disable.
* This parameter can be one of the following values: * This parameter can be one of the following values:
* @arg SPI_IT_TXE: Tx buffer empty interrupt enable * @arg SPI_IT_TXE: Tx buffer empty interrupt enable
* @arg SPI_IT_RXNE: RX buffer not empty interrupt enable * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
* @arg SPI_IT_ERR: Error interrupt enable * @arg SPI_IT_ERR: Error interrupt enable
@ -425,10 +414,10 @@ typedef struct __SPI_HandleTypeDef
#define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR2 |= (__INTERRUPT__)) #define __HAL_SPI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR2 |= (__INTERRUPT__))
#define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR2 &= (~(__INTERRUPT__))) #define __HAL_SPI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->CR2 &= (~(__INTERRUPT__)))
/** @brief Checks if the specified SPI interrupt source is enabled or disabled. /** @brief Check whether the specified SPI interrupt source is enabled or not.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @param __INTERRUPT__ : specifies the SPI interrupt source to check. * @param __INTERRUPT__: specifies the SPI interrupt source to check.
* This parameter can be one of the following values: * This parameter can be one of the following values:
* @arg SPI_IT_TXE: Tx buffer empty interrupt enable * @arg SPI_IT_TXE: Tx buffer empty interrupt enable
* @arg SPI_IT_RXNE: RX buffer not empty interrupt enable * @arg SPI_IT_RXNE: RX buffer not empty interrupt enable
@ -437,11 +426,11 @@ typedef struct __SPI_HandleTypeDef
*/ */
#define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET) #define __HAL_SPI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->CR2 & (__INTERRUPT__)) == (__INTERRUPT__)) ? SET : RESET)
/** @brief Checks whether the specified SPI flag is set or not. /** @brief Check whether the specified SPI flag is set or not.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @param __FLAG__ : specifies the flag to check. * @param __FLAG__: specifies the flag to check.
* This parameter can be one of the following values: * This parameter can be one of the following values:
* @arg SPI_FLAG_RXNE: Receive buffer not empty flag * @arg SPI_FLAG_RXNE: Receive buffer not empty flag
* @arg SPI_FLAG_TXE: Transmit buffer empty flag * @arg SPI_FLAG_TXE: Transmit buffer empty flag
* @arg SPI_FLAG_CRCERR: CRC error flag * @arg SPI_FLAG_CRCERR: CRC error flag
@ -455,63 +444,60 @@ typedef struct __SPI_HandleTypeDef
*/ */
#define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__)) #define __HAL_SPI_GET_FLAG(__HANDLE__, __FLAG__) ((((__HANDLE__)->Instance->SR) & (__FLAG__)) == (__FLAG__))
/** @brief Clears the SPI CRCERR pending flag. /** @brief Clear the SPI CRCERR pending flag.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
#define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__) ((__HANDLE__)->Instance->SR = (uint16_t)(~SPI_FLAG_CRCERR)) #define __HAL_SPI_CLEAR_CRCERRFLAG(__HANDLE__) ((__HANDLE__)->Instance->SR = (uint16_t)(~SPI_FLAG_CRCERR))
/** @brief Clears the SPI MODF pending flag. /** @brief Clear the SPI MODF pending flag.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
*
* @retval None * @retval None
*/ */
#define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__) \ #define __HAL_SPI_CLEAR_MODFFLAG(__HANDLE__) \
do{ \ do{ \
__IO uint32_t tmpreg; \ __IO uint32_t tmpreg_modf = 0x00U; \
tmpreg = (__HANDLE__)->Instance->SR; \ tmpreg_modf = (__HANDLE__)->Instance->SR; \
(__HANDLE__)->Instance->CR1 &= (~SPI_CR1_SPE); \ (__HANDLE__)->Instance->CR1 &= (~SPI_CR1_SPE); \
UNUSED(tmpreg); \ UNUSED(tmpreg_modf); \
} while(0) } while(0)
/** @brief Clears the SPI OVR pending flag. /** @brief Clear the SPI OVR pending flag.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
*
* @retval None * @retval None
*/ */
#define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__) \ #define __HAL_SPI_CLEAR_OVRFLAG(__HANDLE__) \
do{ \ do{ \
__IO uint32_t tmpreg; \ __IO uint32_t tmpreg_ovr = 0x00U; \
tmpreg = (__HANDLE__)->Instance->DR; \ tmpreg_ovr = (__HANDLE__)->Instance->DR; \
tmpreg = (__HANDLE__)->Instance->SR; \ tmpreg_ovr = (__HANDLE__)->Instance->SR; \
UNUSED(tmpreg); \ UNUSED(tmpreg_ovr); \
} while(0) } while(0)
/** @brief Clears the SPI FRE pending flag. /** @brief Clear the SPI FRE pending flag.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
*
* @retval None * @retval None
*/ */
#define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__) \ #define __HAL_SPI_CLEAR_FREFLAG(__HANDLE__) \
do{ \ do{ \
__IO uint32_t tmpreg; \ __IO uint32_t tmpreg_fre = 0x00U; \
tmpreg = (__HANDLE__)->Instance->SR; \ tmpreg_fre = (__HANDLE__)->Instance->SR; \
UNUSED(tmpreg); \ UNUSED(tmpreg_fre); \
} while(0) }while(0)
/** @brief Enables the SPI. /** @brief Enable the SPI peripheral.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
#define __HAL_SPI_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= SPI_CR1_SPE) #define __HAL_SPI_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= SPI_CR1_SPE)
/** @brief Disables the SPI. /** @brief Disable the SPI peripheral.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
@ -521,27 +507,27 @@ typedef struct __SPI_HandleTypeDef
* @} * @}
*/ */
/* Private macros --------------------------------------------------------*/ /* Private macros ------------------------------------------------------------*/
/** @defgroup SPI_Private_Macros SPI Private Macros /** @defgroup SPI_Private_Macros SPI Private Macros
* @{ * @{
*/ */
/** @brief Sets the SPI transmit-only mode. /** @brief Set the SPI transmit-only mode.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
#define SPI_1LINE_TX(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= SPI_CR1_BIDIOE) #define SPI_1LINE_TX(__HANDLE__) ((__HANDLE__)->Instance->CR1 |= SPI_CR1_BIDIOE)
/** @brief Sets the SPI receive-only mode. /** @brief Set the SPI receive-only mode.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
#define SPI_1LINE_RX(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= (~SPI_CR1_BIDIOE)) #define SPI_1LINE_RX(__HANDLE__) ((__HANDLE__)->Instance->CR1 &= (~SPI_CR1_BIDIOE))
/** @brief Resets the CRC calculation of the SPI. /** @brief Reset the CRC calculation of the SPI.
* @param __HANDLE__ : specifies the SPI Handle. * @param __HANDLE__: specifies the SPI Handle.
* This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral. * This parameter can be SPI where x: 1, 2, or 3 to select the SPI peripheral.
* @retval None * @retval None
*/ */
@ -551,14 +537,14 @@ typedef struct __SPI_HandleTypeDef
#define IS_SPI_MODE(MODE) (((MODE) == SPI_MODE_SLAVE) || \ #define IS_SPI_MODE(MODE) (((MODE) == SPI_MODE_SLAVE) || \
((MODE) == SPI_MODE_MASTER)) ((MODE) == SPI_MODE_MASTER))
#define IS_SPI_DIRECTION(MODE) (((MODE) == SPI_DIRECTION_2LINES) || \ #define IS_SPI_DIRECTION(MODE) (((MODE) == SPI_DIRECTION_2LINES) || \
((MODE) == SPI_DIRECTION_2LINES_RXONLY) ||\ ((MODE) == SPI_DIRECTION_2LINES_RXONLY) || \
((MODE) == SPI_DIRECTION_1LINE)) ((MODE) == SPI_DIRECTION_1LINE))
#define IS_SPI_DIRECTION_2LINES(MODE) ((MODE) == SPI_DIRECTION_2LINES) #define IS_SPI_DIRECTION_2LINES(MODE) ((MODE) == SPI_DIRECTION_2LINES)
#define IS_SPI_DIRECTION_2LINES_OR_1LINE(MODE) (((MODE) == SPI_DIRECTION_2LINES)|| \ #define IS_SPI_DIRECTION_2LINES_OR_1LINE(MODE) (((MODE) == SPI_DIRECTION_2LINES) || \
((MODE) == SPI_DIRECTION_1LINE)) ((MODE) == SPI_DIRECTION_1LINE))
#define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DATASIZE_16BIT) || \ #define IS_SPI_DATASIZE(DATASIZE) (((DATASIZE) == SPI_DATASIZE_16BIT) || \
((DATASIZE) == SPI_DATASIZE_15BIT) || \ ((DATASIZE) == SPI_DATASIZE_15BIT) || \
@ -580,19 +566,19 @@ typedef struct __SPI_HandleTypeDef
#define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_PHASE_1EDGE) || \ #define IS_SPI_CPHA(CPHA) (((CPHA) == SPI_PHASE_1EDGE) || \
((CPHA) == SPI_PHASE_2EDGE)) ((CPHA) == SPI_PHASE_2EDGE))
#define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_SOFT) || \ #define IS_SPI_NSS(NSS) (((NSS) == SPI_NSS_SOFT) || \
((NSS) == SPI_NSS_HARD_INPUT) || \ ((NSS) == SPI_NSS_HARD_INPUT) || \
((NSS) == SPI_NSS_HARD_OUTPUT)) ((NSS) == SPI_NSS_HARD_OUTPUT))
#define IS_SPI_NSSP(NSSP) (((NSSP) == SPI_NSS_PULSE_ENABLE) || \ #define IS_SPI_NSSP(NSSP) (((NSSP) == SPI_NSS_PULSE_ENABLE) || \
((NSSP) == SPI_NSS_PULSE_DISABLE)) ((NSSP) == SPI_NSS_PULSE_DISABLE))
#define IS_SPI_BAUDRATE_PRESCALER(PRESCALER) (((PRESCALER) == SPI_BAUDRATEPRESCALER_2) || \ #define IS_SPI_BAUDRATE_PRESCALER(PRESCALER) (((PRESCALER) == SPI_BAUDRATEPRESCALER_2) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_4) || \ ((PRESCALER) == SPI_BAUDRATEPRESCALER_4) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_8) || \ ((PRESCALER) == SPI_BAUDRATEPRESCALER_8) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_16) || \ ((PRESCALER) == SPI_BAUDRATEPRESCALER_16) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_32) || \ ((PRESCALER) == SPI_BAUDRATEPRESCALER_32) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_64) || \ ((PRESCALER) == SPI_BAUDRATEPRESCALER_64) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_128) || \ ((PRESCALER) == SPI_BAUDRATEPRESCALER_128) || \
((PRESCALER) == SPI_BAUDRATEPRESCALER_256)) ((PRESCALER) == SPI_BAUDRATEPRESCALER_256))
@ -609,25 +595,23 @@ typedef struct __SPI_HandleTypeDef
((LENGTH) == SPI_CRC_LENGTH_8BIT) || \ ((LENGTH) == SPI_CRC_LENGTH_8BIT) || \
((LENGTH) == SPI_CRC_LENGTH_16BIT)) ((LENGTH) == SPI_CRC_LENGTH_16BIT))
#define IS_SPI_CRC_POLYNOMIAL(POLYNOMIAL) (((POLYNOMIAL) >= 0x1) && ((POLYNOMIAL) <= 0xFFFF) && (((POLYNOMIAL)&0x1) != 0)) #define IS_SPI_CRC_POLYNOMIAL(POLYNOMIAL) (((POLYNOMIAL) >= 0x1) && ((POLYNOMIAL) <= 0xFFFFU) && (((POLYNOMIAL)&0x1U) != 0))
/** /**
* @} * @}
*/ */
/* Exported functions --------------------------------------------------------*/ /* Exported functions --------------------------------------------------------*/
/** @addtogroup SPI_Exported_Functions SPI Exported Functions /** @addtogroup SPI_Exported_Functions
* @{ * @{
*/ */
/** @addtogroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions /** @addtogroup SPI_Exported_Functions_Group1 Initialization and de-initialization functions
* @{ * @{
*/ */
/* Initialization/de-initialization functions ********************************/
/* Initialization and de-initialization functions ****************************/
HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi); HAL_StatusTypeDef HAL_SPI_Init(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DeInit (SPI_HandleTypeDef *hspi); HAL_StatusTypeDef HAL_SPI_DeInit(SPI_HandleTypeDef *hspi);
void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi); void HAL_SPI_MspInit(SPI_HandleTypeDef *hspi);
void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi); void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi);
/** /**
@ -637,20 +621,25 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef *hspi);
/** @addtogroup SPI_Exported_Functions_Group2 IO operation functions /** @addtogroup SPI_Exported_Functions_Group2 IO operation functions
* @{ * @{
*/ */
/* I/O operation functions ***************************************************/
/* IO operation functions *****************************************************/
HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_SPI_Transmit(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_SPI_Receive(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size, uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size, uint32_t Timeout); HAL_StatusTypeDef HAL_SPI_TransmitReceive(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size,
uint32_t Timeout);
HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SPI_Transmit_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SPI_Receive_IT(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size); HAL_StatusTypeDef HAL_SPI_TransmitReceive_IT(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData,
uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SPI_Transmit_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size); HAL_StatusTypeDef HAL_SPI_Receive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pData, uint16_t Size);
HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData, uint16_t Size); HAL_StatusTypeDef HAL_SPI_TransmitReceive_DMA(SPI_HandleTypeDef *hspi, uint8_t *pTxData, uint8_t *pRxData,
uint16_t Size);
HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi); HAL_StatusTypeDef HAL_SPI_DMAPause(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi); HAL_StatusTypeDef HAL_SPI_DMAResume(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi); HAL_StatusTypeDef HAL_SPI_DMAStop(SPI_HandleTypeDef *hspi);
/* Transfer Abort functions */
HAL_StatusTypeDef HAL_SPI_Abort(SPI_HandleTypeDef *hspi);
HAL_StatusTypeDef HAL_SPI_Abort_IT(SPI_HandleTypeDef *hspi);
void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi); void HAL_SPI_IRQHandler(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi); void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi);
@ -660,6 +649,7 @@ void HAL_SPI_TxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi); void HAL_SPI_RxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi); void HAL_SPI_TxRxHalfCpltCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi); void HAL_SPI_ErrorCallback(SPI_HandleTypeDef *hspi);
void HAL_SPI_AbortCpltCallback(SPI_HandleTypeDef *hspi);
/** /**
* @} * @}
*/ */
@ -693,4 +683,7 @@ uint32_t HAL_SPI_GetError(SPI_HandleTypeDef *hspi);
#endif /* __STM32F7xx_HAL_SPI_H */ #endif /* __STM32F7xx_HAL_SPI_H */
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_sram.h * @file stm32f7xx_hal_sram.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SRAM HAL module. * @brief Header file of SRAM HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_tim.h * @file stm32f7xx_hal_tim.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of TIM HAL module. * @brief Header file of TIM HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_tim_ex.h * @file stm32f7xx_hal_tim_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of TIM HAL Extension module. * @brief Header file of TIM HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_uart.h * @file stm32f7xx_hal_uart.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of UART HAL module. * @brief Header file of UART HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -230,13 +230,13 @@ typedef struct
uint16_t TxXferSize; /*!< UART Tx Transfer size */ uint16_t TxXferSize; /*!< UART Tx Transfer size */
uint16_t TxXferCount; /*!< UART Tx Transfer Counter */ __IO uint16_t TxXferCount; /*!< UART Tx Transfer Counter */
uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */ uint8_t *pRxBuffPtr; /*!< Pointer to UART Rx transfer Buffer */
uint16_t RxXferSize; /*!< UART Rx Transfer size */ uint16_t RxXferSize; /*!< UART Rx Transfer size */
uint16_t RxXferCount; /*!< UART Rx Transfer Counter */ __IO uint16_t RxXferCount; /*!< UART Rx Transfer Counter */
uint16_t Mask; /*!< UART Rx RDR register mask */ uint16_t Mask; /*!< UART Rx RDR register mask */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_uart_ex.h * @file stm32f7xx_hal_uart_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of UART HAL Extension module. * @brief Header file of UART HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_usart.h * @file stm32f7xx_hal_usart.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of USART HAL module. * @brief Header file of USART HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention
@ -141,13 +141,13 @@ typedef struct
uint16_t TxXferSize; /*!< USART Tx Transfer size */ uint16_t TxXferSize; /*!< USART Tx Transfer size */
uint16_t TxXferCount; /*!< USART Tx Transfer Counter */ __IO uint16_t TxXferCount; /*!< USART Tx Transfer Counter */
uint8_t *pRxBuffPtr; /*!< Pointer to USART Rx transfer Buffer */ uint8_t *pRxBuffPtr; /*!< Pointer to USART Rx transfer Buffer */
uint16_t RxXferSize; /*!< USART Rx Transfer size */ uint16_t RxXferSize; /*!< USART Rx Transfer size */
uint16_t RxXferCount; /*!< USART Rx Transfer Counter */ __IO uint16_t RxXferCount; /*!< USART Rx Transfer Counter */
uint16_t Mask; /*!< USART Rx RDR register mask */ uint16_t Mask; /*!< USART Rx RDR register mask */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_usart_ex.h * @file stm32f7xx_hal_usart_ex.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of USART HAL Extension module. * @brief Header file of USART HAL Extension module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_wwdg.h * @file stm32f7xx_hal_wwdg.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of WWDG HAL module. * @brief Header file of WWDG HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_ll_fmc.h * @file stm32f7xx_ll_fmc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of FMC HAL module. * @brief Header file of FMC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_ll_sdmmc.h * @file stm32f7xx_ll_sdmmc.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of SDMMC HAL module. * @brief Header file of SDMMC HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_ll_usb.h * @file stm32f7xx_ll_usb.h
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Header file of USB Core HAL module. * @brief Header file of USB Core HAL module.
****************************************************************************** ******************************************************************************
* @attention * @attention

View File

@ -676,7 +676,64 @@ Notes for STM32F7xx HAL Drivers</span><span style="font-size: 20pt; font-family:
<tr style=""> <tr style="">
<td style="padding: 0in;" valign="top"> <td style="padding: 0in;" valign="top">
<h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;"><a name="History"></a><span style="font-size: 12pt; color: white;">Update History</span></h2> <h2 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial;"><a name="History"></a><span style="font-size: 12pt; color: white;">Update History</span></h2>
<h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 200px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.1.0 / 22-April-2016</span></h3> <h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 200px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.1.2 / 23-September-2016</span></h3>
<p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main
Changes</span></u></b></p><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">General updates
to fix known defects and enhancements implementation</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
Cortex</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Move HAL_MPU_Disable() and
HAL_MPU_Enable() from stm32f7xx_hal_cortex.h to stm32f7xx_hal_cortex.c</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Clear the whole MPU control
register in&nbsp;HAL_MPU_Disable() API</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
CRC</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update HAL_CRC_DeInit()
function to reset IDR register</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
DMA</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add a check on DMA stream
instance in HAL_DMA_DeInit() API</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul></ul>
<ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
DSI</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update
HAL_DSI_ConfigHostTimeouts() and HAL_DSI_Init() functions to avoid
scratch in DSI_CCR register</span></li></ul></ul><ul style="margin-top: 0cm;" type="square"><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL ETH</span> update&nbsp;</span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Fix wrong definitions in driver header file stm32f7_hal_eth.h</span></li></ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL FLASH</span> update&nbsp;</span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update the clearing of error flags</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
GPIO</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add GPIO_AF14_LTDC definition</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
I2C</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add I2C_FIRST_AND_NEXT_FRAME
for I2C Sequential Transfer Options</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL IRDA</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US"> update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add IRDA_CLOCKSOURCE_UNDEFINED
define</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add
__HAL_IRDA_FLUSH_DRREGISTER() macro for IRDA DR register flush</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add macros for specific flag
clear <o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_IRDA_CLEAR_FLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_IRDA_CLEAR_PEFLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_IRDA_CLEAR_FEFLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_IRDA_CLEAR_NEFLAG() <o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_IRDA_CLEAR_OREFLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_IRDA_CLEAR_IDLEFLAG()<o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add new functions and call
backs for Transfer Abort<o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_Abort()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortTransmit()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortReceive()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_Abort_IT()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortTransmit_IT()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortReceive_IT()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortCpltCallback()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortTransmitCpltCallback()<o:p></o:p></span></li></ul></ul></ul>
<ul style="margin-top: 0cm;" type="square"><ul style="margin-top: 0cm;" type="square"><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_IRDA_AbortReceiveCpltCallback()<o:p></o:p></span></li></ul></ul></ul>
<ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
JPEG</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">&nbsp;update&nbsp;</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update the output data
management when&nbsp;HAL_JPEG_Pause() is performed during the last data
sending</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update JPEG_FIFO_SIZE
definition</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
RCC&nbsp;</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;"><o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Enable PWR only if necessary
for LSE configuration in HAL_RCC_OscConfig() API</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL RTC</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US"> update<o:p></o:p></span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update
HAL_RTCEx_SetTimeStamp_IT() function implementation to clear RTC
Timestamp flag<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update
HAL_RTCEx_SetTamper_IT() function implementation for better management of
different RTC tampers flags<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update
HAL_RTCEx_SetWakeUpTimer_IT() function implementation to clear wake up
timer flag</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL SMARTCARD</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US"> update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Rename NACKState to NACKEnable
in the SMARTCARD_InitTypeDef structure</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add macros for specific flag
clear <o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_SMARTCARD_CLEAR_FLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_SMARTCARD_CLEAR_PEFLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_SMARTCARD_CLEAR_FEFLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_SMARTCARD_CLEAR_NEFLAG()
<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_CLEAR_OREFLAG()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">__HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_CLEAR_IDLEFLAG()<o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add new functions and call backs
for Transfer Abort<o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_Abort()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortTransmit()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortReceive()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_Abort_IT()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortTransmit_IT()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortReceive_IT()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortCpltCallback()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortTransmitCpltCallback()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_</span><span style="color: windowtext;" lang="EN-US"> </span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">SMARTCARD_AbortReceiveCpltCallback()<o:p></o:p></span></li></ul></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL SPI</span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US"> update</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update SPI_EndRxTxTransaction() function to RX FiFo at the end of each transaction</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US"></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add HAL_SPI_STATE_ABORT in the
HAL_SPI_StateTypeDef enum<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Add new functions and call
backs for Transfer Abort<o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_SPI_Abort ()<o:p></o:p></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_SPI_Abort_IT()</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">HAL_SPI_AbortCpltCallback()<br></span></li></ul></ul></ul>
<span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif; color: black;" lang="EN-US"></span>
<ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
UART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update HAL_UART_Receive_IT()
and HAL_UART_DMAStop() functions implementations to manage Parity error
interrupt<o:p></o:p></span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">HAL
USART </span></b><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;">update<o:p></o:p></span></li><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update HAL_USART_Init() function by removing the clear&nbsp;of CLKEN bit</span><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US"></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update HAL_USART_Receive_IT()
and HAL_USART_DMAStop() functions implementations to manage Parity error
interrupt<o:p></o:p></span></li></ul></ul>
<ul style="margin-top: 0cm;" type="square"><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL USB</span> update</span></li><ul style="margin-top: 0cm; list-style-type: circle;"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-size: 10pt; font-family: &quot;Verdana&quot;,sans-serif;" lang="EN-US">Update PENA bit clearing in
OTG_HPRT0 register</span><span style="font-size: 12pt; font-family: &quot;Times New Roman&quot;,serif;" lang="EN-US"><o:p></o:p></span></li></ul></ul>
<h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 200px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.1.1 / 01-July-2016</span></h3>
<p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main
Changes</span></u></b></p><ul style="margin-top: 0cm;" type="square"><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL DMA</span> update&nbsp;</span></li><ul><li style="margin-top: 4.5pt; margin-bottom: 4.5pt; color: black;" class="MsoNormal"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">Update HAL_DMA_PollForTransfer() function implementation to&nbsp;avoid early TIMEOUT error.</span> </li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL JPEG</span> update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update HAL_JPEG_ConfigEncoding() function to properly set the ImageHeight and ImageWidth</span></li></ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"><span style="font-weight: bold;">HAL SPI</span> update</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Update SPI_DMATransmitReceiveCplt() function to properly handle the CRC and avoid conditional statement duplication<br></span></li></ul></ul><h3 style="background: rgb(51, 102, 255) none repeat scroll 0% 50%; -moz-background-clip: initial; -moz-background-origin: initial; -moz-background-inline-policy: initial; margin-right: 500pt; width: 200px;"><span style="font-size: 10pt; font-family: Arial; color: white;">V1.1.0 / 22-April-2016</span></h3>
<p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main <p class="MsoNormal" style="margin: 4.5pt 0cm 4.5pt 18pt;"><b style=""><u><span style="font-size: 10pt; font-family: Verdana; color: black;">Main
Changes</span></u></b></p><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Official release to add the support of <span style="font-weight: bold;">STM32F765xx, STM32F767xx, STM32F768xx, STM32F769xx, STM32F777xx, STM32F778xx</span> <span style="font-weight: bold;">and STM32F779xx</span> devices<br></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">General updates Changes</span></u></b></p><ul style="margin-top: 0cm;" type="square"><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Official release to add the support of <span style="font-weight: bold;">STM32F765xx, STM32F767xx, STM32F768xx, STM32F769xx, STM32F777xx, STM32F778xx</span> <span style="font-weight: bold;">and STM32F779xx</span> devices<br></span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: Verdana,sans-serif; font-size: 10pt;">General updates
to fix known defects and enhancements implementation</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Add new HAL drivers for<span class="Apple-converted-space"> </span><span style="font-weight: bold;">DFSDM, DSI<span class="Apple-converted-space">, JPEG </span></span>and<span class="Apple-converted-space"> </span><span style="font-weight: bold;">MDIOS<span class="Apple-converted-space"> </span></span>peripherals</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Enhance HAL delay and timebase implementation</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new to fix known defects and enhancements implementation</span></li><li class="MsoNormal" style="margin: 4.5pt 0in; font-size: 12pt; font-family: 'Times New Roman',serif; color: black;"><span style="font-size: 10pt; font-family: Verdana,sans-serif;">Add new HAL drivers for<span class="Apple-converted-space"> </span><span style="font-weight: bold;">DFSDM, DSI<span class="Apple-converted-space">, JPEG </span></span>and<span class="Apple-converted-space"> </span><span style="font-weight: bold;">MDIOS<span class="Apple-converted-space"> </span></span>peripherals</span></li><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Enhance HAL delay and timebase implementation</span></li><ul><li class="MsoNormal" style="color: black; margin-top: 4.5pt; margin-bottom: 4.5pt;"><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;"></span><span style="font-family: 'Verdana','sans-serif'; font-size: 10pt;">Add new

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal.c * @file stm32f7xx_hal.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief HAL module driver. * @brief HAL module driver.
* This is the common part of the HAL initialization * This is the common part of the HAL initialization
* *
@ -68,11 +68,11 @@
* @{ * @{
*/ */
/** /**
* @brief STM32F7xx HAL Driver version number V1.1.0 * @brief STM32F7xx HAL Driver version number V1.1.2
*/ */
#define __STM32F7xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */ #define __STM32F7xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */
#define __STM32F7xx_HAL_VERSION_SUB1 (0x01) /*!< [23:16] sub1 version */ #define __STM32F7xx_HAL_VERSION_SUB1 (0x01) /*!< [23:16] sub1 version */
#define __STM32F7xx_HAL_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */ #define __STM32F7xx_HAL_VERSION_SUB2 (0x02) /*!< [15:8] sub2 version */
#define __STM32F7xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */ #define __STM32F7xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */
#define __STM32F7xx_HAL_VERSION ((__STM32F7xx_HAL_VERSION_MAIN << 24)\ #define __STM32F7xx_HAL_VERSION ((__STM32F7xx_HAL_VERSION_MAIN << 24)\
|(__STM32F7xx_HAL_VERSION_SUB1 << 16)\ |(__STM32F7xx_HAL_VERSION_SUB1 << 16)\

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_adc.c * @file stm32f7xx_hal_adc.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief This file provides firmware functions to manage the following * @brief This file provides firmware functions to manage the following
* functionalities of the Analog to Digital Convertor (ADC) peripheral: * functionalities of the Analog to Digital Convertor (ADC) peripheral:
* + Initialization and de-initialization functions * + Initialization and de-initialization functions

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_adc_ex.c * @file stm32f7xx_hal_adc_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief This file provides firmware functions to manage the following * @brief This file provides firmware functions to manage the following
* functionalities of the ADC extension peripheral: * functionalities of the ADC extension peripheral:
* + Extended features functions * + Extended features functions
@ -805,7 +805,7 @@ HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef* hadc, ADC_I
assert_param(IS_ADC_RANGE(tmp, sConfigInjected->InjectedOffset)); assert_param(IS_ADC_RANGE(tmp, sConfigInjected->InjectedOffset));
#endif /* USE_FULL_ASSERT */ #endif /* USE_FULL_ASSERT */
if(sConfigInjected->ExternalTrigInjecConvEdge != ADC_INJECTED_SOFTWARE_START) if(sConfigInjected->ExternalTrigInjecConv != ADC_INJECTED_SOFTWARE_START)
{ {
assert_param(IS_ADC_EXT_INJEC_TRIG_EDGE(sConfigInjected->ExternalTrigInjecConvEdge)); assert_param(IS_ADC_EXT_INJEC_TRIG_EDGE(sConfigInjected->ExternalTrigInjecConvEdge));
} }

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_can.c * @file stm32f7xx_hal_can.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief CAN HAL module driver. * @brief CAN HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Controller Area Network (CAN) peripheral: * functionalities of the Controller Area Network (CAN) peripheral:
@ -381,10 +381,12 @@ HAL_StatusTypeDef HAL_CAN_ConfigFilter(CAN_HandleTypeDef* hcan, CAN_FilterConfTy
/* Initialisation mode for the filter */ /* Initialisation mode for the filter */
can_ip->FMR |= (uint32_t)CAN_FMR_FINIT; can_ip->FMR |= (uint32_t)CAN_FMR_FINIT;
#if defined (CAN2)
/* Select the start slave bank */ /* Select the start slave bank */
can_ip->FMR &= ~((uint32_t)CAN_FMR_CAN2SB); can_ip->FMR &= ~((uint32_t)CAN_FMR_CAN2SB);
can_ip->FMR |= (uint32_t)(sFilterConfig->BankNumber << 8); can_ip->FMR |= (uint32_t)(sFilterConfig->BankNumber << 8);
#endif
/* Filter Deactivation */ /* Filter Deactivation */
can_ip->FA1R &= ~(uint32_t)filternbrbitpos; can_ip->FA1R &= ~(uint32_t)filternbrbitpos;

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cec.c * @file stm32f7xx_hal_cec.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief CEC HAL module driver. * @brief CEC HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the High Definition Multimedia Interface * functionalities of the High Definition Multimedia Interface
@ -88,6 +88,7 @@
* @{ * @{
*/ */
#ifdef HAL_CEC_MODULE_ENABLED #ifdef HAL_CEC_MODULE_ENABLED
#if defined (CEC)
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
@ -655,7 +656,8 @@ uint32_t HAL_CEC_GetError(CEC_HandleTypeDef *hcec)
/** /**
* @} * @}
*/ */
#endif /* CEC */
#endif /* HAL_CEC_MODULE_ENABLED */ #endif /* HAL_CEC_MODULE_ENABLED */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cortex.c * @file stm32f7xx_hal_cortex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief CORTEX HAL module driver. * @brief CORTEX HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the CORTEX: * functionalities of the CORTEX:
@ -269,6 +269,46 @@ uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
*/ */
#if (__MPU_PRESENT == 1) #if (__MPU_PRESENT == 1)
/**
* @brief Disables the MPU
* @retval None
*/
void HAL_MPU_Disable(void)
{
/* Make sure outstanding transfers are done */
__DMB();
/* Disable fault exceptions */
SCB->SHCSR &= ~SCB_SHCSR_MEMFAULTENA_Msk;
/* Disable the MPU and clear the control register*/
MPU->CTRL = 0;
}
/**
* @brief Enables the MPU
* @param MPU_Control: Specifies the control mode of the MPU during hard fault,
* NMI, FAULTMASK and privileged access to the default memory
* This parameter can be one of the following values:
* @arg MPU_HFNMI_PRIVDEF_NONE
* @arg MPU_HARDFAULT_NMI
* @arg MPU_PRIVILEGED_DEFAULT
* @arg MPU_HFNMI_PRIVDEF
* @retval None
*/
void HAL_MPU_Enable(uint32_t MPU_Control)
{
/* Enable the MPU */
MPU->CTRL = MPU_Control | MPU_CTRL_ENABLE_Msk;
/* Enable fault exceptions */
SCB->SHCSR |= SCB_SHCSR_MEMFAULTENA_Msk;
/* Ensure MPU setting take effects */
__DSB();
__ISB();
}
/** /**
* @brief Initializes and configures the Region and the memory to be protected. * @brief Initializes and configures the Region and the memory to be protected.
* @param MPU_Init: Pointer to a MPU_Region_InitTypeDef structure that contains * @param MPU_Init: Pointer to a MPU_Region_InitTypeDef structure that contains

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_crc.c * @file stm32f7xx_hal_crc.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief CRC HAL module driver. * @brief CRC HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Cyclic Redundancy Check (CRC) peripheral: * functionalities of the Cyclic Redundancy Check (CRC) peripheral:
@ -214,6 +214,9 @@ HAL_StatusTypeDef HAL_CRC_DeInit(CRC_HandleTypeDef *hcrc)
/* Reset CRC calculation unit */ /* Reset CRC calculation unit */
__HAL_CRC_DR_RESET(hcrc); __HAL_CRC_DR_RESET(hcrc);
/* Reset IDR register content */
CLEAR_BIT(hcrc->Instance->IDR, CRC_IDR_IDR);
/* DeInit the low level hardware */ /* DeInit the low level hardware */
HAL_CRC_MspDeInit(hcrc); HAL_CRC_MspDeInit(hcrc);

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_crc_ex.c * @file stm32f7xx_hal_crc_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Extended CRC HAL module driver. * @brief Extended CRC HAL module driver.
* *
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cryp.c * @file stm32f7xx_hal_cryp.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief CRYP HAL module driver. * @brief CRYP HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Cryptography (CRYP) peripheral: * functionalities of the Cryptography (CRYP) peripheral:
@ -100,18 +100,18 @@
/* Includes ------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal.h" #include "stm32f7xx_hal.h"
#ifdef HAL_CRYP_MODULE_ENABLED
#if defined (CRYP)
/** @addtogroup STM32F7xx_HAL_Driver /** @addtogroup STM32F7xx_HAL_Driver
* @{ * @{
*/ */
#if defined (STM32F756xx) || defined (STM32F777xx) || defined (STM32F779xx)
/** @defgroup CRYP CRYP /** @defgroup CRYP CRYP
* @brief CRYP HAL module driver. * @brief CRYP HAL module driver.
* @{ * @{
*/ */
#ifdef HAL_CRYP_MODULE_ENABLED
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
/** @addtogroup CRYP_Private_define /** @addtogroup CRYP_Private_define
@ -3808,16 +3808,14 @@ HAL_CRYP_STATETypeDef HAL_CRYP_GetState(CRYP_HandleTypeDef *hcryp)
/** /**
* @} * @}
*/ */
/**
* @}
*/
/**
* @}
*/
#endif /* CRYP */
#endif /* HAL_CRYP_MODULE_ENABLED */ #endif /* HAL_CRYP_MODULE_ENABLED */
/**
* @}
*/
#endif /* STM32F756xx || STM32F777xx || STM32F779xx */
/**
* @}
*/
/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_cryp_ex.c * @file stm32f7xx_hal_cryp_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Extended CRYP HAL module driver * @brief Extended CRYP HAL module driver
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of CRYP extension peripheral: * functionalities of CRYP extension peripheral:
@ -102,7 +102,6 @@
/** @addtogroup STM32F7xx_HAL_Driver /** @addtogroup STM32F7xx_HAL_Driver
* @{ * @{
*/ */
#if defined (STM32F756xx) || defined (STM32F777xx) || defined (STM32F779xx)
/** @defgroup CRYPEx CRYPEx /** @defgroup CRYPEx CRYPEx
* @brief CRYP Extension HAL module driver. * @brief CRYP Extension HAL module driver.
* @{ * @{
@ -111,6 +110,8 @@
#ifdef HAL_CRYP_MODULE_ENABLED #ifdef HAL_CRYP_MODULE_ENABLED
#if defined (CRYP)
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
/** @addtogroup CRYPEx_Private_define /** @addtogroup CRYPEx_Private_define
@ -3027,12 +3028,15 @@ void HAL_CRYPEx_GCMCCM_IRQHandler(CRYP_HandleTypeDef *hcryp)
/** /**
* @} * @}
*/ */
#endif /* CRYP */
#endif /* HAL_CRYP_MODULE_ENABLED */ #endif /* HAL_CRYP_MODULE_ENABLED */
/** /**
* @} * @}
*/ */
#endif /* STM32F756xx || STM32F777xx || STM32F779xx */
/** /**
* @} * @}
*/ */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dac.c * @file stm32f7xx_hal_dac.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief DAC HAL module driver. * @brief DAC HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Digital to Analog Converter (DAC) peripheral: * functionalities of the Digital to Analog Converter (DAC) peripheral:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dac_ex.c * @file stm32f7xx_hal_dac_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Extended DAC HAL module driver. * @brief Extended DAC HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of DAC extension peripheral: * functionalities of DAC extension peripheral:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dcmi.c * @file stm32f7xx_hal_dcmi.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief DCMI HAL module driver * @brief DCMI HAL module driver
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Digital Camera Interface (DCMI) peripheral: * functionalities of the Digital Camera Interface (DCMI) peripheral:
@ -102,6 +102,7 @@
*/ */
#ifdef HAL_DCMI_MODULE_ENABLED #ifdef HAL_DCMI_MODULE_ENABLED
#if defined (DCMI)
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
@ -892,6 +893,7 @@ static void DCMI_DMAError(DMA_HandleTypeDef *hdma)
/** /**
* @} * @}
*/ */
#endif /* DCMI */
#endif /* HAL_DCMI_MODULE_ENABLED */ #endif /* HAL_DCMI_MODULE_ENABLED */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dcmi_ex.c * @file stm32f7xx_hal_dcmi_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Empty file; This file is no longer used to handle the Black&White * @brief Empty file; This file is no longer used to handle the Black&White
* feature. Its content is now moved to common files * feature. Its content is now moved to common files
* (stm32f7xx_hal_dcmi.c/.h) as there's no device's dependency within F7 * (stm32f7xx_hal_dcmi.c/.h) as there's no device's dependency within F7

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dfsdm.c * @file stm32f7xx_hal_dfsdm.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief This file provides firmware functions to manage the following * @brief This file provides firmware functions to manage the following
* functionalities of the Digital Filter for Sigma-Delta Modulators * functionalities of the Digital Filter for Sigma-Delta Modulators
* (DFSDM) peripherals: * (DFSDM) peripherals:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dma.c * @file stm32f7xx_hal_dma.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief DMA HAL module driver. * @brief DMA HAL module driver.
* *
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
@ -19,21 +19,25 @@
(#) Enable and configure the peripheral to be connected to the DMA Stream (#) Enable and configure the peripheral to be connected to the DMA Stream
(except for internal SRAM/FLASH memories: no initialization is (except for internal SRAM/FLASH memories: no initialization is
necessary) please refer to Reference manual for connection between peripherals necessary) please refer to Reference manual for connection between peripherals
and DMA requests . and DMA requests.
(#) For a given Stream, program the required configuration through the following parameters: (#) For a given Stream, program the required configuration through the following parameters:
Transfer Direction, Source and Destination data formats, Transfer Direction, Source and Destination data formats,
Circular, Normal or peripheral flow control mode, Stream Priority level, Circular, Normal or peripheral flow control mode, Stream Priority level,
Source and Destination Increment mode, FIFO mode and its Threshold (if needed), Source and Destination Increment mode, FIFO mode and its Threshold (if needed),
Burst mode for Source and/or Destination (if needed) using HAL_DMA_Init() function. Burst mode for Source and/or Destination (if needed) using HAL_DMA_Init() function.
-@- Prior to HAL_DMA_Init() the clock must be enabled for DMA through the following macros:
__HAL_RCC_DMA1_CLK_ENABLE() or __HAL_RCC_DMA2_CLK_ENABLE().
*** Polling mode IO operation *** *** Polling mode IO operation ***
================================= =================================
[..] [..]
(+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source
address and destination address and the Length of data to be transferred address and destination address and the Length of data to be transferred.
(+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this
case a fixed Timeout can be configured by User depending from his application. case a fixed Timeout can be configured by User depending from his application.
(+) Use HAL_DMA_Abort() function to abort the current transfer.
*** Interrupt mode IO operation *** *** Interrupt mode IO operation ***
=================================== ===================================
@ -51,7 +55,7 @@
(#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of error
detection. detection.
(#) Use HAL_DMA_Abort() function to abort the current transfer (#) Use HAL_DMA_Abort_IT() function to abort the current transfer
-@- In Memory-to-Memory transfer mode, Circular mode is not allowed. -@- In Memory-to-Memory transfer mode, Circular mode is not allowed.
@ -72,9 +76,6 @@
(+) __HAL_DMA_ENABLE: Enable the specified DMA Stream. (+) __HAL_DMA_ENABLE: Enable the specified DMA Stream.
(+) __HAL_DMA_DISABLE: Disable the specified DMA Stream. (+) __HAL_DMA_DISABLE: Disable the specified DMA Stream.
(+) __HAL_DMA_GET_FS: Return the current DMA Stream FIFO filled level.
(+) __HAL_DMA_ENABLE_IT: Enable the specified DMA Stream interrupts.
(+) __HAL_DMA_DISABLE_IT: Disable the specified DMA Stream interrupts.
(+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Stream interrupt has occurred or not. (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Stream interrupt has occurred or not.
[..] [..]
@ -335,6 +336,9 @@ HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma)
/* Return error status */ /* Return error status */
return HAL_BUSY; return HAL_BUSY;
} }
/* Check the parameters */
assert_param(IS_DMA_STREAM_ALL_INSTANCE(hdma->Instance));
/* Disable the selected DMA Streamx */ /* Disable the selected DMA Streamx */
__HAL_DMA_DISABLE(hdma); __HAL_DMA_DISABLE(hdma);
@ -613,13 +617,21 @@ HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout) HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef CompleteLevel, uint32_t Timeout)
{ {
HAL_StatusTypeDef status = HAL_OK; HAL_StatusTypeDef status = HAL_OK;
uint32_t temp; uint32_t mask_cpltlevel;
uint32_t tickstart = HAL_GetTick(); uint32_t tickstart = HAL_GetTick();
uint32_t tmpisr; uint32_t tmpisr;
/* calculate DMA base and stream number */ /* calculate DMA base and stream number */
DMA_Base_Registers *regs; DMA_Base_Registers *regs;
if(HAL_DMA_STATE_BUSY != hdma->State)
{
/* No transfer ongoing */
hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER;
__HAL_UNLOCK(hdma);
return HAL_ERROR;
}
/* Polling mode not supported in circular mode and double buffering mode */ /* Polling mode not supported in circular mode and double buffering mode */
if ((hdma->Instance->CR & DMA_SxCR_CIRC) != RESET) if ((hdma->Instance->CR & DMA_SxCR_CIRC) != RESET)
{ {
@ -631,18 +643,18 @@ HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_Level
if(CompleteLevel == HAL_DMA_FULL_TRANSFER) if(CompleteLevel == HAL_DMA_FULL_TRANSFER)
{ {
/* Transfer Complete flag */ /* Transfer Complete flag */
temp = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; mask_cpltlevel = DMA_FLAG_TCIF0_4 << hdma->StreamIndex;
} }
else else
{ {
/* Half Transfer Complete flag */ /* Half Transfer Complete flag */
temp = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; mask_cpltlevel = DMA_FLAG_HTIF0_4 << hdma->StreamIndex;
} }
regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; regs = (DMA_Base_Registers *)hdma->StreamBaseAddress;
tmpisr = regs->ISR; tmpisr = regs->ISR;
while((tmpisr & temp) == RESET ) while(((tmpisr & mask_cpltlevel) == RESET) && ((hdma->ErrorCode & HAL_DMA_ERROR_TE) == RESET))
{ {
/* Check for the Timeout (Not applicable in circular mode)*/ /* Check for the Timeout (Not applicable in circular mode)*/
if(Timeout != HAL_MAX_DELAY) if(Timeout != HAL_MAX_DELAY)
@ -662,6 +674,9 @@ HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_Level
} }
} }
/* Get the ISR register value */
tmpisr = regs->ISR;
if((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) if((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET)
{ {
/* Update error code */ /* Update error code */
@ -707,8 +722,6 @@ HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_Level
return HAL_ERROR; return HAL_ERROR;
} }
status = HAL_ERROR;
} }
/* Get the level transfer complete flag */ /* Get the level transfer complete flag */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dma2d.c * @file stm32f7xx_hal_dma2d.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief DMA2D HAL module driver. * @brief DMA2D HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the DMA2D peripheral: * functionalities of the DMA2D peripheral:
@ -138,6 +138,7 @@
*/ */
#ifdef HAL_DMA2D_MODULE_ENABLED #ifdef HAL_DMA2D_MODULE_ENABLED
#if defined (DMA2D)
/* Private types -------------------------------------------------------------*/ /* Private types -------------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
@ -589,8 +590,8 @@ HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d)
/* Abort the DMA2D transfer */ /* Abort the DMA2D transfer */
/* START bit is reset to make sure not to set it again, in the event the HW clears it /* START bit is reset to make sure not to set it again, in the event the HW clears it
between the register read and the register write by the CPU (writing 0 has no between the register read and the register write by the CPU (writing 0 has no
effect on START bitvalue). */ effect on START bitvalue) */
MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_ABORT|DMA2D_CR_START, DMA2D_CR_ABORT); MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_ABORT|DMA2D_CR_START, DMA2D_CR_ABORT);
/* Get tick */ /* Get tick */
@ -638,7 +639,7 @@ HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d)
/* Suspend the DMA2D transfer */ /* Suspend the DMA2D transfer */
/* START bit is reset to make sure not to set it again, in the event the HW clears it /* START bit is reset to make sure not to set it again, in the event the HW clears it
between the register read and the register write by the CPU (writing 0 has no between the register read and the register write by the CPU (writing 0 has no
effect on START bitvalue). */ effect on START bitvalue). */
MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_SUSP|DMA2D_CR_START, DMA2D_CR_SUSP); MODIFY_REG(hdma2d->Instance->CR, DMA2D_CR_SUSP|DMA2D_CR_START, DMA2D_CR_SUSP);
@ -693,7 +694,7 @@ HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d)
/* Resume the DMA2D transfer */ /* Resume the DMA2D transfer */
/* START bit is reset to make sure not to set it again, in the event the HW clears it /* START bit is reset to make sure not to set it again, in the event the HW clears it
between the register read and the register write by the CPU (writing 0 has no between the register read and the register write by the CPU (writing 0 has no
effect on START bitvalue). */ effect on START bitvalue). */
CLEAR_BIT(hdma2d->Instance->CR, (DMA2D_CR_SUSP|DMA2D_CR_START)); CLEAR_BIT(hdma2d->Instance->CR, (DMA2D_CR_SUSP|DMA2D_CR_START));
@ -1750,6 +1751,7 @@ static void DMA2D_SetConfig(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_
/** /**
* @} * @}
*/ */
#endif /* DMA2D */
#endif /* HAL_DMA2D_MODULE_ENABLED */ #endif /* HAL_DMA2D_MODULE_ENABLED */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dma_ex.c * @file stm32f7xx_hal_dma_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief DMA Extension HAL module driver * @brief DMA Extension HAL module driver
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the DMA Extension peripheral: * functionalities of the DMA Extension peripheral:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_dsi.c * @file stm32f7xx_hal_dsi.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief DSI HAL module driver. * @brief DSI HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the DSI peripheral: * functionalities of the DSI peripheral:
@ -222,7 +222,7 @@ HAL_StatusTypeDef HAL_DSI_Init(DSI_HandleTypeDef *hdsi, DSI_PLLInitTypeDef *PLLI
/* Set the TX escape clock division factor */ /* Set the TX escape clock division factor */
hdsi->Instance->CCR &= ~DSI_CCR_TXECKDIV; hdsi->Instance->CCR &= ~DSI_CCR_TXECKDIV;
hdsi->Instance->CCR = hdsi->Init.TXEscapeCkdiv; hdsi->Instance->CCR |= hdsi->Init.TXEscapeCkdiv;
/* Calculate the bit period in high-speed mode in unit of 0.25 ns (UIX4) */ /* Calculate the bit period in high-speed mode in unit of 0.25 ns (UIX4) */
/* The equation is : UIX4 = IntegerPart( (1000/F_PHY_Mhz) * 4 ) */ /* The equation is : UIX4 = IntegerPart( (1000/F_PHY_Mhz) * 4 ) */
@ -1005,7 +1005,7 @@ HAL_StatusTypeDef HAL_DSI_ConfigHostTimeouts(DSI_HandleTypeDef *hdsi, DSI_HOST_T
/* Set the timeout clock division factor */ /* Set the timeout clock division factor */
hdsi->Instance->CCR &= ~DSI_CCR_TOCKDIV; hdsi->Instance->CCR &= ~DSI_CCR_TOCKDIV;
hdsi->Instance->CCR = ((HostTimeouts->TimeoutCkdiv)<<8); hdsi->Instance->CCR |= ((HostTimeouts->TimeoutCkdiv)<<8);
/* High-speed transmission timeout */ /* High-speed transmission timeout */
hdsi->Instance->TCCR[0] &= ~DSI_TCCR0_HSTX_TOCNT; hdsi->Instance->TCCR[0] &= ~DSI_TCCR0_HSTX_TOCNT;

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_eth.c * @file stm32f7xx_hal_eth.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief ETH HAL module driver. * @brief ETH HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Ethernet (ETH) peripheral: * functionalities of the Ethernet (ETH) peripheral:
@ -108,6 +108,7 @@
*/ */
#ifdef HAL_ETH_MODULE_ENABLED #ifdef HAL_ETH_MODULE_ENABLED
#if defined (ETH)
/* Private typedef -----------------------------------------------------------*/ /* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/ /* Private define ------------------------------------------------------------*/
@ -2031,6 +2032,7 @@ static void ETH_FlushTransmitFIFO(ETH_HandleTypeDef *heth)
* @} * @}
*/ */
#endif /* ETH */
#endif /* HAL_ETH_MODULE_ENABLED */ #endif /* HAL_ETH_MODULE_ENABLED */
/** /**
* @} * @}

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_flash.c * @file stm32f7xx_hal_flash.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief FLASH HAL module driver. * @brief FLASH HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the internal FLASH memory: * functionalities of the internal FLASH memory:
@ -327,6 +327,9 @@ void HAL_FLASH_IRQHandler(void)
/* Check FLASH End of Operation flag */ /* Check FLASH End of Operation flag */
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET) if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
{ {
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
switch (pFlash.ProcedureOnGoing) switch (pFlash.ProcedureOnGoing)
{ {
case FLASH_PROC_SECTERASE : case FLASH_PROC_SECTERASE :
@ -341,9 +344,6 @@ void HAL_FLASH_IRQHandler(void)
/* Indicate user which sector has been erased */ /* Indicate user which sector has been erased */
HAL_FLASH_EndOfOperationCallback(temp); HAL_FLASH_EndOfOperationCallback(temp);
/* Clear pending flags (if any) */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
/* Increment sector number */ /* Increment sector number */
temp = ++pFlash.Sector; temp = ++pFlash.Sector;
FLASH_Erase_Sector(temp, pFlash.VoltageForErase); FLASH_Erase_Sector(temp, pFlash.VoltageForErase);
@ -357,8 +357,6 @@ void HAL_FLASH_IRQHandler(void)
HAL_FLASH_EndOfOperationCallback(temp); HAL_FLASH_EndOfOperationCallback(temp);
/* Sector Erase procedure is completed */ /* Sector Erase procedure is completed */
pFlash.ProcedureOnGoing = FLASH_PROC_NONE; pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
} }
break; break;
} }
@ -370,8 +368,6 @@ void HAL_FLASH_IRQHandler(void)
HAL_FLASH_EndOfOperationCallback(0); HAL_FLASH_EndOfOperationCallback(0);
/* MAss Erase procedure is completed */ /* MAss Erase procedure is completed */
pFlash.ProcedureOnGoing = FLASH_PROC_NONE; pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
break; break;
} }
@ -382,8 +378,6 @@ void HAL_FLASH_IRQHandler(void)
HAL_FLASH_EndOfOperationCallback(pFlash.Address); HAL_FLASH_EndOfOperationCallback(pFlash.Address);
/* Programming procedure is completed */ /* Programming procedure is completed */
pFlash.ProcedureOnGoing = FLASH_PROC_NONE; pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
break; break;
} }
default : default :
@ -392,7 +386,7 @@ void HAL_FLASH_IRQHandler(void)
} }
/* Check FLASH operation error flags */ /* Check FLASH operation error flags */
if(__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_ERSERR )) != RESET) if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
{ {
switch (pFlash.ProcedureOnGoing) switch (pFlash.ProcedureOnGoing)
{ {
@ -423,8 +417,6 @@ void HAL_FLASH_IRQHandler(void)
/* FLASH error interrupt user callback */ /* FLASH error interrupt user callback */
HAL_FLASH_OperationErrorCallback(temp); HAL_FLASH_OperationErrorCallback(temp);
/* Clear FLASH error pending bits */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | FLASH_FLAG_PGPERR | FLASH_FLAG_ERSERR );
/*Stop the procedure ongoing */ /*Stop the procedure ongoing */
pFlash.ProcedureOnGoing = FLASH_PROC_NONE; pFlash.ProcedureOnGoing = FLASH_PROC_NONE;
@ -641,13 +633,19 @@ HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout)
} }
} }
if(__HAL_FLASH_GET_FLAG((FLASH_FLAG_OPERR | FLASH_FLAG_WRPERR | FLASH_FLAG_PGAERR | \ if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_ALL_ERRORS) != RESET)
FLASH_FLAG_PGPERR | FLASH_FLAG_ERSERR )) != RESET)
{ {
/*Save the error code*/ /*Save the error code*/
FLASH_SetErrorCode(); FLASH_SetErrorCode();
return HAL_ERROR; return HAL_ERROR;
} }
/* Check FLASH End of Operation flag */
if (__HAL_FLASH_GET_FLAG(FLASH_FLAG_EOP) != RESET)
{
/* Clear FLASH End of Operation pending bit */
__HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
}
/* If there is an error flag set */ /* If there is an error flag set */
return HAL_OK; return HAL_OK;
@ -777,7 +775,12 @@ static void FLASH_Program_Byte(uint32_t Address, uint8_t Data)
* @retval None * @retval None
*/ */
static void FLASH_SetErrorCode(void) static void FLASH_SetErrorCode(void)
{ {
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET)
{
pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
}
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET) if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_WRPERR) != RESET)
{ {
pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP; pFlash.ErrorCode |= HAL_FLASH_ERROR_WRP;
@ -798,10 +801,8 @@ static void FLASH_SetErrorCode(void)
pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS; pFlash.ErrorCode |= HAL_FLASH_ERROR_ERS;
} }
if(__HAL_FLASH_GET_FLAG(FLASH_FLAG_OPERR) != RESET) /* Clear error programming flags */
{ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_ALL_ERRORS);
pFlash.ErrorCode |= HAL_FLASH_ERROR_OPERATION;
}
} }
/** /**

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_flash_ex.c * @file stm32f7xx_hal_flash_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief Extended FLASH HAL module driver. * @brief Extended FLASH HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the FLASH extension peripheral: * functionalities of the FLASH extension peripheral:
@ -90,8 +90,8 @@
/** @addtogroup FLASHEx_Private_Constants /** @addtogroup FLASHEx_Private_Constants
* @{ * @{
*/ */
#define SECTOR_MASK ((uint32_t)0xFFFFFF07) #define SECTOR_MASK 0xFFFFFF07U
#define FLASH_TIMEOUT_VALUE ((uint32_t)50000)/* 50 s */ #define FLASH_TIMEOUT_VALUE 50000U/* 50 s */
/** /**
* @} * @}
*/ */
@ -774,7 +774,7 @@ static HAL_StatusTypeDef FLASH_OB_UserConfig(uint32_t Wwdg, uint32_t Iwdg, uint3
static uint32_t FLASH_OB_GetUser(void) static uint32_t FLASH_OB_GetUser(void)
{ {
/* Return the User Option Byte */ /* Return the User Option Byte */
return ((uint32_t)(FLASH->OPTCR & 0xC00000F0)); return ((uint32_t)(FLASH->OPTCR & 0xC00000F0U));
} }
#endif /* FLASH_OPTCR_nDBANK */ #endif /* FLASH_OPTCR_nDBANK */

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_gpio.c * @file stm32f7xx_hal_gpio.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief GPIO HAL module driver. * @brief GPIO HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the General Purpose Input/Output (GPIO) peripheral: * functionalities of the General Purpose Input/Output (GPIO) peripheral:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_hash.c * @file stm32f7xx_hal_hash.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief HASH HAL module driver. * @brief HASH HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the HASH peripheral: * functionalities of the HASH peripheral:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_hash_ex.c * @file stm32f7xx_hal_hash_ex.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief HASH HAL Extension module driver. * @brief HASH HAL Extension module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of HASH peripheral: * functionalities of HASH peripheral:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_hcd.c * @file stm32f7xx_hal_hcd.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief HCD HAL module driver. * @brief HCD HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the USB Peripheral Controller: * functionalities of the USB Peripheral Controller:

View File

@ -2,8 +2,8 @@
****************************************************************************** ******************************************************************************
* @file stm32f7xx_hal_i2c.c * @file stm32f7xx_hal_i2c.c
* @author MCD Application Team * @author MCD Application Team
* @version V1.1.0 * @version V1.1.2
* @date 22-April-2016 * @date 23-September-2016
* @brief I2C HAL module driver. * @brief I2C HAL module driver.
* This file provides firmware functions to manage the following * This file provides firmware functions to manage the following
* functionalities of the Inter Integrated Circuit (I2C) peripheral: * functionalities of the Inter Integrated Circuit (I2C) peripheral:
@ -98,6 +98,9 @@
(++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfaces in no sequential mode (++) I2C_FIRST_AND_LAST_FRAME: No sequential usage, functionnal is same as associated interfaces in no sequential mode
(++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address (++) I2C_FIRST_FRAME: Sequential usage, this option allow to manage a sequence with start condition, address
and data to transfer without a final stop condition and data to transfer without a final stop condition
(++) I2C_FIRST_AND_NEXT_FRAME: Sequential usage (Master only), this option allow to manage a sequence with start condition, address
and data to transfer without a final stop condition, an then permit a call the same master sequential interface
several times (like HAL_I2C_Master_Sequential_Transmit_IT() then HAL_I2C_Master_Sequential_Transmit_IT())
(++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address (++) I2C_NEXT_FRAME: Sequential usage, this option allow to manage a sequence with a restart condition, address
and with new data to transfer if the direction change or manage only the new data to transfer and with new data to transfer if the direction change or manage only the new data to transfer
if no direction change and without a final stop condition in both cases if no direction change and without a final stop condition in both cases
@ -284,15 +287,17 @@
#define I2C_STATE_MEM_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MODE_MEM)) /*!< Memory Busy TX, combinaison of State LSB and Mode enum */ #define I2C_STATE_MEM_BUSY_TX ((uint32_t)((HAL_I2C_STATE_BUSY_TX & I2C_STATE_MSK) | HAL_I2C_MODE_MEM)) /*!< Memory Busy TX, combinaison of State LSB and Mode enum */
#define I2C_STATE_MEM_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MODE_MEM)) /*!< Memory Busy RX, combinaison of State LSB and Mode enum */ #define I2C_STATE_MEM_BUSY_RX ((uint32_t)((HAL_I2C_STATE_BUSY_RX & I2C_STATE_MSK) | HAL_I2C_MODE_MEM)) /*!< Memory Busy RX, combinaison of State LSB and Mode enum */
/* Private define to centralize the enable/disable of Interrupts */ /* Private define to centralize the enable/disable of Interrupts */
#define I2C_XFER_TX_IT ((uint32_t)0x00000001) #define I2C_XFER_TX_IT ((uint32_t)0x00000001U)
#define I2C_XFER_RX_IT ((uint32_t)0x00000002) #define I2C_XFER_RX_IT ((uint32_t)0x00000002U)
#define I2C_XFER_LISTEN_IT ((uint32_t)0x00000004) #define I2C_XFER_LISTEN_IT ((uint32_t)0x00000004U)
#define I2C_XFER_ERROR_IT ((uint32_t)0x00000011) #define I2C_XFER_ERROR_IT ((uint32_t)0x00000011U)
#define I2C_XFER_CPLT_IT ((uint32_t)0x00000012) #define I2C_XFER_CPLT_IT ((uint32_t)0x00000012U)
#define I2C_XFER_RELOAD_IT ((uint32_t)0x00000012) #define I2C_XFER_RELOAD_IT ((uint32_t)0x00000012U)
/* Private define Sequential Transfer Options default/reset value */
#define I2C_NO_OPTION_FRAME ((uint32_t)0xFFFF0000U)
/** /**
* @} * @}
*/ */
@ -400,13 +405,13 @@ static void I2C_TransferConfig(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, ui
* @retval HAL status * @retval HAL status
*/ */
HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c) HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
{ {
/* Check the I2C handle allocation */ /* Check the I2C handle allocation */
if(hi2c == NULL) if(hi2c == NULL)
{ {
return HAL_ERROR; return HAL_ERROR;
} }
/* Check the parameters */ /* Check the parameters */
assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance)); assert_param(IS_I2C_ALL_INSTANCE(hi2c->Instance));
assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1)); assert_param(IS_I2C_OWN_ADDRESS1(hi2c->Init.OwnAddress1));
@ -421,35 +426,34 @@ HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
{ {
/* Allocate lock resource and initialize it */ /* Allocate lock resource and initialize it */
hi2c->Lock = HAL_UNLOCKED; hi2c->Lock = HAL_UNLOCKED;
/* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */ /* Init the low level hardware : GPIO, CLOCK, CORTEX...etc */
HAL_I2C_MspInit(hi2c); HAL_I2C_MspInit(hi2c);
} }
hi2c->State = HAL_I2C_STATE_BUSY; hi2c->State = HAL_I2C_STATE_BUSY;
/* Disable the selected I2C peripheral */ /* Disable the selected I2C peripheral */
__HAL_I2C_DISABLE(hi2c); __HAL_I2C_DISABLE(hi2c);
/*---------------------------- I2Cx TIMINGR Configuration ------------------*/ /*---------------------------- I2Cx TIMINGR Configuration ------------------*/
/* Configure I2Cx: Frequency range */ /* Configure I2Cx: Frequency range */
hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK; hi2c->Instance->TIMINGR = hi2c->Init.Timing & TIMING_CLEAR_MASK;
/*---------------------------- I2Cx OAR1 Configuration ---------------------*/ /*---------------------------- I2Cx OAR1 Configuration ---------------------*/
/* Configure I2Cx: Own Address1 and ack own address1 mode */ /* Disable Own Address1 before set the Own Address1 configuration */
hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN; hi2c->Instance->OAR1 &= ~I2C_OAR1_OA1EN;
if(hi2c->Init.OwnAddress1 != 0)
/* Configure I2Cx: Own Address1 and ack own address1 mode */
if(hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT)
{ {
if(hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_7BIT) hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
{
hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | hi2c->Init.OwnAddress1);
}
else /* I2C_ADDRESSINGMODE_10BIT */
{
hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
}
} }
else /* I2C_ADDRESSINGMODE_10BIT */
{
hi2c->Instance->OAR1 = (I2C_OAR1_OA1EN | I2C_OAR1_OA1MODE | hi2c->Init.OwnAddress1);
}
/*---------------------------- I2Cx CR2 Configuration ----------------------*/ /*---------------------------- I2Cx CR2 Configuration ----------------------*/
/* Configure I2Cx: Addressing Master mode */ /* Configure I2Cx: Addressing Master mode */
if(hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT) if(hi2c->Init.AddressingMode == I2C_ADDRESSINGMODE_10BIT)
@ -458,15 +462,18 @@ HAL_StatusTypeDef HAL_I2C_Init(I2C_HandleTypeDef *hi2c)
} }
/* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */ /* Enable the AUTOEND by default, and enable NACK (should be disable only during Slave process */
hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK); hi2c->Instance->CR2 |= (I2C_CR2_AUTOEND | I2C_CR2_NACK);
/*---------------------------- I2Cx OAR2 Configuration ---------------------*/ /*---------------------------- I2Cx OAR2 Configuration ---------------------*/
/* Disable Own Address2 before set the Own Address2 configuration */
hi2c->Instance->OAR2 &= ~I2C_DUALADDRESS_ENABLE;
/* Configure I2Cx: Dual mode and Own Address2 */ /* Configure I2Cx: Dual mode and Own Address2 */
hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddress2Masks << 8)); hi2c->Instance->OAR2 = (hi2c->Init.DualAddressMode | hi2c->Init.OwnAddress2 | (hi2c->Init.OwnAddress2Masks << 8));
/*---------------------------- I2Cx CR1 Configuration ----------------------*/ /*---------------------------- I2Cx CR1 Configuration ----------------------*/
/* Configure I2Cx: Generalcall and NoStretch mode */ /* Configure I2Cx: Generalcall and NoStretch mode */
hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode); hi2c->Instance->CR1 = (hi2c->Init.GeneralCallMode | hi2c->Init.NoStretchMode);
/* Enable the selected I2C peripheral */ /* Enable the selected I2C peripheral */
__HAL_I2C_ENABLE(hi2c); __HAL_I2C_ENABLE(hi2c);
@ -613,7 +620,8 @@ __weak void HAL_I2C_MspDeInit(I2C_HandleTypeDef *hi2c)
* @brief Transmits in master mode an amount of data in blocking mode. * @brief Transmits in master mode an amount of data in blocking mode.
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @param Timeout: Timeout duration * @param Timeout: Timeout duration
@ -736,7 +744,8 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevA
* @brief Receives in master mode an amount of data in blocking mode. * @brief Receives in master mode an amount of data in blocking mode.
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @param Timeout: Timeout duration * @param Timeout: Timeout duration
@ -1131,7 +1140,8 @@ HAL_StatusTypeDef HAL_I2C_Slave_Receive(I2C_HandleTypeDef *hi2c, uint8_t *pData,
* @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt * @brief Transmit in master mode an amount of data in non-blocking mode with Interrupt
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @retval HAL status * @retval HAL status
@ -1199,7 +1209,8 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit_IT(I2C_HandleTypeDef *hi2c, uint16_t D
* @brief Receive in master mode an amount of data in non-blocking mode with Interrupt * @brief Receive in master mode an amount of data in non-blocking mode with Interrupt
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @retval HAL status * @retval HAL status
@ -1365,7 +1376,8 @@ HAL_StatusTypeDef HAL_I2C_Slave_Receive_IT(I2C_HandleTypeDef *hi2c, uint8_t *pDa
* @brief Transmit in master mode an amount of data in non-blocking mode with DMA * @brief Transmit in master mode an amount of data in non-blocking mode with DMA
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @retval HAL status * @retval HAL status
@ -1449,7 +1461,8 @@ HAL_StatusTypeDef HAL_I2C_Master_Transmit_DMA(I2C_HandleTypeDef *hi2c, uint16_t
* @brief Receive in master mode an amount of data in non-blocking mode with DMA * @brief Receive in master mode an amount of data in non-blocking mode with DMA
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @retval HAL status * @retval HAL status
@ -2510,7 +2523,8 @@ HAL_StatusTypeDef HAL_I2C_IsDeviceReady(I2C_HandleTypeDef *hi2c, uint16_t DevAdd
* @note This interface allow to manage repeated start condition when a direction change during transfer * @note This interface allow to manage repeated start condition when a direction change during transfer
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @param XferOptions: Options of Transfer, value of @ref I2C_XFEROPTIONS * @param XferOptions: Options of Transfer, value of @ref I2C_XFEROPTIONS
@ -2549,20 +2563,20 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c,
{ {
hi2c->XferSize = hi2c->XferCount; hi2c->XferSize = hi2c->XferCount;
xfermode = hi2c->XferOptions; xfermode = hi2c->XferOptions;
}
/* If transfer direction not change, do not generate Restart Condition */
/* Mean Previous state is same as current state */ /* If transfer direction not change, do not generate Restart Condition */
if(hi2c->PreviousState == I2C_STATE_SLAVE_BUSY_TX) /* Mean Previous state is same as current state */
{ if(hi2c->PreviousState == I2C_STATE_MASTER_BUSY_TX)
xferrequest = I2C_NO_STARTSTOP; {
} xferrequest = I2C_NO_STARTSTOP;
} }
/* Send Slave Address and set NBYTES to write */ /* Send Slave Address and set NBYTES to write */
I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, xferrequest); I2C_TransferConfig(hi2c, DevAddress, hi2c->XferSize, xfermode, xferrequest);
/* Process Unlocked */ /* Process Unlocked */
__HAL_UNLOCK(hi2c); __HAL_UNLOCK(hi2c);
/* Note : The I2C interrupts must be enabled after unlocking current process /* Note : The I2C interrupts must be enabled after unlocking current process
to avoid the risk of I2C interrupt handle execution before current to avoid the risk of I2C interrupt handle execution before current
@ -2582,7 +2596,8 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Transmit_IT(I2C_HandleTypeDef *hi2c,
* @note This interface allow to manage repeated start condition when a direction change during transfer * @note This interface allow to manage repeated start condition when a direction change during transfer
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress: Target device address. The device 7 bits address value
* in datasheet must be shift at right before call interface
* @param pData: Pointer to data buffer * @param pData: Pointer to data buffer
* @param Size: Amount of data to be sent * @param Size: Amount of data to be sent
* @param XferOptions: Options of Transfer, value of @ref I2C_XFEROPTIONS * @param XferOptions: Options of Transfer, value of @ref I2C_XFEROPTIONS
@ -2621,13 +2636,13 @@ HAL_StatusTypeDef HAL_I2C_Master_Sequential_Receive_IT(I2C_HandleTypeDef *hi2c,
{ {
hi2c->XferSize = hi2c->XferCount; hi2c->XferSize = hi2c->XferCount;
xfermode = hi2c->XferOptions; xfermode = hi2c->XferOptions;
}
/* If transfer direction not change, do not generate Restart Condition */ /* If transfer direction not change, do not generate Restart Condition */
/* Mean Previous state is same as current state */ /* Mean Previous state is same as current state */
if(hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX) if(hi2c->PreviousState == I2C_STATE_MASTER_BUSY_RX)
{ {
xferrequest = I2C_NO_STARTSTOP; xferrequest = I2C_NO_STARTSTOP;
}
} }
/* Send Slave Address and set NBYTES to read */ /* Send Slave Address and set NBYTES to read */
@ -2840,7 +2855,8 @@ HAL_StatusTypeDef HAL_I2C_DisableListen_IT(I2C_HandleTypeDef *hi2c)
* @brief Abort a master I2C IT or DMA process communication with Interrupt. * @brief Abort a master I2C IT or DMA process communication with Interrupt.
* @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains * @param hi2c: Pointer to a I2C_HandleTypeDef structure that contains
* the configuration information for the specified I2C. * the configuration information for the specified I2C.
* @param DevAddress: Target device address * @param DevAddress Target device address: The device 7 bits address value
* in datasheet must be shift at right before call interface
* @retval HAL status * @retval HAL status
*/ */
HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress) HAL_StatusTypeDef HAL_I2C_Master_Abort_IT(I2C_HandleTypeDef *hi2c, uint16_t DevAddress)

Some files were not shown because too many files have changed in this diff Show More