STM32G474xx HAL 用户手册
stm32g4xx_hal_lptim.h
跳转到本文档的说明。
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 </