STM32F4xx_HAL_Driver  1.8.3
stm32f4xx_hal_tim.h
Go to the documentation of this file.
1 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32F4xx_HAL_TIM_H
21 #define STM32F4xx_HAL_TIM_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32f4xx_hal_def.h"
29 
38 /* Exported types ------------------------------------------------------------*/
46 typedef struct
47 {
48  uint32_t Prescaler;
51  uint32_t CounterMode;
54  uint32_t Period;
58  uint32_t ClockDivision;
61  uint32_t RepetitionCounter;
72  uint32_t AutoReloadPreload;
75 
79 typedef struct
80 {
81  uint32_t OCMode;
84  uint32_t Pulse;
87  uint32_t OCPolarity;
90  uint32_t OCNPolarity;
94  uint32_t OCFastMode;
99  uint32_t OCIdleState;
103  uint32_t OCNIdleState;
107 
111 typedef struct
112 {
113  uint32_t OCMode;
116  uint32_t Pulse;
119  uint32_t OCPolarity;
122  uint32_t OCNPolarity;
126  uint32_t OCIdleState;
130  uint32_t OCNIdleState;
134  uint32_t ICPolarity;
137  uint32_t ICSelection;
140  uint32_t ICFilter;
143 
147 typedef struct
148 {
149  uint32_t ICPolarity;
152  uint32_t ICSelection;
155  uint32_t ICPrescaler;
158  uint32_t ICFilter;
161 
165 typedef struct
166 {
167  uint32_t EncoderMode;
170  uint32_t IC1Polarity;
173  uint32_t IC1Selection;
176  uint32_t IC1Prescaler;
179  uint32_t IC1Filter;
182  uint32_t IC2Polarity;
185  uint32_t IC2Selection;
188  uint32_t IC2Prescaler;
191  uint32_t IC2Filter;
194 
198 typedef struct
199 {
200  uint32_t ClockSource;
202  uint32_t ClockPolarity;
204  uint32_t ClockPrescaler;
206  uint32_t ClockFilter;
209 
213 typedef struct
214 {
215  uint32_t ClearInputState;
217  uint32_t ClearInputSource;
224  uint32_t ClearInputFilter;
227 
231 typedef struct
232 {
235  uint32_t MasterSlaveMode;
243 
247 typedef struct
248 {
249  uint32_t SlaveMode;
251  uint32_t InputTrigger;
253  uint32_t TriggerPolarity;
255  uint32_t TriggerPrescaler;
257  uint32_t TriggerFilter;
261 
267 typedef struct
268 {
269  uint32_t OffStateRunMode;
271  uint32_t OffStateIDLEMode;
273  uint32_t LockLevel;
275  uint32_t DeadTime;
277  uint32_t BreakState;
279  uint32_t BreakPolarity;
281  uint32_t BreakFilter;
283  uint32_t AutomaticOutput;
286 
290 typedef enum
291 {
296  HAL_TIM_STATE_ERROR = 0x04U
298 
302 typedef enum
303 {
308 
312 typedef enum
313 {
318 
322 typedef enum
323 {
330 
334 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
335 typedef struct __TIM_HandleTypeDef
336 #else
337 typedef struct
338 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
339 {
340  TIM_TypeDef *Instance;
343  DMA_HandleTypeDef *hdma[7];
345  HAL_LockTypeDef Lock;
347  __IO HAL_TIM_ChannelStateTypeDef ChannelState[4];
348  __IO HAL_TIM_ChannelStateTypeDef ChannelNState[4];
351 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
352  void (* Base_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
353  void (* Base_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
354  void (* IC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
355  void (* IC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
356  void (* OC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
357  void (* OC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
358  void (* PWM_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
359  void (* PWM_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
360  void (* OnePulse_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
361  void (* OnePulse_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
362  void (* Encoder_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
363  void (* Encoder_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
364  void (* HallSensor_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
365  void (* HallSensor_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
366  void (* PeriodElapsedCallback)(struct __TIM_HandleTypeDef *htim);
367  void (* PeriodElapsedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
368  void (* TriggerCallback)(struct __TIM_HandleTypeDef *htim);
369  void (* TriggerHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
370  void (* IC_CaptureCallback)(struct __TIM_HandleTypeDef *htim);
371  void (* IC_CaptureHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
372  void (* OC_DelayElapsedCallback)(struct __TIM_HandleTypeDef *htim);
373  void (* PWM_PulseFinishedCallback)(struct __TIM_HandleTypeDef *htim);
374  void (* PWM_PulseFinishedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
375  void (* ErrorCallback)(struct __TIM_HandleTypeDef *htim);
376  void (* CommutationCallback)(struct __TIM_HandleTypeDef *htim);
377  void (* CommutationHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
378  void (* BreakCallback)(struct __TIM_HandleTypeDef *htim);
379 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
381 
382 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
386 typedef enum
387 {
416 
420 typedef void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim);
422 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
423 
427 /* End of exported types -----------------------------------------------------*/
428 
429 /* Exported constants --------------------------------------------------------*/
437 #define TIM_CLEARINPUTSOURCE_NONE 0x00000000U
438 #define TIM_CLEARINPUTSOURCE_ETR 0x00000001U
446 #define TIM_DMABASE_CR1 0x00000000U
447 #define TIM_DMABASE_CR2 0x00000001U
448 #define TIM_DMABASE_SMCR 0x00000002U
449 #define TIM_DMABASE_DIER 0x00000003U
450 #define TIM_DMABASE_SR 0x00000004U
451 #define TIM_DMABASE_EGR 0x00000005U
452 #define TIM_DMABASE_CCMR1 0x00000006U
453 #define TIM_DMABASE_CCMR2 0x00000007U
454 #define TIM_DMABASE_CCER 0x00000008U
455 #define TIM_DMABASE_CNT 0x00000009U
456 #define TIM_DMABASE_PSC 0x0000000AU
457 #define TIM_DMABASE_ARR 0x0000000BU
458 #define TIM_DMABASE_RCR 0x0000000CU
459 #define TIM_DMABASE_CCR1 0x0000000DU
460 #define TIM_DMABASE_CCR2 0x0000000EU
461 #define TIM_DMABASE_CCR3 0x0000000FU
462 #define TIM_DMABASE_CCR4 0x00000010U
463 #define TIM_DMABASE_BDTR 0x00000011U
464 #define TIM_DMABASE_DCR 0x00000012U
465 #define TIM_DMABASE_DMAR 0x00000013U
473 #define TIM_EVENTSOURCE_UPDATE TIM_EGR_UG
474 #define TIM_EVENTSOURCE_CC1 TIM_EGR_CC1G
475 #define TIM_EVENTSOURCE_CC2 TIM_EGR_CC2G
476 #define TIM_EVENTSOURCE_CC3 TIM_EGR_CC3G
477 #define TIM_EVENTSOURCE_CC4 TIM_EGR_CC4G
478 #define TIM_EVENTSOURCE_COM TIM_EGR_COMG
479 #define TIM_EVENTSOURCE_TRIGGER TIM_EGR_TG
480 #define TIM_EVENTSOURCE_BREAK TIM_EGR_BG
488 #define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U
489 #define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P
490 #define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
498 #define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP
499 #define TIM_ETRPOLARITY_NONINVERTED 0x00000000U
507 #define TIM_ETRPRESCALER_DIV1 0x00000000U
508 #define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0
509 #define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1
510 #define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS
518 #define TIM_COUNTERMODE_UP 0x00000000U
519 #define TIM_COUNTERMODE_DOWN TIM_CR1_DIR
520 #define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0
521 #define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1
522 #define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS
530 #define TIM_CLOCKDIVISION_DIV1 0x00000000U
531 #define TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
532 #define TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
540 #define TIM_OUTPUTSTATE_DISABLE 0x00000000U
541 #define TIM_OUTPUTSTATE_ENABLE TIM_CCER_CC1E
549 #define TIM_AUTORELOAD_PRELOAD_DISABLE 0x00000000U
550 #define TIM_AUTORELOAD_PRELOAD_ENABLE TIM_CR1_ARPE
559 #define TIM_OCFAST_DISABLE 0x00000000U
560 #define TIM_OCFAST_ENABLE TIM_CCMR1_OC1FE
568 #define TIM_OUTPUTNSTATE_DISABLE 0x00000000U
569 #define TIM_OUTPUTNSTATE_ENABLE TIM_CCER_CC1NE
577 #define TIM_OCPOLARITY_HIGH 0x00000000U
578 #define TIM_OCPOLARITY_LOW TIM_CCER_CC1P
586 #define TIM_OCNPOLARITY_HIGH 0x00000000U
587 #define TIM_OCNPOLARITY_LOW TIM_CCER_CC1NP
595 #define TIM_OCIDLESTATE_SET TIM_CR2_OIS1
596 #define TIM_OCIDLESTATE_RESET 0x00000000U
604 #define TIM_OCNIDLESTATE_SET TIM_CR2_OIS1N
605 #define TIM_OCNIDLESTATE_RESET 0x00000000U
613 #define TIM_ICPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
614 #define TIM_ICPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
615 #define TIM_ICPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
623 #define TIM_ENCODERINPUTPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
624 #define TIM_ENCODERINPUTPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
632 #define TIM_ICSELECTION_DIRECTTI TIM_CCMR1_CC1S_0
633 #define TIM_ICSELECTION_INDIRECTTI TIM_CCMR1_CC1S_1
634 #define TIM_ICSELECTION_TRC TIM_CCMR1_CC1S
642 #define TIM_ICPSC_DIV1 0x00000000U
643 #define TIM_ICPSC_DIV2 TIM_CCMR1_IC1PSC_0
644 #define TIM_ICPSC_DIV4 TIM_CCMR1_IC1PSC_1
645 #define TIM_ICPSC_DIV8 TIM_CCMR1_IC1PSC
653 #define TIM_OPMODE_SINGLE TIM_CR1_OPM
654 #define TIM_OPMODE_REPETITIVE 0x00000000U
662 #define TIM_ENCODERMODE_TI1 TIM_SMCR_SMS_0
663 #define TIM_ENCODERMODE_TI2 TIM_SMCR_SMS_1
664 #define TIM_ENCODERMODE_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
672 #define TIM_IT_UPDATE TIM_DIER_UIE
673 #define TIM_IT_CC1 TIM_DIER_CC1IE
674 #define TIM_IT_CC2 TIM_DIER_CC2IE
675 #define TIM_IT_CC3 TIM_DIER_CC3IE
676 #define TIM_IT_CC4 TIM_DIER_CC4IE
677 #define TIM_IT_COM TIM_DIER_COMIE
678 #define TIM_IT_TRIGGER TIM_DIER_TIE
679 #define TIM_IT_BREAK TIM_DIER_BIE
687 #define TIM_COMMUTATION_TRGI TIM_CR2_CCUS
688 #define TIM_COMMUTATION_SOFTWARE 0x00000000U
696 #define TIM_DMA_UPDATE TIM_DIER_UDE
697 #define TIM_DMA_CC1 TIM_DIER_CC1DE
698 #define TIM_DMA_CC2 TIM_DIER_CC2DE
699 #define TIM_DMA_CC3 TIM_DIER_CC3DE
700 #define TIM_DMA_CC4 TIM_DIER_CC4DE
701 #define TIM_DMA_COM TIM_DIER_COMDE
702 #define TIM_DMA_TRIGGER TIM_DIER_TDE
710 #define TIM_CCDMAREQUEST_CC 0x00000000U
711 #define TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
719 #define TIM_FLAG_UPDATE TIM_SR_UIF
720 #define TIM_FLAG_CC1 TIM_SR_CC1IF
721 #define TIM_FLAG_CC2 TIM_SR_CC2IF
722 #define TIM_FLAG_CC3 TIM_SR_CC3IF
723 #define TIM_FLAG_CC4 TIM_SR_CC4IF
724 #define TIM_FLAG_COM TIM_SR_COMIF
725 #define TIM_FLAG_TRIGGER TIM_SR_TIF
726 #define TIM_FLAG_BREAK TIM_SR_BIF
727 #define TIM_FLAG_CC1OF TIM_SR_CC1OF
728 #define TIM_FLAG_CC2OF TIM_SR_CC2OF
729 #define TIM_FLAG_CC3OF TIM_SR_CC3OF
730 #define TIM_FLAG_CC4OF TIM_SR_CC4OF
738 #define TIM_CHANNEL_1 0x00000000U
739 #define TIM_CHANNEL_2 0x00000004U
740 #define TIM_CHANNEL_3 0x00000008U
741 #define TIM_CHANNEL_4 0x0000000CU
742 #define TIM_CHANNEL_ALL 0x0000003CU
750 #define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0
751 #define TIM_CLOCKSOURCE_ETRMODE1 TIM_TS_ETRF
752 #define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1
753 #define TIM_CLOCKSOURCE_TI1ED TIM_TS_TI1F_ED
754 #define TIM_CLOCKSOURCE_TI1 TIM_TS_TI1FP1
755 #define TIM_CLOCKSOURCE_TI2 TIM_TS_TI2FP2
756 #define TIM_CLOCKSOURCE_ITR0 TIM_TS_ITR0
757 #define TIM_CLOCKSOURCE_ITR1 TIM_TS_ITR1
758 #define TIM_CLOCKSOURCE_ITR2 TIM_TS_ITR2
759 #define TIM_CLOCKSOURCE_ITR3 TIM_TS_ITR3
767 #define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
768 #define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
769 #define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
770 #define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
771 #define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
779 #define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
780 #define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
781 #define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
782 #define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
790 #define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
791 #define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
799 #define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
800 #define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
801 #define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
802 #define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
810 #define TIM_OSSR_ENABLE TIM_BDTR_OSSR
811 #define TIM_OSSR_DISABLE 0x00000000U
819 #define TIM_OSSI_ENABLE TIM_BDTR_OSSI
820 #define TIM_OSSI_DISABLE 0x00000000U
827 #define TIM_LOCKLEVEL_OFF 0x00000000U
828 #define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
829 #define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
830 #define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
838 #define TIM_BREAK_ENABLE TIM_BDTR_BKE
839 #define TIM_BREAK_DISABLE 0x00000000U
847 #define TIM_BREAKPOLARITY_LOW 0x00000000U
848 #define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP
856 #define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
857 #define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
865 #define TIM_TRGO_RESET 0x00000000U
866 #define TIM_TRGO_ENABLE TIM_CR2_MMS_0
867 #define TIM_TRGO_UPDATE TIM_CR2_MMS_1
868 #define TIM_TRGO_OC1 (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
869 #define TIM_TRGO_OC1REF TIM_CR2_MMS_2
870 #define TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
871 #define TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
872 #define TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
880 #define TIM_MASTERSLAVEMODE_ENABLE TIM_SMCR_MSM
881 #define TIM_MASTERSLAVEMODE_DISABLE 0x00000000U
889 #define TIM_SLAVEMODE_DISABLE 0x00000000U
890 #define TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
891 #define TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
892 #define TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
893 #define TIM_SLAVEMODE_EXTERNAL1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
901 #define TIM_OCMODE_TIMING 0x00000000U
902 #define TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
903 #define TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
904 #define TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
905 #define TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
906 #define TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
907 #define TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
908 #define TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
916 #define TIM_TS_ITR0 0x00000000U
917 #define TIM_TS_ITR1 TIM_SMCR_TS_0
918 #define TIM_TS_ITR2 TIM_SMCR_TS_1
919 #define TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
920 #define TIM_TS_TI1F_ED TIM_SMCR_TS_2
921 #define TIM_TS_TI1FP1 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)
922 #define TIM_TS_TI2FP2 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
923 #define TIM_TS_ETRF (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
924 #define TIM_TS_NONE 0x0000FFFFU
932 #define TIM_TRIGGERPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
933 #define TIM_TRIGGERPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
934 #define TIM_TRIGGERPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
935 #define TIM_TRIGGERPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
936 #define TIM_TRIGGERPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
944 #define TIM_TRIGGERPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
945 #define TIM_TRIGGERPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
946 #define TIM_TRIGGERPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
947 #define TIM_TRIGGERPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
955 #define TIM_TI1SELECTION_CH1 0x00000000U
956 #define TIM_TI1SELECTION_XORCOMBINATION TIM_CR2_TI1S
964 #define TIM_DMABURSTLENGTH_1TRANSFER 0x00000000U
965 #define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U
966 #define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U
967 #define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U
968 #define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U
969 #define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U
970 #define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U
971 #define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U
972 #define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U
973 #define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U
974 #define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U
975 #define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U
976 #define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U
977 #define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U
978 #define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U
979 #define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U
980 #define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U
981 #define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U
989 #define TIM_DMA_ID_UPDATE ((uint16_t) 0x0000)
990 #define TIM_DMA_ID_CC1 ((uint16_t) 0x0001)
991 #define TIM_DMA_ID_CC2 ((uint16_t) 0x0002)
992 #define TIM_DMA_ID_CC3 ((uint16_t) 0x0003)
993 #define TIM_DMA_ID_CC4 ((uint16_t) 0x0004)
994 #define TIM_DMA_ID_COMMUTATION ((uint16_t) 0x0005)
995 #define TIM_DMA_ID_TRIGGER ((uint16_t) 0x0006)
1003 #define TIM_CCx_ENABLE 0x00000001U
1004 #define TIM_CCx_DISABLE 0x00000000U
1005 #define TIM_CCxN_ENABLE 0x00000004U
1006 #define TIM_CCxN_DISABLE 0x00000000U
1014 /* End of exported constants -------------------------------------------------*/
1015 
1016 /* Exported macros -----------------------------------------------------------*/
1025 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1026 #define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1027  (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1028  (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1029  (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1030  (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1031  (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1032  (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1033  (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1034  (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1035  (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1036  (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1037  (__HANDLE__)->Base_MspInitCallback = NULL; \
1038  (__HANDLE__)->Base_MspDeInitCallback = NULL; \
1039  (__HANDLE__)->IC_MspInitCallback = NULL; \
1040  (__HANDLE__)->IC_MspDeInitCallback = NULL; \
1041  (__HANDLE__)->OC_MspInitCallback = NULL; \
1042  (__HANDLE__)->OC_MspDeInitCallback = NULL; \
1043  (__HANDLE__)->PWM_MspInitCallback = NULL; \
1044  (__HANDLE__)->PWM_MspDeInitCallback = NULL; \
1045  (__HANDLE__)->OnePulse_MspInitCallback = NULL; \
1046  (__HANDLE__)->OnePulse_MspDeInitCallback = NULL; \
1047  (__HANDLE__)->Encoder_MspInitCallback = NULL; \
1048  (__HANDLE__)->Encoder_MspDeInitCallback = NULL; \
1049  (__HANDLE__)->HallSensor_MspInitCallback = NULL; \
1050  (__HANDLE__)->HallSensor_MspDeInitCallback = NULL; \
1051  } while(0)
1052 #else
1053 #define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1054  (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1055  (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1056  (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1057  (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1058  (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1059  (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1060  (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1061  (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1062  (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1063  (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1064  } while(0)
1065 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1066 
1072 #define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1073 
1079 #define __HAL_TIM_MOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1080 
1086 #define __HAL_TIM_DISABLE(__HANDLE__) \
1087  do { \
1088  if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1089  { \
1090  if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1091  { \
1092  (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1093  } \
1094  } \
1095  } while(0)
1096 
1104 #define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1105  do { \
1106  if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1107  { \
1108  if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1109  { \
1110  (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1111  } \
1112  } \
1113  } while(0)
1114 
1121 #define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__) (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1122 
1137 #define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1138 
1153 #define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1154 
1168 #define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER |= (__DMA__))
1169 
1183 #define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1184 
1203 #define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1204 
1223 #define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1224 
1240 #define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \
1241  == (__INTERRUPT__)) ? SET : RESET)
1242 
1257 #define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1258 
1266 #define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
1267 
1274 #define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) ((__HANDLE__)->Instance->PSC = (__PRESC__))
1275 
1282 #define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1283 
1289 #define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
1290 
1297 #define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1298  do{ \
1299  (__HANDLE__)->Instance->ARR = (__AUTORELOAD__); \
1300  (__HANDLE__)->Init.Period = (__AUTORELOAD__); \
1301  } while(0)
1302 
1308 #define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) ((__HANDLE__)->Instance->ARR)
1309 
1320 #define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1321  do{ \
1322  (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD); \
1323  (__HANDLE__)->Instance->CR1 |= (__CKD__); \
1324  (__HANDLE__)->Init.ClockDivision = (__CKD__); \
1325  } while(0)
1326 
1335 #define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__) ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
1336 
1355 #define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1356  do{ \
1357  TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__)); \
1358  TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1359  } while(0)
1360 
1376 #define __HAL_TIM_GET_ICPRESCALER(__HANDLE__, __CHANNEL__) \
1377  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC1PSC) :\
1378  ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1379  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1380  (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1381 
1394 #define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
1395  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
1396  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
1397  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
1398  ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)))
1399 
1411 #define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
1412  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
1413  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
1414  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
1415  ((__HANDLE__)->Instance->CCR4))
1416 
1428 #define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1429  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
1430  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
1431  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
1432  ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE))
1433 
1445 #define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1446  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
1447  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
1448  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
1449  ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE))
1450 
1466 #define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1467  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
1468  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
1469  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
1470  ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE))
1471 
1487 #define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1488  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
1489  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
1490  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
1491  ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE))
1492 
1501 #define __HAL_TIM_URS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS)
1502 
1514 #define __HAL_TIM_URS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS)
1515 
1531 #define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1532  do{ \
1533  TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__)); \
1534  TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1535  }while(0)
1536 
1545 #define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__) \
1546  MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__))
1547 
1551 /* End of exported macros ----------------------------------------------------*/
1552 
1553 /* Private constants ---------------------------------------------------------*/
1557 /* The counter of a timer instance is disabled only if all the CCx and CCxN
1558  channels have been disabled */
1559 #define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
1560 #define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
1564 /* End of private constants --------------------------------------------------*/
1565 
1566 /* Private macros ------------------------------------------------------------*/
1570 #define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \
1571  ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR))
1572 
1573 #define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \
1574  ((__BASE__) == TIM_DMABASE_CR2) || \
1575  ((__BASE__) == TIM_DMABASE_SMCR) || \
1576  ((__BASE__) == TIM_DMABASE_DIER) || \
1577  ((__BASE__) == TIM_DMABASE_SR) || \
1578  ((__BASE__) == TIM_DMABASE_EGR) || \
1579  ((__BASE__) == TIM_DMABASE_CCMR1) || \
1580  ((__BASE__) == TIM_DMABASE_CCMR2) || \
1581  ((__BASE__) == TIM_DMABASE_CCER) || \
1582  ((__BASE__) == TIM_DMABASE_CNT) || \
1583  ((__BASE__) == TIM_DMABASE_PSC) || \
1584  ((__BASE__) == TIM_DMABASE_ARR) || \
1585  ((__BASE__) == TIM_DMABASE_RCR) || \
1586  ((__BASE__) == TIM_DMABASE_CCR1) || \
1587  ((__BASE__) == TIM_DMABASE_CCR2) || \
1588  ((__BASE__) == TIM_DMABASE_CCR3) || \
1589  ((__BASE__) == TIM_DMABASE_CCR4) || \
1590  ((__BASE__) == TIM_DMABASE_BDTR))
1591 
1592 #define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1593 
1594 #define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \
1595  ((__MODE__) == TIM_COUNTERMODE_DOWN) || \
1596  ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \
1597  ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \
1598  ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3))
1599 
1600 #define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \
1601  ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \
1602  ((__DIV__) == TIM_CLOCKDIVISION_DIV4))
1603 
1604 #define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
1605  ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
1606 
1607 #define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \
1608  ((__STATE__) == TIM_OCFAST_ENABLE))
1609 
1610 #define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \
1611  ((__POLARITY__) == TIM_OCPOLARITY_LOW))
1612 
1613 #define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \
1614  ((__POLARITY__) == TIM_OCNPOLARITY_LOW))
1615 
1616 #define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \
1617  ((__STATE__) == TIM_OCIDLESTATE_RESET))
1618 
1619 #define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \
1620  ((__STATE__) == TIM_OCNIDLESTATE_RESET))
1621 
1622 #define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \
1623  ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING))
1624 
1625 #define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \
1626  ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \
1627  ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
1628 
1629 #define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \
1630  ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \
1631  ((__SELECTION__) == TIM_ICSELECTION_TRC))
1632 
1633 #define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \
1634  ((__PRESCALER__) == TIM_ICPSC_DIV2) || \
1635  ((__PRESCALER__) == TIM_ICPSC_DIV4) || \
1636  ((__PRESCALER__) == TIM_ICPSC_DIV8))
1637 
1638 #define IS_TIM_OPM_MODE(__MODE__) (((__MODE__) == TIM_OPMODE_SINGLE) || \
1639  ((__MODE__) == TIM_OPMODE_REPETITIVE))
1640 
1641 #define IS_TIM_ENCODER_MODE(__MODE__) (((__MODE__) == TIM_ENCODERMODE_TI1) || \
1642  ((__MODE__) == TIM_ENCODERMODE_TI2) || \
1643  ((__MODE__) == TIM_ENCODERMODE_TI12))
1644 
1645 #define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1646 
1647 #define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1648  ((__CHANNEL__) == TIM_CHANNEL_2) || \
1649  ((__CHANNEL__) == TIM_CHANNEL_3) || \
1650  ((__CHANNEL__) == TIM_CHANNEL_4) || \
1651  ((__CHANNEL__) == TIM_CHANNEL_ALL))
1652 
1653 #define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1654  ((__CHANNEL__) == TIM_CHANNEL_2))
1655 
1656 #define IS_TIM_PERIOD(__HANDLE__, __PERIOD__) ((IS_TIM_32B_COUNTER_INSTANCE(((__HANDLE__)->Instance)) == 0U) ? \
1657  (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : \
1658  ((__PERIOD__) > 0U))
1659 
1660 #define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1661  ((__CHANNEL__) == TIM_CHANNEL_2) || \
1662  ((__CHANNEL__) == TIM_CHANNEL_3))
1663 
1664 #define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
1665  ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
1666  ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
1667  ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
1668  ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
1669  ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
1670  ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
1671  ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
1672  ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
1673  ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3))
1674 
1675 #define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \
1676  ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
1677  ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \
1678  ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \
1679  ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE))
1680 
1681 #define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \
1682  ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \
1683  ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \
1684  ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8))
1685 
1686 #define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1687 
1688 #define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
1689  ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
1690 
1691 #define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \
1692  ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \
1693  ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \
1694  ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8))
1695 
1696 #define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1697 
1698 #define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \
1699  ((__STATE__) == TIM_OSSR_DISABLE))
1700 
1701 #define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \
1702  ((__STATE__) == TIM_OSSI_DISABLE))
1703 
1704 #define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \
1705  ((__LEVEL__) == TIM_LOCKLEVEL_1) || \
1706  ((__LEVEL__) == TIM_LOCKLEVEL_2) || \
1707  ((__LEVEL__) == TIM_LOCKLEVEL_3))
1708 
1709 #define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL)
1710 
1711 #define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \
1712  ((__STATE__) == TIM_BREAK_DISABLE))
1713 
1714 #define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \
1715  ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH))
1716 
1717 #define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \
1718  ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE))
1719 
1720 #define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET) || \
1721  ((__SOURCE__) == TIM_TRGO_ENABLE) || \
1722  ((__SOURCE__) == TIM_TRGO_UPDATE) || \
1723  ((__SOURCE__) == TIM_TRGO_OC1) || \
1724  ((__SOURCE__) == TIM_TRGO_OC1REF) || \
1725  ((__SOURCE__) == TIM_TRGO_OC2REF) || \
1726  ((__SOURCE__) == TIM_TRGO_OC3REF) || \
1727  ((__SOURCE__) == TIM_TRGO_OC4REF))
1728 
1729 #define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \
1730  ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE))
1731 
1732 #define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \
1733  ((__MODE__) == TIM_SLAVEMODE_RESET) || \
1734  ((__MODE__) == TIM_SLAVEMODE_GATED) || \
1735  ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \
1736  ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1))
1737 
1738 #define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \
1739  ((__MODE__) == TIM_OCMODE_PWM2))
1740 
1741 #define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \
1742  ((__MODE__) == TIM_OCMODE_ACTIVE) || \
1743  ((__MODE__) == TIM_OCMODE_INACTIVE) || \
1744  ((__MODE__) == TIM_OCMODE_TOGGLE) || \
1745  ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \
1746  ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE))
1747 
1748 #define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
1749  ((__SELECTION__) == TIM_TS_ITR1) || \
1750  ((__SELECTION__) == TIM_TS_ITR2) || \
1751  ((__SELECTION__) == TIM_TS_ITR3) || \
1752  ((__SELECTION__) == TIM_TS_TI1F_ED) || \
1753  ((__SELECTION__) == TIM_TS_TI1FP1) || \
1754  ((__SELECTION__) == TIM_TS_TI2FP2) || \
1755  ((__SELECTION__) == TIM_TS_ETRF))
1756 
1757 #define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
1758  ((__SELECTION__) == TIM_TS_ITR1) || \
1759  ((__SELECTION__) == TIM_TS_ITR2) || \
1760  ((__SELECTION__) == TIM_TS_ITR3) || \
1761  ((__SELECTION__) == TIM_TS_NONE))
1762 
1763 #define IS_TIM_TRIGGERPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED ) || \
1764  ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
1765  ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING ) || \
1766  ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING ) || \
1767  ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE ))
1768 
1769 #define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \
1770  ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \
1771  ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \
1772  ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8))
1773 
1774 #define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1775 
1776 #define IS_TIM_TI1SELECTION(__TI1SELECTION__) (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \
1777  ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION))
1778 
1779 #define IS_TIM_DMA_LENGTH(__LENGTH__) (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER) || \
1780  ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS) || \
1781  ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS) || \
1782  ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS) || \
1783  ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS) || \
1784  ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS) || \
1785  ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS) || \
1786  ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS) || \
1787  ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS) || \
1788  ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
1789  ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
1790  ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
1791  ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
1792  ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
1793  ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
1794  ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
1795  ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
1796  ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS))
1797 
1798 #define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U))
1799 
1800 #define IS_TIM_IC_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1801 
1802 #define IS_TIM_DEADTIME(__DEADTIME__) ((__DEADTIME__) <= 0xFFU)
1803 
1804 #define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER)
1805 
1806 #define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
1807  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
1808  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
1809  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
1810  ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
1811 
1812 #define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
1813  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
1814  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
1815  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
1816  ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
1817 
1818 #define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1819  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
1820  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
1821  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
1822  ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U))))
1823 
1824 #define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
1825  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
1826  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
1827  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\
1828  ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP)))
1829 
1830 #define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
1831  (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
1832  ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
1833  ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
1834  (__HANDLE__)->ChannelState[3])
1835 
1836 #define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
1837  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
1838  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
1839  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
1840  ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)))
1841 
1842 #define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
1843  (__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__); \
1844  (__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__); \
1845  (__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__); \
1846  (__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__); \
1847  } while(0)
1848 
1849 #define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\
1850  (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\
1851  ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\
1852  ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\
1853  (__HANDLE__)->ChannelNState[3])
1854 
1855 #define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
1856  (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\
1857  ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\
1858  ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\
1859  ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__)))
1860 
1861 #define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
1862  (__HANDLE__)->ChannelNState[0] = \
1863  (__CHANNEL_STATE__); \
1864  (__HANDLE__)->ChannelNState[1] = \
1865  (__CHANNEL_STATE__); \
1866  (__HANDLE__)->ChannelNState[2] = \
1867  (__CHANNEL_STATE__); \
1868  (__HANDLE__)->ChannelNState[3] = \
1869  (__CHANNEL_STATE__); \
1870  } while(0)
1871 
1875 /* End of private macros -----------------------------------------------------*/
1876 
1877 /* Include TIM HAL Extended module */
1878 #include "stm32f4xx_hal_tim_ex.h"
1879 
1880 /* Exported functions --------------------------------------------------------*/
1889 /* Time Base functions ********************************************************/
1890 HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
1891 HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);
1894 /* Blocking mode: Polling */
1895 HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);
1896 HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);
1897 /* Non-Blocking mode: Interrupt */
1898 HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
1899 HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);
1900 /* Non-Blocking mode: DMA */
1901 HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length);
1902 HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);
1911 /* Timer Output Compare functions *********************************************/
1912 HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim);
1913 HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim);
1916 /* Blocking mode: Polling */
1917 HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
1918 HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
1919 /* Non-Blocking mode: Interrupt */
1920 HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1921 HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1922 /* Non-Blocking mode: DMA */
1923 HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
1924  uint16_t Length);
1925 HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1934 /* Timer PWM functions ********************************************************/
1935 HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim);
1936 HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim);
1939 /* Blocking mode: Polling */
1940 HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
1941 HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
1942 /* Non-Blocking mode: Interrupt */
1943 HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1944 HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1945 /* Non-Blocking mode: DMA */
1946 HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
1947  uint16_t Length);
1948 HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1957 /* Timer Input Capture functions **********************************************/
1958 HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim);
1959 HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim);
1962 /* Blocking mode: Polling */
1963 HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
1964 HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
1965 /* Non-Blocking mode: Interrupt */
1966 HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1967 HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
1968 /* Non-Blocking mode: DMA */
1969 HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
1970 HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
1979 /* Timer One Pulse functions **************************************************/
1980 HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode);
1981 HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim);
1984 /* Blocking mode: Polling */
1985 HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
1986 HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
1987 /* Non-Blocking mode: Interrupt */
1988 HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
1989 HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
1998 /* Timer Encoder functions ****************************************************/
1999 HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig);
2000 HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim);
2003 /* Blocking mode: Polling */
2004 HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
2005 HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
2006 /* Non-Blocking mode: Interrupt */
2007 HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2008 HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2009 /* Non-Blocking mode: DMA */
2010 HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1,
2011  uint32_t *pData2, uint16_t Length);
2012 HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
2021 /* Interrupt Handler functions ***********************************************/
2031 /* Control functions *********************************************************/
2032 HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig,
2033  uint32_t Channel);
2034 HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig,
2035  uint32_t Channel);
2036 HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig,
2037  uint32_t Channel);
2039  uint32_t OutputChannel, uint32_t InputChannel);
2040 HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim,
2041  const TIM_ClearInputConfigTypeDef *sClearInputConfig,
2042  uint32_t Channel);
2043 HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig);
2044 HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection);
2045 HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig);
2046 HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig);
2047 HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2048  uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2049  uint32_t BurstLength);
2050 HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2051  uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2052  uint32_t BurstLength, uint32_t DataLength);
2053 HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
2054 HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2055  uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength);
2056 HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2057  uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
2058  uint32_t BurstLength, uint32_t DataLength);
2059 HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
2060 HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource);
2061 uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel);
2070 /* Callback in non blocking modes (Interrupt and DMA) *************************/
2081 
2082 /* Callbacks Register/UnRegister functions ***********************************/
2083 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2084 HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID,
2085  pTIM_CallbackTypeDef pCallback);
2086 HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID);
2087 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
2088 
2097 /* Peripheral State functions ************************************************/
2104 
2105 /* Peripheral Channel state functions ************************************************/
2116 /* End of exported functions -------------------------------------------------*/
2117 
2118 /* Private functions----------------------------------------------------------*/
2122 void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure);
2123 void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
2124 void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config);
2125 void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
2126  uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
2127 
2129 void TIM_DMAError(DMA_HandleTypeDef *hdma);
2132 void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
2133 
2134 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2136 #endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
2137 
2141 /* End of private functions --------------------------------------------------*/
2142 
2151 #ifdef __cplusplus
2152 }
2153 #endif
2154 
2155 #endif /* STM32F4xx_HAL_TIM_H */
TIM_Base_InitTypeDef Init
__IO HAL_TIM_DMABurstStateTypeDef DMABurstState
HAL_TIM_ActiveChannel Channel
__IO HAL_TIM_StateTypeDef State
TIM_TypeDef * Instance
ADC handle Structure definition.
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim)
Return the TIM One Pulse Mode handle state.
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Input Capture handle state.
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel)
Return actual state of the TIM channel.
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Base handle state.
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim)
Return the TIM PWM handle state.
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim)
Return actual state of a DMA burst operation.
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim)
Return the TIM OC handle state.
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Time base Unit according to the specified parameters in the TIM_HandleTypeDef and...
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length)
Starts the TIM Base generation in DMA mode.
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)
Stops the TIM Base generation.
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Base peripheral.
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
Starts the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)
Starts the TIM Base generation.
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
Starts the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation.
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare according to the specified parameters in the TIM_HandleTypeDef and...
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation.
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
Initializes the TIM PWM Time Base according to the specified parameters in the TIM_HandleTypeDef and ...
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
Starts the TIM PWM signal generation in DMA mode.
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM PWM MSP.
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM PWM MSP.
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM PWM signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement.
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture Time base according to the specified parameters in the TIM_HandleTy...
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in DMA mode.
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement.
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement in interrupt mode.
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
Starts the TIM Input Capture measurement in DMA mode.
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode)
Initializes the TIM One Pulse Time Base according to the specified parameters in the TIM_HandleTypeDe...
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM One Pulse MSP.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation in interrupt mode.
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM One Pulse MSP.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM One Pulse.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in DMA mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length)
Starts the TIM Encoder Interface in DMA mode.
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface in interrupt mode.
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Encoder interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig)
Initializes the TIM Encoder Interface and initialize the associated handle.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in interrupt mode.
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
This function handles TIM interrupts requests.
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Input Capture Channels according to the specified parameters in the TIM_IC_InitTy...
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
Configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM PWM channels according to the specified parameters in the TIM_OC_InitTypeDef.
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the memory to the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stop the DMA burst reading.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode in interrupt mode.
uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel)
Read the captured value from Capture Compare unit.
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection)
Selects the signal connected to the TI1 input: direct from CH1_input or a XOR combination between CH1...
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stops the TIM DMA Burst mode.
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Output Compare Channels according to the specified parameters in the TIM_OC_InitT...
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig)
Configures the clock source to be used.
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource)
Generate a software event.
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, const TIM_ClearInputConfigTypeDef *sClearInputConfig, uint32_t Channel)
Configures the OCRef clear feature.
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, uint32_t OutputChannel, uint32_t InputChannel)
Initializes the TIM One Pulse Channels according to the specified parameters in the TIM_OnePulse_Init...
HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID)
Unregister a TIM callback TIM callback is redirected to the weak predefined callback.
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection half complete callback in non-blocking mode.
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim)
Input Capture half complete callback in non-blocking mode.
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
Output Compare callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished half complete callback in non-blocking mode.
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
Timer error callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished callback in non-blocking mode.
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection callback in non-blocking mode.
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim)
Period elapsed half complete callback in non-blocking mode.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
Period elapsed callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID, pTIM_CallbackTypeDef pCallback)
Register a User TIM callback to be used instead of the weak predefined callback.
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
Input Capture callback in non-blocking mode.
HAL_TIM_ChannelStateTypeDef
TIM Channel States definition.
void(* pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim)
HAL TIM Callback pointer definition.
HAL_TIM_DMABurstStateTypeDef
DMA Burst States definition.
HAL_TIM_ActiveChannel
HAL Active channel structures definition.
HAL_TIM_CallbackIDTypeDef
HAL TIM Callback ID enumeration definition.
HAL_TIM_StateTypeDef
HAL State structures definition.
struct __TIM_HandleTypeDef else typedef struct endif TIM_HandleTypeDef
TIM Time Base Handle Structure definition.
@ HAL_TIM_CHANNEL_STATE_READY
@ HAL_TIM_CHANNEL_STATE_RESET
@ HAL_TIM_CHANNEL_STATE_BUSY
@ HAL_DMA_BURST_STATE_BUSY
@ HAL_DMA_BURST_STATE_READY
@ HAL_DMA_BURST_STATE_RESET
@ HAL_TIM_ACTIVE_CHANNEL_1
@ HAL_TIM_ACTIVE_CHANNEL_CLEARED
@ HAL_TIM_ACTIVE_CHANNEL_4
@ HAL_TIM_ACTIVE_CHANNEL_3
@ HAL_TIM_ACTIVE_CHANNEL_2
@ HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID
@ HAL_TIM_ONE_PULSE_MSPINIT_CB_ID
@ HAL_TIM_BASE_MSPDEINIT_CB_ID
@ HAL_TIM_COMMUTATION_CB_ID
@ HAL_TIM_OC_MSPINIT_CB_ID
@ HAL_TIM_OC_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_PULSE_FINISHED_CB_ID
@ HAL_TIM_ENCODER_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID
@ HAL_TIM_BREAK_CB_ID
@ HAL_TIM_ENCODER_MSPINIT_CB_ID
@ HAL_TIM_BASE_MSPINIT_CB_ID
@ HAL_TIM_COMMUTATION_HALF_CB_ID
@ HAL_TIM_IC_CAPTURE_CB_ID
@ HAL_TIM_IC_CAPTURE_HALF_CB_ID
@ HAL_TIM_OC_DELAY_ELAPSED_CB_ID
@ HAL_TIM_TRIGGER_CB_ID
@ HAL_TIM_PWM_MSPINIT_CB_ID
@ HAL_TIM_IC_MSPINIT_CB_ID
@ HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_MSPDEINIT_CB_ID
@ HAL_TIM_PERIOD_ELAPSED_CB_ID
@ HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID
@ HAL_TIM_ERROR_CB_ID
@ HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID
@ HAL_TIM_IC_MSPDEINIT_CB_ID
@ HAL_TIM_TRIGGER_HALF_CB_ID
@ HAL_TIM_STATE_TIMEOUT
@ HAL_TIM_STATE_BUSY
@ HAL_TIM_STATE_RESET
@ HAL_TIM_STATE_ERROR
@ HAL_TIM_STATE_READY
TIM Time base Configuration Structure definition.
TIM Break input(s) and Dead time configuration Structure definition.
TIM Clear Input Configuration Handle Structure definition.
Clock Configuration Handle Structure definition.
TIM Encoder Configuration Structure definition.
TIM Input Capture Configuration Structure definition.
TIM Master configuration Structure definition.
TIM Output Compare Configuration Structure definition.
TIM One Pulse Mode Configuration Structure definition.
TIM Slave configuration Structure definition.
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
Configures the TIMx External Trigger (ETR).
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture half complete callback.
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 2 configuration.
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture complete callback.
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI1 as Input.
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse half complete callback.
void TIM_DMAError(DMA_HandleTypeDef *hdma)
TIM DMA error callback.
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure)
Time Base configuration.
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
Reset interrupt callbacks to the legacy weak callbacks.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_LockTypeDef
HAL Lock structures definition
Header file of TIM HAL Extended module.
DMA handle Structure definition.