STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
stm32h7xx_hal_i2c_ex.h
Go to the documentation of this file.
1/**
2 ******************************************************************************
3 * @file stm32h7xx_hal_i2c_ex.h
4 * @author MCD Application Team
5 * @brief Header file of I2C HAL Extended module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2017 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 */
18
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32H7xx_HAL_I2C_EX_H
21#define STM32H7xx_HAL_I2C_EX_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32h7xx_hal_def.h"
29
30/** @addtogroup STM32H7xx_HAL_Driver
31 * @{
32 */
33
34/** @addtogroup I2CEx
35 * @{
36 */
37
38/* Exported types ------------------------------------------------------------*/
39/* Exported constants --------------------------------------------------------*/
40/** @defgroup I2CEx_Exported_Constants I2C Extended Exported Constants
41 * @{
42 */
43
44/** @defgroup I2CEx_Analog_Filter I2C Extended Analog Filter
45 * @{
46 */
47#define I2C_ANALOGFILTER_ENABLE 0x00000000U
48#define I2C_ANALOGFILTER_DISABLE I2C_CR1_ANFOFF
49/**
50 * @}
51 */
52
53/** @defgroup I2CEx_FastModePlus I2C Extended Fast Mode Plus
54 * @{
55 */
56#define I2C_FMP_NOT_SUPPORTED 0xAAAA0000U /*!< Fast Mode Plus not supported */
57#define I2C_FASTMODEPLUS_PB6 SYSCFG_PMCR_I2C_PB6_FMP /*!< Enable Fast Mode Plus on PB6 */
58#define I2C_FASTMODEPLUS_PB7 SYSCFG_PMCR_I2C_PB7_FMP /*!< Enable Fast Mode Plus on PB7 */
59#define I2C_FASTMODEPLUS_PB8 SYSCFG_PMCR_I2C_PB8_FMP /*!< Enable Fast Mode Plus on PB8 */
60#define I2C_FASTMODEPLUS_PB9 SYSCFG_PMCR_I2C_PB9_FMP /*!< Enable Fast Mode Plus on PB9 */
61#define I2C_FASTMODEPLUS_I2C1 SYSCFG_PMCR_I2C1_FMP /*!< Enable Fast Mode Plus on I2C1 pins */
62#define I2C_FASTMODEPLUS_I2C2 SYSCFG_PMCR_I2C2_FMP /*!< Enable Fast Mode Plus on I2C2 pins */
63#define I2C_FASTMODEPLUS_I2C3 SYSCFG_PMCR_I2C3_FMP /*!< Enable Fast Mode Plus on I2C3 pins */
64#define I2C_FASTMODEPLUS_I2C4 SYSCFG_PMCR_I2C4_FMP /*!< Enable Fast Mode Plus on I2C4 pins */
65#if defined(SYSCFG_PMCR_I2C5_FMP)
66#define I2C_FASTMODEPLUS_I2C5 SYSCFG_PMCR_I2C5_FMP /*!< Enable Fast Mode Plus on I2C5 pins */
67#else
68#define I2C_FASTMODEPLUS_I2C5 (uint32_t)(0x00001000U | I2C_FMP_NOT_SUPPORTED) /*!< Fast Mode Plus I2C5 not supported */
69#endif /* SYSCFG_PMCR_I2C5_FMP */
70/**
71 * @}
72 */
73
74/**
75 * @}
76 */
77
78/* Exported macro ------------------------------------------------------------*/
79/** @defgroup I2CEx_Exported_Macros I2C Extended Exported Macros
80 * @{
81 */
82
83/**
84 * @}
85 */
86
87/* Exported functions --------------------------------------------------------*/
88/** @addtogroup I2CEx_Exported_Functions I2C Extended Exported Functions
89 * @{
90 */
91
92/** @addtogroup I2CEx_Exported_Functions_Group1 Filter Mode Functions
93 * @{
94 */
95/* Peripheral Control functions ************************************************/
98/**
99 * @}
100 */
101
102/** @addtogroup I2CEx_Exported_Functions_Group2 WakeUp Mode Functions
103 * @{
104 */
107/**
108 * @}
109 */
110
111/** @addtogroup I2CEx_Exported_Functions_Group3 Fast Mode Plus Functions
112 * @{
113 */
114void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
115void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
116/**
117 * @}
118 */
119
120/**
121 * @}
122 */
123
124/* Private constants ---------------------------------------------------------*/
125/** @defgroup I2CEx_Private_Constants I2C Extended Private Constants
126 * @{
127 */
128
129/**
130 * @}
131 */
132
133/* Private macros ------------------------------------------------------------*/
134/** @defgroup I2CEx_Private_Macro I2C Extended Private Macros
135 * @{
136 */
137#define IS_I2C_ANALOG_FILTER(FILTER) (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \
138 ((FILTER) == I2C_ANALOGFILTER_DISABLE))
139
140#define IS_I2C_DIGITAL_FILTER(FILTER) ((FILTER) <= 0x0000000FU)
141
142#define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FASTMODEPLUS_PB6) == I2C_FASTMODEPLUS_PB6) || \
143 (((__CONFIG__) & I2C_FASTMODEPLUS_PB7) == I2C_FASTMODEPLUS_PB7) || \
144 (((__CONFIG__) & I2C_FASTMODEPLUS_PB8) == I2C_FASTMODEPLUS_PB8) || \
145 (((__CONFIG__) & I2C_FASTMODEPLUS_PB9) == I2C_FASTMODEPLUS_PB9) || \
146 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C1) == I2C_FASTMODEPLUS_I2C1) || \
147 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C2) == I2C_FASTMODEPLUS_I2C2) || \
148 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C3) == I2C_FASTMODEPLUS_I2C3) || \
149 (((__CONFIG__) & I2C_FASTMODEPLUS_I2C4) == I2C_FASTMODEPLUS_I2C4))
150/**
151 * @}
152 */
153
154/* Private Functions ---------------------------------------------------------*/
155/** @defgroup I2CEx_Private_Functions I2C Extended Private Functions
156 * @{
157 */
158/* Private functions are defined in stm32h7xx_hal_i2c_ex.c file */
159/**
160 * @}
161 */
162
163/**
164 * @}
165 */
166
167/**
168 * @}
169 */
170
171#ifdef __cplusplus
172}
173#endif
174
175#endif /* STM32H7xx_HAL_I2C_EX_H */
HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter)
HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter)
HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c)
HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c)
void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus)
void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus)
struct __I2C_HandleTypeDef I2C_HandleTypeDef
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition.