| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 | /**  ******************************************************************************  * @file    stm32f0xx_hal_i2c_ex.h  * @author  MCD Application Team  * @brief   Header file of I2C HAL Extended module.  ******************************************************************************  * @attention  *  * Copyright (c) 2016 STMicroelectronics.  * All rights reserved.  *  * This software is licensed under terms that can be found in the LICENSE file  * in the root directory of this software component.  * If no LICENSE file comes with this software, it is provided AS-IS.  *  ******************************************************************************  *//* Define to prevent recursive inclusion -------------------------------------*/#ifndef STM32F0xx_HAL_I2C_EX_H#define STM32F0xx_HAL_I2C_EX_H#ifdef __cplusplusextern "C" {#endif/* Includes ------------------------------------------------------------------*/#include "stm32f0xx_hal_def.h"/** @addtogroup STM32F0xx_HAL_Driver  * @{  *//** @addtogroup I2CEx  * @{  *//* Exported types ------------------------------------------------------------*//* Exported constants --------------------------------------------------------*//** @defgroup I2CEx_Exported_Constants I2C Extended Exported Constants  * @{  *//** @defgroup I2CEx_Analog_Filter I2C Extended Analog Filter  * @{  */#define I2C_ANALOGFILTER_ENABLE         0x00000000U#define I2C_ANALOGFILTER_DISABLE        I2C_CR1_ANFOFF/**  * @}  *//** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus  * @{  */#define I2C_FMP_NOT_SUPPORTED           0xAAAA0000U                                     /*!< Fast Mode Plus not supported       */#if defined(SYSCFG_CFGR1_I2C_FMP_PA9)#define I2C_FASTMODEPLUS_PA9            SYSCFG_CFGR1_I2C_FMP_PA9                        /*!< Enable Fast Mode Plus on PA9       */#define I2C_FASTMODEPLUS_PA10           SYSCFG_CFGR1_I2C_FMP_PA10                       /*!< Enable Fast Mode Plus on PA10      */#else#define I2C_FASTMODEPLUS_PA9            (uint32_t)(0x00000001U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus PA9 not supported   */#define I2C_FASTMODEPLUS_PA10           (uint32_t)(0x00000002U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus PA10 not supported  */#endif /* SYSCFG_CFGR1_I2C_FMP_PA9 */#define I2C_FASTMODEPLUS_PB6            SYSCFG_CFGR1_I2C_FMP_PB6                        /*!< Enable Fast Mode Plus on PB6       */#define I2C_FASTMODEPLUS_PB7            SYSCFG_CFGR1_I2C_FMP_PB7                        /*!< Enable Fast Mode Plus on PB7       */#define I2C_FASTMODEPLUS_PB8            SYSCFG_CFGR1_I2C_FMP_PB8                        /*!< Enable Fast Mode Plus on PB8       */#define I2C_FASTMODEPLUS_PB9            SYSCFG_CFGR1_I2C_FMP_PB9                        /*!< Enable Fast Mode Plus on PB9       */#if defined(SYSCFG_CFGR1_I2C_FMP_I2C1)#define I2C_FASTMODEPLUS_I2C1           SYSCFG_CFGR1_I2C_FMP_I2C1                       /*!< Enable Fast Mode Plus on I2C1 pins */#else#define I2C_FASTMODEPLUS_I2C1           (uint32_t)(0x00000100U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C1 not supported  */#endif /* SYSCFG_CFGR1_I2C_FMP_I2C1 */#if defined(SYSCFG_CFGR1_I2C_FMP_I2C2)#define I2C_FASTMODEPLUS_I2C2           SYSCFG_CFGR1_I2C_FMP_I2C2                       /*!< Enable Fast Mode Plus on I2C2 pins */#else#define I2C_FASTMODEPLUS_I2C2           (uint32_t)(0x00000200U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C2 not supported  */#endif /* SYSCFG_CFGR1_I2C_FMP_I2C2 *//**  * @}  *//**  * @}  *//* Exported macro ------------------------------------------------------------*//* Exported functions --------------------------------------------------------*//** @addtogroup I2CEx_Exported_Functions I2C Extended Exported Functions  * @{  *//** @addtogroup I2CEx_Exported_Functions_Group1 Extended features functions  * @brief    Extended features functions  * @{  *//** @addtogroup I2CEx_Exported_Functions_Group1 Filter Mode Functions  * @{  */HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c,                                               uint32_t AnalogFilter);HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c,                                                uint32_t DigitalFilter);/**  * @}  */#if defined(I2C_CR1_WUPEN)/** @addtogroup I2CEx_Exported_Functions_Group2 WakeUp Mode Functions  * @{  */HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c);HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c);/**  * @}  */#endif /* I2C_CR1_WUPEN *//** @addtogroup I2CEx_Exported_Functions_Group3 Fast Mode Plus Functions  * @{  */void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);/**  * @}  *//* Private constants ---------------------------------------------------------*//** @defgroup I2CEx_Private_Constants I2C Extended Private Constants  * @{  *//**  * @}  *//* Private macros ------------------------------------------------------------*//** @defgroup I2CEx_Private_Macro I2C Extended Private Macros  * @{  */#define IS_I2C_ANALOG_FILTER(FILTER)    (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \                                         ((FILTER) == I2C_ANALOGFILTER_DISABLE))#define IS_I2C_DIGITAL_FILTER(FILTER)   ((FILTER) <= 0x0000000FU)#define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FMP_NOT_SUPPORTED) != I2C_FMP_NOT_SUPPORTED) && \                                         ((((__CONFIG__) & (I2C_FASTMODEPLUS_PA9))  == I2C_FASTMODEPLUS_PA9)     || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_PA10)) == I2C_FASTMODEPLUS_PA10)    || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_PB6))  == I2C_FASTMODEPLUS_PB6)     || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_PB7))  == I2C_FASTMODEPLUS_PB7)     || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_PB8))  == I2C_FASTMODEPLUS_PB8)     || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_PB9))  == I2C_FASTMODEPLUS_PB9)     || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C1)) == I2C_FASTMODEPLUS_I2C1)    || \                                          (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C2)) == I2C_FASTMODEPLUS_I2C2)))/**  * @}  *//* Private Functions ---------------------------------------------------------*//** @defgroup I2CEx_Private_Functions I2C Extended Private Functions  * @{  *//* Private functions are defined in stm32f0xx_hal_i2c_ex.c file *//**  * @}  *//**  * @}  *//**  * @}  *//**  * @}  *//**  * @}  */#ifdef __cplusplus}#endif#endif /* STM32F0xx_HAL_I2C_EX_H */
 |