]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_M7_M4_AMP_STM32H745I_Discovery_IAR/ST_code/STM32H7xx_HAL_Driver/Inc/stm32h7xx_hal_i2c_ex.h
Add M7/M4 AMP demo.
[freertos] / FreeRTOS / Demo / CORTEX_M7_M4_AMP_STM32H745I_Discovery_IAR / ST_code / STM32H7xx_HAL_Driver / Inc / stm32h7xx_hal_i2c_ex.h
1 /**\r
2   ******************************************************************************\r
3   * @file    stm32h7xx_hal_i2c_ex.h\r
4   * @author  MCD Application Team\r
5   * @brief   Header file of I2C HAL Extended module.\r
6   ******************************************************************************\r
7   * @attention\r
8   *\r
9   * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.\r
10   * All rights reserved.</center></h2>\r
11   *\r
12   * This software component is licensed by ST under BSD 3-Clause license,\r
13   * the "License"; You may not use this file except in compliance with the\r
14   * License. You may obtain a copy of the License at:\r
15   *                        opensource.org/licenses/BSD-3-Clause\r
16   *\r
17   ******************************************************************************\r
18   */\r
19 \r
20 /* Define to prevent recursive inclusion -------------------------------------*/\r
21 #ifndef STM32H7xx_HAL_I2C_EX_H\r
22 #define STM32H7xx_HAL_I2C_EX_H\r
23 \r
24 #ifdef __cplusplus\r
25 extern "C" {\r
26 #endif\r
27 \r
28 /* Includes ------------------------------------------------------------------*/\r
29 #include "stm32h7xx_hal_def.h"\r
30 \r
31 /** @addtogroup STM32H7xx_HAL_Driver\r
32   * @{\r
33   */\r
34 \r
35 /** @addtogroup I2CEx\r
36   * @{\r
37   */\r
38 \r
39 /* Exported types ------------------------------------------------------------*/\r
40 /* Exported constants --------------------------------------------------------*/\r
41 \r
42 /** @defgroup I2CEx_Exported_Constants I2C Extended Exported Constants\r
43   * @{\r
44   */\r
45 \r
46 /** @defgroup I2CEx_Analog_Filter I2C Extended Analog Filter\r
47   * @{\r
48   */\r
49 #define I2C_ANALOGFILTER_ENABLE         0x00000000U\r
50 #define I2C_ANALOGFILTER_DISABLE        I2C_CR1_ANFOFF\r
51 /**\r
52   * @}\r
53   */\r
54 \r
55 /** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus\r
56   * @{\r
57   */\r
58 #define I2C_FASTMODEPLUS_PB6            SYSCFG_PMCR_I2C_PB6_FMP                        /*!< Enable Fast Mode Plus on PB6       */\r
59 #define I2C_FASTMODEPLUS_PB7            SYSCFG_PMCR_I2C_PB7_FMP                        /*!< Enable Fast Mode Plus on PB7       */\r
60 #define I2C_FASTMODEPLUS_PB8            SYSCFG_PMCR_I2C_PB8_FMP                        /*!< Enable Fast Mode Plus on PB8       */\r
61 #define I2C_FASTMODEPLUS_PB9            SYSCFG_PMCR_I2C_PB9_FMP                        /*!< Enable Fast Mode Plus on PB9       */\r
62 #define I2C_FASTMODEPLUS_I2C1           SYSCFG_PMCR_I2C1_FMP                           /*!< Enable Fast Mode Plus on I2C1 pins */\r
63 #define I2C_FASTMODEPLUS_I2C2           SYSCFG_PMCR_I2C2_FMP                           /*!< Enable Fast Mode Plus on I2C2 pins */\r
64 #define I2C_FASTMODEPLUS_I2C3           SYSCFG_PMCR_I2C3_FMP                           /*!< Enable Fast Mode Plus on I2C3 pins */\r
65 #define I2C_FASTMODEPLUS_I2C4           SYSCFG_PMCR_I2C4_FMP                           /*!< Enable Fast Mode Plus on I2C4 pins */\r
66 /**\r
67   * @}\r
68   */\r
69 \r
70 /**\r
71   * @}\r
72   */\r
73 \r
74 /* Exported macro ------------------------------------------------------------*/\r
75 /* Exported functions --------------------------------------------------------*/\r
76 \r
77 /** @addtogroup I2CEx_Exported_Functions I2C Extended Exported Functions\r
78   * @{\r
79   */\r
80 \r
81 /** @addtogroup I2CEx_Exported_Functions_Group1 Extended features functions\r
82   * @brief    Extended features functions\r
83   * @{\r
84   */\r
85 \r
86 /* Peripheral Control functions  ************************************************/\r
87 HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter);\r
88 HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter);\r
89 HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c);\r
90 HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c);\r
91 void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);\r
92 void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);\r
93 \r
94 /* Private constants ---------------------------------------------------------*/\r
95 /** @defgroup I2CEx_Private_Constants I2C Extended Private Constants\r
96   * @{\r
97   */\r
98 \r
99 /**\r
100   * @}\r
101   */\r
102 \r
103 /* Private macros ------------------------------------------------------------*/\r
104 /** @defgroup I2CEx_Private_Macro I2C Extended Private Macros\r
105   * @{\r
106   */\r
107 #define IS_I2C_ANALOG_FILTER(FILTER)    (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \\r
108                                           ((FILTER) == I2C_ANALOGFILTER_DISABLE))\r
109 \r
110 #define IS_I2C_DIGITAL_FILTER(FILTER)   ((FILTER) <= 0x0000000FU)\r
111 \r
112 #if (defined(SYSCFG_PMCR_I2C1_FMP) && defined(SYSCFG_PMCR_I2C2_FMP) && defined(SYSCFG_PMCR_I2C3_FMP) && defined(SYSCFG_PMCR_I2C4_FMP))\r
113 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6)  == I2C_FASTMODEPLUS_PB6)  || \\r
114                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB7)  == I2C_FASTMODEPLUS_PB7)  || \\r
115                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB8)  == I2C_FASTMODEPLUS_PB8)  || \\r
116                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB9)  == I2C_FASTMODEPLUS_PB9)  || \\r
117                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \\r
118                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2) || \\r
119                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C3) == I2C_FASTMODEPLUS_I2C3) || \\r
120                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C4) == I2C_FASTMODEPLUS_I2C4))\r
121 #elif defined(SYSCFG_PMCR_I2C1_FMP) && defined(SYSCFG_PMCR_I2C2_FMP) && defined(SYSCFG_PMCR_I2C3_FMP)\r
122 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6)  == I2C_FASTMODEPLUS_PB6)  || \\r
123                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB7)  == I2C_FASTMODEPLUS_PB7)  || \\r
124                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB8)  == I2C_FASTMODEPLUS_PB8)  || \\r
125                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB9)  == I2C_FASTMODEPLUS_PB9)  || \\r
126                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \\r
127                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2) || \\r
128                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C3) == I2C_FASTMODEPLUS_I2C3))\r
129 #elif defined(SYSCFG_PMCR_I2C1_FMP) && defined(SYSCFG_PMCR_I2C2_FMP)\r
130 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6)  == I2C_FASTMODEPLUS_PB6)  || \\r
131                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB7)  == I2C_FASTMODEPLUS_PB7)  || \\r
132                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB8)  == I2C_FASTMODEPLUS_PB8)  || \\r
133                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB9)  == I2C_FASTMODEPLUS_PB9)  || \\r
134                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \\r
135                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2))\r
136 #elif defined(SYSCFG_PMCR_I2C1_FMP)\r
137 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6)  == I2C_FASTMODEPLUS_PB6)  || \\r
138                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB7)  == I2C_FASTMODEPLUS_PB7)  || \\r
139                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB8)  == I2C_FASTMODEPLUS_PB8)  || \\r
140                                          (((__CONFIG__) & I2C_FASTMODEPLUS_PB9)  == I2C_FASTMODEPLUS_PB9)  || \\r
141                                          (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1))\r
142 #endif /* SYSCFG_PMCR_I2C1_FMP && SYSCFG_PMCR_I2C2_FMP && SYSCFG_PMCR_I2C3_FMP && SYSCFG_PMCR_I2C4_FMP */\r
143 \r
144 \r
145 \r
146 /**\r
147   * @}\r
148   */\r
149 \r
150 /* Private Functions ---------------------------------------------------------*/\r
151 /** @defgroup I2CEx_Private_Functions I2C Extended Private Functions\r
152   * @{\r
153   */\r
154 /* Private functions are defined in stm32h7xx_hal_i2c_ex.c file */\r
155 /**\r
156   * @}\r
157   */\r
158 \r
159 /**\r
160   * @}\r
161   */\r
162 \r
163 /**\r
164   * @}\r
165   */\r
166 \r
167 /**\r
168   * @}\r
169   */\r
170 \r
171 /**\r
172   * @}\r
173   */\r
174 \r
175 #ifdef __cplusplus\r
176 }\r
177 #endif\r
178 \r
179 #endif /* STM32H7xx_HAL_I2C_EX_H */\r
180 \r
181 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/\r