The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
mbed library release version 165

Who changed what in which revision?

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