2cfa26ed82a4a62a345f13cfc4a0ea9fd85678d2
[mTask.git] / int / com / lib / STM32F7xx_HAL_Driver / Inc / stm32f7xx_hal_i2c_ex.h
1 /**
2 ******************************************************************************
3 * @file stm32f7xx_hal_i2c_ex.h
4 * @author MCD Application Team
5 * @version V1.1.0
6 * @date 22-April-2016
7 * @brief Header file of I2C HAL Extension module.
8 ******************************************************************************
9 * @attention
10 *
11 * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
12 *
13 * Redistribution and use in source and binary forms, with or without modification,
14 * are permitted provided that the following conditions are met:
15 * 1. Redistributions of source code must retain the above copyright notice,
16 * this list of conditions and the following disclaimer.
17 * 2. Redistributions in binary form must reproduce the above copyright notice,
18 * this list of conditions and the following disclaimer in the documentation
19 * and/or other materials provided with the distribution.
20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
21 * may be used to endorse or promote products derived from this software
22 * without specific prior written permission.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 *
35 ******************************************************************************
36 */
37
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F7xx_HAL_I2C_EX_H
40 #define __STM32F7xx_HAL_I2C_EX_H
41
42 #ifdef __cplusplus
43 extern "C" {
44 #endif
45
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f7xx_hal_def.h"
48
49 /** @addtogroup STM32F7xx_HAL_Driver
50 * @{
51 */
52
53 /** @addtogroup I2CEx
54 * @{
55 */
56
57 /* Exported types ------------------------------------------------------------*/
58 /* Exported constants --------------------------------------------------------*/
59
60 /** @defgroup I2CEx_Exported_Constants I2CEx Exported Constants
61 * @{
62 */
63
64 /** @defgroup I2CEx_Analog_Filter I2CEx Analog Filter
65 * @{
66 */
67 #define I2C_ANALOGFILTER_ENABLE ((uint32_t)0x00000000U)
68 #define I2C_ANALOGFILTER_DISABLE I2C_CR1_ANFOFF
69 /**
70 * @}
71 */
72
73 /** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus
74 * @{
75 */
76 #if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
77
78 #define I2C_FASTMODEPLUS_PB6 SYSCFG_PMC_I2C_PB6_FMP
79 #define I2C_FASTMODEPLUS_PB7 SYSCFG_PMC_I2C_PB7_FMP
80 #define I2C_FASTMODEPLUS_PB8 SYSCFG_PMC_I2C_PB8_FMP
81 #define I2C_FASTMODEPLUS_PB9 SYSCFG_PMC_I2C_PB9_FMP
82
83 #define I2C_FASTMODEPLUS_I2C1 SYSCFG_PMC_I2C1_FMP
84 #define I2C_FASTMODEPLUS_I2C2 SYSCFG_PMC_I2C2_FMP
85 #define I2C_FASTMODEPLUS_I2C3 SYSCFG_PMC_I2C3_FMP
86 #define I2C_FASTMODEPLUS_I2C4 SYSCFG_PMC_I2C4_FMP
87
88 #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
89 /**
90 * @}
91 */
92
93 /**
94 * @}
95 */
96
97 /* Exported macro ------------------------------------------------------------*/
98 /* Exported functions --------------------------------------------------------*/
99
100 /* Peripheral Control methods ************************************************/
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 #if defined (STM32F765xx) || defined (STM32F767xx) || defined (STM32F769xx) || defined (STM32F777xx) || defined (STM32F779xx)
104 void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
105 void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
106 #endif /* STM32F767xx || STM32F769xx || STM32F777xx || STM32F779xx */
107
108 /* Private constants ---------------------------------------------------------*/
109 /** @defgroup I2C_Private_Constants I2C Private Constants
110 * @{
111 */
112
113 /**
114 * @}
115 */
116
117 /* Private macros ------------------------------------------------------------*/
118 /** @defgroup I2C_Private_Macro I2C Private Macros
119 * @{
120 */
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 #if defined(SYSCFG_PMC_I2C1_FMP) && defined(SYSCFG_PMC_I2C2_FMP) && defined(SYSCFG_PMC_I2C3_FMP) && defined(SYSCFG_PMC_I2C4_FMP)
127 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__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 #elif defined(SYSCFG_PMC_I2C1_FMP) && defined(SYSCFG_PMC_I2C2_FMP) && defined(SYSCFG_PMC_I2C3_FMP)
136 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
137 (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
138 (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
139 (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
140 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \
141 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2) || \
142 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C3) == I2C_FASTMODEPLUS_I2C3))
143 #elif defined(SYSCFG_PMC_I2C1_FMP) && defined(SYSCFG_PMC_I2C2_FMP)
144 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
145 (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
146 (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
147 (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
148 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \
149 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2))
150 #elif defined(SYSCFG_PMC_I2C1_FMP)
151 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
152 (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
153 (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
154 (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
155 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1))
156 #endif /* SYSCFG_PMC_I2C1_FMP && SYSCFG_PMC_I2C2_FMP && SYSCFG_PMC_I2C3_FMP && SYSCFG_PMC_I2C4_FMP */
157 /**
158 * @}
159 */
160 /**
161 * @}
162 */
163
164 /* Private Functions ---------------------------------------------------------*/
165 /** @defgroup I2C_Private_Functions I2C Private Functions
166 * @{
167 */
168 /* Private functions are defined in stm32f7xx_hal_i2c_ex.c file */
169 /**
170 * @}
171 */
172
173 /**
174 * @}
175 */
176
177 /**
178 * @}
179 */
180
181 #ifdef __cplusplus
182 }
183 #endif
184
185 #endif /* __STM32F7xx_HAL_I2C_EX_H */
186
187
188 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/