STM32G474xx HAL用户手册
stm32g4xx_hal_i2c_ex.h
转到该文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_hal_i2c_ex.h
00004   * @author  MCD Application Team
00005   * @brief   I2C HAL扩展模块头文件。
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2019 STMicroelectronics.
00010   * 保留所有权利。
00011   *
00012   * 本软件根据LICENSE文件中找到的条款进行许可
00013   * 在本软件组件的根目录中。
00014   * 如果本软件没有附带LICENSE文件,则按原样提供。
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* 定义以防止重复包含 -------------------------------------*/
00020 #ifndef STM32G4xx_HAL_I2C_EX_H
00021 #define STM32G4xx_HAL_I2C_EX_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* 包含 ------------------------------------------------------------------*/
00028 #include "stm32g4xx_hal_def.h"
00029 
00030 /** @addtogroup STM32G4xx_HAL_Driver
00031   * @{
00032   */
00033 
00034 /** @addtogroup I2CEx
00035   * @{
00036   */
00037 
00038 /* 导出类型 ------------------------------------------------------------*/
00039 /* 导出常量 -----------------------------------------------------------*/
00040 /** @defgroup I2CEx_Exported_Constants I2C扩展导出常量
00041   * @{
00042   */
00043 
00044 /** @defgroup I2CEx_Analog_Filter I2C扩展模拟滤波器
00045   * @{
00046   */
00047 #define I2C_ANALOGFILTER_ENABLE         0x00000000U
00048 #define I2C_ANALOGFILTER_DISABLE        I2C_CR1_ANFOFF
00049 /**
00050   * @}
00051   */
00052 
00053 /** @defgroup I2CEx_FastModePlus I2C扩展快速模式Plus
00054   * @{
00055   */
00056 #define I2C_FMP_NOT_SUPPORTED           0xAAAA0000U                                     /*!< 不支持快速模式Plus       */
00057 #define I2C_FASTMODEPLUS_PB6            SYSCFG_CFGR1_I2C_PB6_FMP                        /*!< 在PB6上启用快速模式Plus       */
00058 #define I2C_FASTMODEPLUS_PB7            SYSCFG_CFGR1_I2C_PB7_FMP                        /*!< 在PB7上启用快速模式Plus       */
00059 #define I2C_FASTMODEPLUS_PB8            SYSCFG_CFGR1_I2C_PB8_FMP                        /*!< 在PB8上启用快速模式Plus       */
00060 #define I2C_FASTMODEPLUS_PB9            SYSCFG_CFGR1_I2C_PB9_FMP                        /*!< 在PB9上启用快速模式Plus       */
00061 #define I2C_FASTMODEPLUS_I2C1           SYSCFG_CFGR1_I2C1_FMP                           /*!< 在I2C1引脚上启用快速模式Plus */
00062 #define I2C_FASTMODEPLUS_I2C2           SYSCFG_CFGR1_I2C2_FMP                           /*!< 在I2C2引脚上启用快速模式Plus */
00063 #if defined(SYSCFG_CFGR1_I2C3_FMP)
00064 #define I2C_FASTMODEPLUS_I2C3           SYSCFG_CFGR1_I2C3_FMP                           /*!< 在I2C3引脚上启用快速模式Plus */
00065 #else
00066 #define I2C_FASTMODEPLUS_I2C3           (uint32_t)(0x00000400U | I2C_FMP_NOT_SUPPORTED) /*!< 不支持快速模式Plus I2C3  */
00067 #endif /* SYSCFG_CFGR1_I2C3_FMP */
00068 #if defined(SYSCFG_CFGR1_I2C4_FMP)
00069 #define I2C_FASTMODEPLUS_I2C4           SYSCFG_CFGR1_I2C4_FMP                           /*!< 在I2C4引脚上启用快速模式Plus */
00070 #else
00071 #define I2C_FASTMODEPLUS_I2C4           (uint32_t)(0x00000800U | I2C_FMP_NOT_SUPPORTED) /*!< 不支持快速模式Plus I2C4  */
00072 #endif /* SYSCFG_CFGR1_I2C4_FMP */
00073 /**
00074   * @}
00075   */
00076 
00077 /**
00078   * @}
00079   */
00080 
00081 /* 导出宏 ------------------------------------------------------------*/
00082 /** @defgroup I2CEx_Exported_Macros I2C扩展导出宏
00083   * @{
00084   */
00085 
00086 /**
00087   * @}
00088   */
00089 
00090 /* 导出函数 -----------------------------------------------------------*/
00091 /** @addtogroup I2CEx_Exported_Functions I2C扩展导出函数
00092   * @{
00093   */
00094 
00095 /** @addtogroup I2CEx_Exported_Functions_Group1 滤波器模式函数
00096   * @{
00097   */
00098 /* 外设控制函数  ************************************************/
00099 HAL_StatusTypeDef HAL_I2CEx_ConfigAnalogFilter(I2C_HandleTypeDef *hi2c, uint32_t AnalogFilter);
00100 HAL_StatusTypeDef HAL_I2CEx_ConfigDigitalFilter(I2C_HandleTypeDef *hi2c, uint32_t DigitalFilter);
00101 /**
00102   * @}
00103   */
00104 
00105 /** @addtogroup I2CEx_Exported_Functions_Group2 唤醒模式函数
00106   * @{
00107   */
00108 HAL_StatusTypeDef HAL_I2CEx_EnableWakeUp(I2C_HandleTypeDef *hi2c);
00109 HAL_StatusTypeDef HAL_I2CEx_DisableWakeUp(I2C_HandleTypeDef *hi2c);
00110 /**
00111   * @}
00112   */
00113 
00114 /** @addtogroup I2CEx_Exported_Functions_Group3 快速模式Plus函数
00115   * @{
00116   */
00117 void HAL_I2CEx_EnableFastModePlus(uint32_t ConfigFastModePlus);
00118 void HAL_I2CEx_DisableFastModePlus(uint32_t ConfigFastModePlus);
00119 /**
00120   * @}
00121   */
00122 
00123 /**
00124   * @}
00125   */
00126 
00127 /* 私有常量 ---------------------------------------------------------*/
00128 /** @defgroup I2CEx_Private_Constants I2C扩展私有常量
00129   * @{
00130   */
00131 
00132 /**
00133   * @}
00134   */
00135 
00136 /* 私有宏 ------------------------------------------------------------*/
00137 /** @defgroup I2CEx_Private_Macro I2C扩展私有宏
00138   * @{
00139   */
00140 #define IS_I2C_ANALOG_FILTER(FILTER)    (((FILTER) == I2C_ANALOGFILTER_ENABLE) || \
00141                                          ((FILTER) == I2C_ANALOGFILTER_DISABLE))
00142 
00143 #define IS_I2C_DIGITAL_FILTER(FILTER)   ((FILTER) <= 0x0000000FU)
00144 
00145 #if defined (I2C3)
00146 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FMP_NOT_SUPPORTED) != I2C_FMP_NOT_SUPPORTED) && \
00147                                          ((((__CONFIG__) & (I2C_FASTMODEPLUS_PB6))  == I2C_FASTMODEPLUS_PB6)     || \
00148                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_PB7))  == I2C_FASTMODEPLUS_PB7)     || \
00149                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_PB8))  == I2C_FASTMODEPLUS_PB8)     || \
00150                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_PB9))  == I2C_FASTMODEPLUS_PB9)     || \
00151                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C1)) == I2C_FASTMODEPLUS_I2C1)    || \
00152                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C2)) == I2C_FASTMODEPLUS_I2C2)    || \
00153                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C3)) == I2C_FASTMODEPLUS_I2C3)    || \
00154                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C4)) == I2C_FASTMODEPLUS_I2C4)))
00155 #else
00156 #define IS_I2C_FASTMODEPLUS(__CONFIG__) ((((__CONFIG__) & I2C_FMP_NOT_SUPPORTED) != I2C_FMP_NOT_SUPPORTED) && \
00157                                          ((((__CONFIG__) & (I2C_FASTMODEPLUS_PB6))  == I2C_FASTMODEPLUS_PB6)     || \
00158                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_PB7))  == I2C_FASTMODEPLUS_PB7)     || \
00159                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_PB8))  == I2C_FASTMODEPLUS_PB8)     || \
00160                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_PB9))  == I2C_FASTMODEPLUS_PB9)     || \
00161                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C1)) == I2C_FASTMODEPLUS_I2C1)    || \
00162                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C2)) == I2C_FASTMODEPLUS_I2C2)    || \
00163                                           (((__CONFIG__) & (I2C_FASTMODEPLUS_I2C4)) == I2C_FASTMODEPLUS_I2C4)))
00164 #endif /* I2C3 */
00165 /**
00166   * @}
00167   */
00168 
00169 /* 私有函数 ---------------------------------------------------------*/
00170 /** @defgroup I2CEx_Private_Functions I2C扩展私有函数
00171   * @{