STM32L4xx_HAL_Driver  1.14.0
stm32l4xx_hal_i2c_ex.h
Go to the documentation of this file.
1 
20 /* Define to prevent recursive inclusion -------------------------------------*/
21 #ifndef STM32L4xx_HAL_I2C_EX_H
22 #define STM32L4xx_HAL_I2C_EX_H
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
28 /* Includes ------------------------------------------------------------------*/
29 #include "stm32l4xx_hal_def.h"
30 
39 /* Exported types ------------------------------------------------------------*/
40 /* Exported constants --------------------------------------------------------*/
41 
49 #define I2C_ANALOGFILTER_ENABLE 0x00000000U
50 #define I2C_ANALOGFILTER_DISABLE I2C_CR1_ANFOFF
51 
58 #define I2C_FMP_NOT_SUPPORTED 0xAAAA0000U
59 #define I2C_FASTMODEPLUS_PB6 SYSCFG_CFGR1_I2C_PB6_FMP
60 #define I2C_FASTMODEPLUS_PB7 SYSCFG_CFGR1_I2C_PB7_FMP
61 #if defined(SYSCFG_CFGR1_I2C_PB8_FMP)
62 #define I2C_FASTMODEPLUS_PB8 SYSCFG_CFGR1_I2C_PB8_FMP
63 #define I2C_FASTMODEPLUS_PB9 SYSCFG_CFGR1_I2C_PB9_FMP
64 #else
65 #define I2C_FASTMODEPLUS_PB8 (uint32_t)(0x00000010U | I2C_FMP_NOT_SUPPORTED)
66 #define I2C_FASTMODEPLUS_PB9 (uint32_t)(0x00000012U | I2C_FMP_NOT_SUPPORTED)
67 #endif
68 #define I2C_FASTMODEPLUS_I2C1 SYSCFG_CFGR1_I2C1_FMP
69 #if defined(SYSCFG_CFGR1_I2C2_FMP)
70 #define I2C_FASTMODEPLUS_I2C2 SYSCFG_CFGR1_I2C2_FMP
71 #else
72 #define I2C_FASTMODEPLUS_I2C2 (uint32_t)(0x00000200U | I2C_FMP_NOT_SUPPORTED)
73 #endif
74 #define I2C_FASTMODEPLUS_I2C3 SYSCFG_CFGR1_I2C3_FMP
75 #if defined(SYSCFG_CFGR1_I2C4_FMP)
76 #define I2C_FASTMODEPLUS_I2C4 SYSCFG_CFGR1_I2C4_FMP
77 #else
78 #define I2C_FASTMODEPLUS_I2C4 (uint32_t)(0x00000800U | I2C_FMP_NOT_SUPPORTED)
79 #endif
80 
88 /* Exported macro ------------------------------------------------------------*/
89 /* Exported functions --------------------------------------------------------*/
90 
100 /* Peripheral Control functions ************************************************/
101 HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter);
102 HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter);
103 HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c);
104 HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c);
105 void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
106 void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
107 
108 /* Private constants ---------------------------------------------------------*/
117 /* Private macros ------------------------------------------------------------*/
121 #define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \
122  ((FILTER) == I2C_ANALOGFILTER_DISABLE))
123 
124 #define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU)
125 
126 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FMP_NOT_SUPPORTED) != I2C_FMP_NOT_SUPPORTED) && \
127  ((((__CONFIG__) & (I2C_FASTMODEPLUS_PB6)) == I2C_FASTMODEPLUS_PB6) || \
128  (((__CONFIG__) & (I2C_FASTMODEPLUS_PB7)) == I2C_FASTMODEPLUS_PB7) || \
129  (((__CONFIG__) & (I2C_FASTMODEPLUS_PB8)) == I2C_FASTMODEPLUS_PB8) || \
130  (((__CONFIG__) & (I2C_FASTMODEPLUS_PB9)) == I2C_FASTMODEPLUS_PB9) || \
131  (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C1)) == I2C_FASTMODEPLUS_I2C1) || \
132  (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C2)) == I2C_FASTMODEPLUS_I2C2) || \
133  (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C3)) == I2C_FASTMODEPLUS_I2C3) || \
134  (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C4)) == I2C_FASTMODEPLUS_I2C4)))
135 
136 
137 
142 /* Private Functions ---------------------------------------------------------*/
146 /* Private functions are defined in stm32l4xx_hal_i2c_ex.c file */
167 #ifdef __cplusplus
168 }
169 #endif
170 
171 #endif /* STM32L4xx_HAL_I2C_EX_H */
172 
173 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter)
Configure I2C Analog noise filter.
void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus)
Enable the I2C fast mode plus driving capability.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c)
Disable I2C wakeup from Stop mode(s).
void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus)
Disable the I2C fast mode plus driving capability.
HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c)
Enable I2C wakeup from Stop mode(s).
HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter)
Configure I2C Digital noise filter.