|
STM32G474xx HAL用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_hal_comp.h 00004 * @author MCD 应用团队 00005 * @brief COMP HAL 模块的头文件 00006 ****************************************************************************** 00007 * @attention 00008 * 00009 * 版权所有 (c) 2019 STMicroelectronics。 00010 * 保留所有权利。 00011 * 00012 * 本软件根据可在 LICENSE 文件中找到的条款进行许可, 00013 * 该文件位于本软件组件的根目录中。 00014 * 如果本软件未附带 LICENSE 文件,则按“原样”提供。 00015 * 00016 ****************************************************************************** 00017 */ 00018 00019 /* 定义以防止递归包含 -------------------------------------*/ 00020 #ifndef STM32G4xx_HAL_COMP_H 00021 #define STM32G4xx_HAL_COMP_H 00022 00023 #ifdef __cplusplus 00024 extern "C" { 00025 #endif 00026 00027 /* 包含 ------------------------------------------------------------------*/ 00028 #include "stm32g4xx_hal_def.h" 00029 #include "stm32g4xx_ll_exti.h" 00030 00031 /** @addtogroup STM32G4xx_HAL_Driver 00032 * @{ 00033 */ 00034 00035 00036 /** @addtogroup COMP 00037 * @{ 00038 */ 00039 00040 /* 导出的类型 ------------------------------------------------------------*/ 00041 /** @defgroup COMP_Exported_Types COMP 导出的类型 00042 * @{ 00043 */ 00044 00045 /** 00046 * @brief COMP 初始化结构体定义 00047 */ 00048 typedef struct 00049 { 00050 00051 uint32_t InputPlus; /*!< 设置比较器输入正端(同相输入端)。 00052 此参数可以是 @ref COMP_InputPlus 中的一个值 */ 00053 00054 uint32_t InputMinus; /*!< 设置比较器输入负端(反相输入端)。 00055 此参数可以是 @ref COMP_InputMinus 中的一个值 */ 00056 00057 uint32_t Hysteresis; /*!< 设置输入负端的比较器迟滞模式。 00058 此参数可以是 @ref COMP_Hysteresis 中的一个值 */ 00059 00060 uint32_t OutputPol; /*!< 设置比较器输出极性。 00061 此参数可以是 @ref COMP_OutputPolarity 中的一个值 */ 00062 00063 uint32_t BlankingSrce; /*!< 设置比较器消隐源。 00064 此参数可以是 @ref COMP_BlankingSrce 中的一个值 */ 00065 00066 uint32_t TriggerMode; /*!< 设置比较器输出触发外部中断线(EXTI)。 00067 此参数可以是 @ref COMP_EXTI_TriggerMode 中的一个值 */ 00068 00069 } COMP_InitTypeDef; 00070 00071 /** 00072 * @brief HAL COMP 状态机:HAL COMP 状态定义 00073 */ 00074 #define COMP_STATE_BITFIELD_LOCK (0x10U) 00075 typedef enum 00076 { 00077 HAL_COMP_STATE_RESET = 0x00U, /*!< COMP 尚未初始化 */ 00078 HAL_COMP_STATE_RESET_LOCKED = (HAL_COMP_STATE_RESET | COMP_STATE_BITFIELD_LOCK), /*!< COMP 尚未初始化且配置已锁定 */ 00079 HAL_COMP_STATE_READY = 0x01U, /*!< COMP 已初始化并可供使用 */ 00080 HAL_COMP_STATE_READY_LOCKED = (HAL_COMP_STATE_READY | COMP_STATE_BITFIELD_LOCK), /*!< COMP 已初始化但配置已锁定 */ 00081 HAL_COMP_STATE_BUSY = 0x02U, /*!< COMP 正在运行 */ 00082 HAL_COMP_STATE_BUSY_LOCKED = (HAL_COMP_STATE_BUSY | COMP_STATE_BITFIELD_LOCK) /*!< COMP 正在运行且配置已锁定 */ 00083 } HAL_COMP_StateTypeDef; 00084 00085 /** 00086 * @brief COMP 句柄结构定义 00087 */ 00088 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1) 00089 typedef struct __COMP_HandleTypeDef 00090 #else 00091 typedef struct 00092 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */ 00093 { 00094 COMP_TypeDef *Instance; /*!< 寄存器基地址 */ 00095 COMP_InitTypeDef Init; /*!< COMP 所需参数 */ 00096 HAL_LockTypeDef Lock; /*!< 锁定对象 */ 00097 __IO HAL_COMP_StateTypeDef State; /*!< COMP 通信状态 */ 00098 __IO uint32_t ErrorCode; /*!< COMP 错误代码 */ 00099 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1) 00100 void (* TriggerCallback)(struct __COMP_HandleTypeDef *hcomp); /*!< COMP 触发回调 */ 00101 void (* MspInitCallback)(struct __COMP_HandleTypeDef *hcomp); /*!< COMP Msp 初始化回调 */ 00102 void (* MspDeInitCallback)(struct __COMP_HandleTypeDef *hcomp); /*!< COMP Msp 反初始化回调 */ 00103 #endif /* USE_HAL_COMP_REGISTER_CALLBACKS */ 00104 } COMP_HandleTypeDef; 00105 00106 #if (USE_HAL_COMP_REGISTER_CALLBACKS == 1) 00107 /** 00108 * @brief HAL COMP 回调 ID 枚举定义 00109 */ 00110 typedef enum 00111 { 00112 HAL_COMP_TRIGGER_CB_ID = 0x00U, /*!< COMP 触发回调 ID */ 00113 HAL_COMP_MSPINIT_CB_ID = 0x01U, /*!< COMP Msp 初始化回调 ID */ 00114 HAL_COMP_MSPDEINIT_CB_ID = 0x02U /*!< COMP Msp 反初始化回调 ID */ 00115 } HAL_COMP_CallbackIDTypeDef; 00116 00117 /**