```html STM32G474xx HAL用户手册: stm32g4xx_hal_tim.h 源文件
STM32G474xx HAL用户手册
stm32g4xx_hal_tim.h
转到此文件的文档。
00001 /**
00002   ******************************************************************************
00003   * @file    stm32g4xx_hal_tim.h
00004   * @author  MCD 应用程序团队
00005   * @brief   TIM 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_TIM_H
00021 #define STM32G4xx_HAL_TIM_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 TIM
00035   * @{
00036   */
00037 
00038 /* 导出的类型 ------------------------------------------------------------*/
00039 /** @defgroup TIM_Exported_Types TIM 导出的类型
00040   * @{
00041   */
00042 
00043 /**
00044   * @brief  TIM 时基配置结构体定义
00045   */
00046 typedef struct
00047 {
00048   uint32_t Prescaler;         /*!< 指定用于分频 TIM 时钟的预分频器值。
00049                                    此参数可以是 Min_Data = 0x0000 和 Max_Data = 0xFFFF 之间的数字。
00050                                    宏 __HAL_TIM_CALC_PSC() 可用于计算预分频器值 */
00051 
00052   uint32_t CounterMode;       /*!< 指定计数模式。
00053                                    此参数可以是 @ref TIM_Counter_Mode 的值 */
00054 
00055   uint32_t Period;            /*!< 指定在下一次更新事件时要加载到活动
00056                                    自动重装载寄存器的周期值。
00057                                    此参数可以是 Min_Data = 0x0000 和 Max_Data = 0xFFFF 之间的数字。
00058                                    (如果抖动激活,则为 0xFFEF)宏 __HAL_TIM_CALC_PERIOD(),
00059                                     __HAL_TIM_CALC_PERIOD_DITHER(),__HAL_TIM_CALC_PERIOD_BY_DELAY(),
00060                                     __HAL_TIM_CALC_PERIOD_DITHER_BY_DELAY() 可用于计算周期值 */
00061 
00062   uint32_t ClockDivision;     /*!< 指定时钟分频。
00063                                    此参数可以是 @ref TIM_ClockDivision 的值 */
00064 
00065   uint32_t RepetitionCounter;  /*!< 指定重复计数器值。每次 RCR 递减计数器
00066                                     到达零时,将生成一个更新事件并从 RCR 值 (N) 重新开始计数。
00067                                     这意味着在 PWM 模式下,(N+1) 对应:
00068                                         - 边沿对齐模式下的 PWM 周期数
00069                                         - 中央对齐模式下的半 PWM 周期数
00070                                      通用定时器:此参数必须是 Min_Data = 0x00 和
00071                                      Max_Data = 0xFF 之间的数字。
00072                                      高级定时器:此参数必须是 Min_Data = 0x0000 和
00073                                      Max_Data = 0xFFFF 之间的数字。 */
00074 
00075 
00076   uint32_t AutoReloadPreload;  /*!< 指定自动重装载预装载。
00077                                    此参数可以是 @ref TIM_AutoReloadPreload 的值 */
00078 } TIM_Base_InitTypeDef;
00079 
00080 /**
00081   * @brief  TIM 输出比较配置结构体定义
00082   */
00083 typedef struct
00084 {
00085   uint32_t OCMode;        /*!< 指定 TIM 模式。
00086                                此参数可以是 @ref TIM_Output_Compare_and_PWM_modes 的值 */
00087 
00088   uint32_t Pulse;         /*!< 指定要加载到捕获比较寄存器的脉冲值。
00089                                此参数可以是 Min_Data = 0x0000 和 Max_Data = 0xFFFF 之间的数字
00090                                (如果抖动激活,则为 0xFFEF)
00091                                宏 __HAL_TIM_CALC_PULSE(), __HAL_TIM_CALC_PULSE_DITHER() 可用于计算
00092                                脉冲值 */
00093 
00094   uint32_t OCPolarity;    /*!< 指定输出极性。
00095                                此参数可以是 @ref TIM_Output_Compare_Polarity 的值 */
00096 
00097   uint32_t OCNPolarity;   /*!< 指定互补输出极性。
00098                                此参数可以是 @ref TIM_Output_Compare_N_Polarity 的值
00099                                @注意 此参数仅对支持刹车功能的定时器实例有效。 */
00100 
00101   uint32_t OCFastMode;    /*!< 指定快速模式状态。
00102                                此参数可以是 @ref TIM_Output_Fast_State 的值
00103                                @注意 此参数仅在 PWM1 和 PWM2 模式下有效。 */
00104 
00105 
00106   uint32_t OCIdleState;   /*!< 指定空闲状态下 TIM 输出比较引脚状态。
00107                                此参数可以是 @ref TIM_Output_Compare_Idle_State 的值
00108                                @注意 此参数仅对支持刹车功能的定时器实例有效。 */
00109 
00110   uint32_t OCNIdleState;  /*!< 指定空闲状态下 TIM 输出比较引脚状态。
00111                                此参数可以是 @ref TIM_Output_Compare_N_Idle_State 的值
00112                                @注意 此参数仅对支持刹车功能的定时器实例有效。 */
00113 } TIM_OC_InitTypeDef;
00114 
00115 /**
00116   * @brief  TIM 单脉冲模式配置结构体定义
00117   */
00118 typedef struct
00119 {
00120   uint32_t OCMode;        /*!< 指定 TIM 模式。
00121                                此参数可以是 @ref TIM_Output_Compare_and_PWM_modes 的值 */
00122 
00123   uint32_t Pulse;         /*!< 指定要加载到捕获比较寄存器的脉冲值。
00124                                此参数可以是 Min_Data = 0x0000 和 Max_Data = 0xFFFF 之间的数字
00125                                (如果抖动激活,则为 0xFFEF)
00126                                宏 __HAL_TIM_CALC_PULSE(), __HAL_TIM_CALC_PULSE_DITHER() 可用于计算
00127                                脉冲值 */
00128 
00129   uint32_t OCPolarity;    /*!< 指定输出极性。
00130                                此参数可以是 @ref TIM_Output_Compare_Polarity 的值 */
00131 
00132   uint32_t OCNPolarity;   /*!< 指定互补输出极性。
00133                                此参数可以是 @ref TIM_Output_Compare_N_Polarity 的值
00134                                @注意 此参数仅对支持刹车功能的定时器实例有效。 */
00135 
00136   uint32_t OCIdleState;   /*!< 指定空闲状态下 TIM 输出比较引脚状态。
00137                                此参数可以是 @ref TIM_Output_Compare_Idle_State 的值
00138                                @注意 此参数仅对支持刹车功能的定时器实例有效。 */
00139 
00140   uint32_t OCNIdleState;  /*!< 指定空闲状态下 TIM 输出比较引脚状态。
00141                                此参数可以是 @ref TIM_Output_Compare_N_Idle_State 的值
00142                                @注意 此参数仅对支持刹车功能的定时器实例有效。 */
00143 
00144   uint32_t ICPolarity;    /*!< 指定输入信号的有效边沿。
00145                                此参数可以是 @ref TIM_Input_Capture_Polarity 的值 */
00146 
00147   uint32_t ICSelection;   /*!< 指定输入。
00148                               此参数可以是 @ref TIM_Input_Capture_Selection 的值 */
00149 
00150   uint32_t ICFilter;      /*!< 指定输入捕获滤波器。
00151                               此参数可以是 Min_Data = 0x0 和 Max_Data = 0xF 之间的数字 */
00152 } TIM_OnePulse_InitTypeDef;
00153 
00154 /**
00155   * @brief  TIM 输入捕获配置结构体定义
00156   */
00157 typedef struct
00158 {
00159   uint32_t  ICPolarity;  /*!< 指定输入信号的有效边沿。
00160                               此参数可以是 @ref TIM_Input_Capture_Polarity 的值 */
00161 
00162   uint32_t ICSelection;  /*!< 指定输入。
00163                               此参数可以是 @ref TIM_Input_Capture_Selection 的值 */
00164 
00165   uint32_t ICPrescaler;  /*!< 指定输入捕获预分频器。
00166                               此参数可以是 @ref TIM_Input_Capture_Prescaler 的值 */
00167 
00168   uint32_t ICFilter;     /*!< 指定输入捕获滤波器。
00169                               此参数可以是 Min_Data = 0x0 和 Max_Data = 0xF 之间的数字 */
00170 } TIM_IC_InitTypeDef;
00171 
00172 /**
00173   * @brief  TIM 编码器配置结构体定义
00174   */
00175 typedef struct
00176 {
00177   uint32_t EncoderMode;   /*!< 指定输入信号的有效边沿。
00178                                此参数可以是 @ref TIM_Encoder_Mode 的值 */
00179 
00180   uint32_t IC1Polarity;   /*!< 指定输入信号的有效边沿。
00181                                此参数可以是 @ref TIM_Encoder_Input_Polarity 的值 */
00182 
00183   uint32_t IC1Selection;  /*!< 指定输入。
00184                                此参数可以是 @ref TIM_Input_Capture_Selection 的值 */
00185 
00186   uint32_t IC1Prescaler;  /*!< 指定输入捕获预分频器。
00187 <