```html
|
STM32G474xx HAL用户手册
|
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 <