|
STM32G474xx HAL用户手册
|
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 * @{