STM CMSIS
stm32f4xx_hal_tim_ex.h
Go to the documentation of this file.
1 
38 /* Define to prevent recursive inclusion -------------------------------------*/
39 #ifndef __STM32F4xx_HAL_TIM_EX_H
40 #define __STM32F4xx_HAL_TIM_EX_H
41 
42 #ifdef __cplusplus
43  extern "C" {
44 #endif
45 
46 /* Includes ------------------------------------------------------------------*/
47 #include "stm32f4xx_hal_def.h"
48 
57 /* Exported types ------------------------------------------------------------*/
66 typedef struct
67 {
68 
69  uint32_t IC1Polarity;
72  uint32_t IC1Prescaler;
75  uint32_t IC1Filter;
78  uint32_t Commutation_Delay;
81 
85 typedef struct {
89  uint32_t MasterSlaveMode;
92 
96 typedef struct
97 {
98  uint32_t OffStateRunMode;
100  uint32_t OffStateIDLEMode;
102  uint32_t LockLevel;
104  uint32_t DeadTime;
106  uint32_t BreakState;
108  uint32_t BreakPolarity;
110  uint32_t AutomaticOutput;
117 /* Exported constants --------------------------------------------------------*/
125 #define TIM_TIM2_TIM8_TRGO (0x00000000U)
126 #define TIM_TIM2_ETH_PTP (0x00000400U)
127 #define TIM_TIM2_USBFS_SOF (0x00000800U)
128 #define TIM_TIM2_USBHS_SOF (0x00000C00U)
129 #define TIM_TIM5_GPIO (0x00000000U)
130 #define TIM_TIM5_LSI (0x00000040U)
131 #define TIM_TIM5_LSE (0x00000080U)
132 #define TIM_TIM5_RTC (0x000000C0U)
133 #define TIM_TIM11_GPIO (0x00000000U)
134 #define TIM_TIM11_HSE (0x00000002U)
135 
136 #if defined (STM32F446xx)
137 #define TIM_TIM11_SPDIFRX (0x00000001U)
138 #endif /* STM32F446xx */
139 
143 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
144 
147 #define TIM_SYSTEMBREAKINPUT_HARDFAULT ((uint32_t)0x00000001U) /* Core Lockup lock output(Hardfault) is connected to Break Input of TIM1 and TIM8 */
148 #define TIM_SYSTEMBREAKINPUT_PVD ((uint32_t)0x00000004U) /* PVD Interrupt is connected to Break Input of TIM1 and TIM8 */
149 #define TIM_SYSTEMBREAKINPUT_HARDFAULT_PVD ((uint32_t)0x00000005U) /* Core Lockup lock output(Hardfault) and PVD Interrupt are connected to Break Input of TIM1 and TIM8 */
150 
153 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
154 
158 /* Exported macro ------------------------------------------------------------*/
159 /* Exported functions --------------------------------------------------------*/
167 /* Timer Hall Sensor functions **********************************************/
168 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef* htim, TIM_HallSensor_InitTypeDef* sConfig);
169 HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef* htim);
170 
171 void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef* htim);
172 void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef* htim);
173 
174  /* Blocking mode: Polling */
175 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef* htim);
176 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef* htim);
177 /* Non-Blocking mode: Interrupt */
178 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef* htim);
179 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef* htim);
180 /* Non-Blocking mode: DMA */
181 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef* htim, uint32_t *pData, uint16_t Length);
182 HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef* htim);
190 /* Timer Complementary Output Compare functions *****************************/
191 /* Blocking mode: Polling */
192 HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef* htim, uint32_t Channel);
193 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef* htim, uint32_t Channel);
194 
195 /* Non-Blocking mode: Interrupt */
196 HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
197 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
198 
199 /* Non-Blocking mode: DMA */
200 HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef* htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
201 HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef* htim, uint32_t Channel);
209 /* Timer Complementary PWM functions ****************************************/
210 /* Blocking mode: Polling */
211 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef* htim, uint32_t Channel);
212 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef* htim, uint32_t Channel);
213 
214 /* Non-Blocking mode: Interrupt */
215 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
216 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef* htim, uint32_t Channel);
217 /* Non-Blocking mode: DMA */
218 HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef* htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
219 HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef* htim, uint32_t Channel);
227 /* Timer Complementary One Pulse functions **********************************/
228 /* Blocking mode: Polling */
229 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
230 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
231 
232 /* Non-Blocking mode: Interrupt */
233 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
234 HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef* htim, uint32_t OutputChannel);
242 /* Extension Control functions ************************************************/
243 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent(TIM_HandleTypeDef* htim, uint32_t InputTrigger, uint32_t CommutationSource);
244 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent_IT(TIM_HandleTypeDef* htim, uint32_t InputTrigger, uint32_t CommutationSource);
245 HAL_StatusTypeDef HAL_TIMEx_ConfigCommutationEvent_DMA(TIM_HandleTypeDef* htim, uint32_t InputTrigger, uint32_t CommutationSource);
246 HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDef* htim, TIM_MasterConfigTypeDef * sMasterConfig);
247 HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef* htim, TIM_BreakDeadTimeConfigTypeDef *sBreakDeadTimeConfig);
248 HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef* htim, uint32_t Remap);
256 /* Extension Callback *********************************************************/
257 void HAL_TIMEx_CommutationCallback(TIM_HandleTypeDef* htim);
258 void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef* htim);
259 void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma);
267 /* Extension Peripheral State functions **************************************/
268 HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(TIM_HandleTypeDef* htim);
277 /* Private types -------------------------------------------------------------*/
278 /* Private variables ---------------------------------------------------------*/
279 /* Private constants ---------------------------------------------------------*/
280 /* Private macros ------------------------------------------------------------*/
284 #if defined (STM32F446xx)
285 #define IS_TIM_REMAP(TIM_REMAP) (((TIM_REMAP) == TIM_TIM2_TIM8_TRGO)||\
286  ((TIM_REMAP) == TIM_TIM2_ETH_PTP)||\
287  ((TIM_REMAP) == TIM_TIM2_USBFS_SOF)||\
288  ((TIM_REMAP) == TIM_TIM2_USBHS_SOF)||\
289  ((TIM_REMAP) == TIM_TIM5_GPIO)||\
290  ((TIM_REMAP) == TIM_TIM5_LSI)||\
291  ((TIM_REMAP) == TIM_TIM5_LSE)||\
292  ((TIM_REMAP) == TIM_TIM5_RTC)||\
293  ((TIM_REMAP) == TIM_TIM11_GPIO)||\
294  ((TIM_REMAP) == TIM_TIM11_SPDIFRX)||\
295  ((TIM_REMAP) == TIM_TIM11_HSE))
296 #else
297 #define IS_TIM_REMAP(TIM_REMAP) (((TIM_REMAP) == TIM_TIM2_TIM8_TRGO)||\
298  ((TIM_REMAP) == TIM_TIM2_ETH_PTP)||\
299  ((TIM_REMAP) == TIM_TIM2_USBFS_SOF)||\
300  ((TIM_REMAP) == TIM_TIM2_USBHS_SOF)||\
301  ((TIM_REMAP) == TIM_TIM5_GPIO)||\
302  ((TIM_REMAP) == TIM_TIM5_LSI)||\
303  ((TIM_REMAP) == TIM_TIM5_LSE)||\
304  ((TIM_REMAP) == TIM_TIM5_RTC)||\
305  ((TIM_REMAP) == TIM_TIM11_GPIO)||\
306  ((TIM_REMAP) == TIM_TIM11_HSE))
307 #endif /* STM32F446xx */
308 
309 #if defined(STM32F410Tx) || defined(STM32F410Cx) || defined(STM32F410Rx)
310 #define IS_TIM_SYSTEMBREAKINPUT(BREAKINPUT) (((BREAKINPUT) == TIM_SYSTEMBREAKINPUT_HARDFAULT)||\
311  ((BREAKINPUT) == TIM_SYSTEMBREAKINPUT_PVD)||\
312  ((BREAKINPUT) == TIM_SYSTEMBREAKINPUT_HARDFAULT_PVD))
313 
314 #endif /* STM32F410Tx || STM32F410Cx || STM32F410Rx */
315 
316 #define IS_TIM_DEADTIME(DEADTIME) ((DEADTIME) <= 0xFFU)
317 
321 /* Private functions ---------------------------------------------------------*/
338 #ifdef __cplusplus
339 }
340 #endif
341 
342 #endif /* __STM32F4xx_HAL_TIM_EX_H */
343 
344 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
HAL_TIM_StateTypeDef
HAL State structures definition.
Definition: stm32f4xx_hal_tim.h:265
TIM Hall sensor Configuration Structure definition.
Definition: stm32f4xx_hal_tim_ex.h:66
TIM Master configuration Structure definition.
Definition: stm32f4xx_hal_tim_ex.h:85
This file contains HAL common defines, enumeration, macros and structures definitions.
uint32_t IC1Polarity
Definition: stm32f4xx_hal_tim_ex.h:69
uint32_t OffStateRunMode
Definition: stm32f4xx_hal_tim_ex.h:98
uint32_t Commutation_Delay
Definition: stm32f4xx_hal_tim_ex.h:78
uint32_t LockLevel
Definition: stm32f4xx_hal_tim_ex.h:102
TIM Break and Dead time configuration Structure definition.
Definition: stm32f4xx_hal_tim_ex.h:96
uint32_t IC1Prescaler
Definition: stm32f4xx_hal_tim_ex.h:72
HAL_StatusTypeDef
HAL Status structures definition.
Definition: stm32f4xx_hal_def.h:57
uint32_t MasterSlaveMode
Definition: stm32f4xx_hal_tim_ex.h:89
uint32_t IC1Filter
Definition: stm32f4xx_hal_tim_ex.h:75
uint32_t AutomaticOutput
Definition: stm32f4xx_hal_tim_ex.h:110
uint32_t BreakPolarity
Definition: stm32f4xx_hal_tim_ex.h:108
uint32_t OffStateIDLEMode
Definition: stm32f4xx_hal_tim_ex.h:100
TIM Time Base Handle Structure definition.
Definition: stm32f4xx_hal_tim.h:289
uint32_t MasterOutputTrigger
Definition: stm32f4xx_hal_tim_ex.h:86
DMA handle Structure definition.
Definition: stm32f4xx_hal_dma.h:157
uint32_t DeadTime
Definition: stm32f4xx_hal_tim_ex.h:104
uint32_t BreakState
Definition: stm32f4xx_hal_tim_ex.h:106