|
STM32G474xx HAL 用户手册
|
00001 /** 00002 ****************************************************************************** 00003 * @file stm32g4xx_hal_lptim.h 00004 * @author MCD 应用团队 00005 * @brief LPTIM 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_LPTIM_H 00021 #define STM32G4xx_HAL_LPTIM_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 00035 00036 /** @addtogroup LPTIM 00037 * @{ 00038 */ 00039 00040 /* 导出的类型 ------------------------------------------------------------*/ 00041 /** @defgroup LPTIM_Exported_Types 导出的 LPTIM 类型 00042 * @{ 00043 */ 00044 #define LPTIM_EXTI_LINE_WAKEUPTIMER_EVENT EXTI_IMR2_IM37 /*!< 连接到 LPTIM EXTI 线的外部中断线 37 */ 00045 00046 /** 00047 * @brief LPTIM 时钟配置定义 00048 */ 00049 typedef struct 00050 { 00051 uint32_t Source; /*!< 选择时钟源。 00052 此参数可以是 @ref LPTIM_Clock_Source 的值 */ 00053 00054 uint32_t Prescaler; /*!< 指定计数器时钟预分频器。 00055 此参数可以是 @ref LPTIM_Clock_Prescaler 的值 */ 00056 00057 } LPTIM_ClockConfigTypeDef; 00058 00059 /** 00060 * @brief LPTIM 时钟配置定义 00061 */ 00062 typedef struct 00063 { 00064 uint32_t Polarity; /*!< 如果选择了 ULPTIM 输入,则为计数器单元选择有效边沿的极性。 00065 注意:仅当使用超低功耗时钟源时,才使用此参数。 00066 注意:如果将极性配置为 '双沿',则必须激活辅助时钟(一个低功耗振荡器)。 00067 此参数可以是 @ref LPTIM_Clock_Polarity 的值 */ 00068 00069 00070 00071 uint32_t SampleTime; /*!< 选择时钟采样时间以配置时钟毛刺滤波器。 00072 注意:仅当使用超低功耗时钟源时,才使用此参数。 00073 此参数可以是 @ref LPTIM_Clock_Sample_Time 的值 */ 00074 00075 } LPTIM_ULPClockConfigTypeDef; 00076 00077 /** 00078 * @brief LPTIM 触发配置定义 00079 */ 00080 typedef struct 00081 { 00082 uint32_t Source; /*!< 选择触发源。 00083 此参数可以是 @ref LPTIM_Trigger_Source 的值 */ 00084 00085 uint32_t ActiveEdge; /*!< 选择触发有效边沿。 00086 注意:仅当使用外部触发时,才使用此参数。 00087 此参数可以是 @ref LPTIM_External_Trigger_Polarity 的值 */ 00088 00089 uint32_t SampleTime; /*!< 选择触发采样时间以配置时钟毛刺滤波器。 00090 注意:仅当使用外部触发时,才使用此参数。 00091 此参数可以是 @ref LPTIM_Trigger_Sample_Time 的值 */ 00092 } LPTIM_TriggerConfigTypeDef; 00093 00094 /** 00095 * @brief LPTIM 初始化结构定义 00096 */ 00097 typedef struct 00098 { 00099 LPTIM_ClockConfigTypeDef Clock; /*!< 指定时钟参数 */ 00100 00101 LPTIM_ULPClockConfigTypeDef UltraLowPowerClock;/*!< 指定超低功耗时钟参数 */ 00102 00103 LPTIM_TriggerConfigTypeDef Trigger; /*!< 指定触发参数 */ 00104 00105 uint32_t OutputPolarity; /*!< 指定输出极性。 00106 此参数可以是 @ref LPTIM_Output_Polarity 的值 */ 00107 00108 uint32_t UpdateMode; /*!< 指定自动重载和比较值的更新是立即执行还是在当前周期结束后执行。 00109 此参数可以是 @ref LPTIM_Updating_Mode 的值 */ 00110 00111 00112 uint32_t CounterSource; /*!< 指定计数器是每个内部事件递增还是每个外部事件递增。 00113 此参数可以是 @ref LPTIM_Counter_Source 的值 */ 00114 00115 00116 uint32_t Input1Source; /*!< 指定为输入 1 选择的源(GPIO 或比较器输出)。 00117 此参数可以是 @ref LPTIM_Input1_Source 的值 */ 00118 00119 uint32_t Input2Source; /*!< 指定为输入 2 选择的源(GPIO 或比较器输出)。 00120 注意:此参数仅用于编码器功能,因此仅用于 LPTIM1 实例。 00121 此参数可以是 @ref LPTIM_Input2_Source 的值 */ 00122 00123 } LPTIM_InitTypeDef; 00124 00125 /** 00126 * @brief HAL LPTIM 状态结构定义 00127 */ 00128 typedef enum 00129 { 00130 HAL_LPTIM_STATE_RESET = 0x00U, /*!< 外设尚未初始化或已禁用 */ 00131 HAL_LPTIM_STATE_READY = 0x01U, /*!< 外设已初始化并准备好使用 */ 00132 HAL_LPTIM_STATE_BUSY = 0x02U, /*!< 内部处理正在进行中 */ 00133 HAL_LPTIM_STATE_TIMEOUT = 0x03U, /*!< 超时状态 */ 00134 HAL_LPTIM_STATE_ERROR = 0x04U /*!< 内部处理正在进行中 */ 00135 } HAL_LPTIM_StateTypeDef; 00136 00137 /** 00138 * @brief LPTIM 句柄结构定义 00139 */ 00140 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00141 typedef struct __LPTIM_HandleTypeDef 00142 #else 00143 typedef struct 00144 #endif /* USE_HAL_LPTIM_REGISTER_CALLBACKS */ 00145 { 00146 LPTIM_TypeDef *Instance; /*!< 寄存器基地址 */ 00147 00148 LPTIM_InitTypeDef Init; /*!< LPTIM 所需参数 */ 00149 00150 HAL_StatusTypeDef Status; /*!< LPTIM 外设状态 */ 00151 00152 HAL_LockTypeDef Lock; /*!< LPTIM 锁定对象 */ 00153 00154 __IO HAL_LPTIM_StateTypeDef State; /*!< LPTIM 外设状态 */ 00155 00156 #if (USE_HAL_LPTIM_REGISTER_CALLBACKS == 1) 00157 void (* MspInitCallback)(struct