My Project
Loading...
Searching...
No Matches
stm32f3xx_hal_tim.h
Go to the documentation of this file.
1
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32F3xx_HAL_TIM_H
21#define STM32F3xx_HAL_TIM_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32f3xx_hal_def.h"
29
38/* Exported types ------------------------------------------------------------*/
46typedef struct
47{
48 uint32_t Prescaler;
51 uint32_t CounterMode;
54 uint32_t Period;
58 uint32_t ClockDivision;
75
79typedef 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
111typedef 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
147typedef struct
148{
149 uint32_t ICPolarity;
152 uint32_t ICSelection;
155 uint32_t ICPrescaler;
158 uint32_t ICFilter;
161
165typedef 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
198typedef struct
199{
200 uint32_t ClockSource;
202 uint32_t ClockPolarity;
204 uint32_t ClockPrescaler;
206 uint32_t ClockFilter;
209
213typedef struct
214{
227
233typedef struct
234{
237#if defined(TIM_CR2_MMS2)
238 uint32_t MasterOutputTrigger2;
240#endif /* TIM_CR2_MMS2 */
249
253typedef struct
254{
255 uint32_t SlaveMode;
257 uint32_t InputTrigger;
263 uint32_t TriggerFilter;
267
273typedef struct
274{
279 uint32_t LockLevel;
281 uint32_t DeadTime;
283 uint32_t BreakState;
285 uint32_t BreakPolarity;
287 uint32_t BreakFilter;
289#if defined(TIM_BDTR_BK2E)
290 uint32_t Break2State;
292 uint32_t Break2Polarity;
294 uint32_t Break2Filter;
296#endif /*TIM_BDTR_BK2E */
300
304typedef enum
305{
310 HAL_TIM_STATE_ERROR = 0x04U
312
316typedef enum
317{
322
326typedef enum
327{
332
336typedef enum
337{
342#if defined(TIM_CCER_CC5E)
343 HAL_TIM_ACTIVE_CHANNEL_5 = 0x10U,
344#endif /* TIM_CCER_CC5E */
345#if defined(TIM_CCER_CC6E)
346 HAL_TIM_ACTIVE_CHANNEL_6 = 0x20U,
347#endif /* TIM_CCER_CC6E */
350
354#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
355typedef struct __TIM_HandleTypeDef
356#else
357typedef struct
358#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
359{
371#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
372 void (* Base_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
373 void (* Base_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
374 void (* IC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
375 void (* IC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
376 void (* OC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
377 void (* OC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
378 void (* PWM_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
379 void (* PWM_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
380 void (* OnePulse_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
381 void (* OnePulse_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
382 void (* Encoder_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
383 void (* Encoder_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
384 void (* HallSensor_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
385 void (* HallSensor_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
386 void (* PeriodElapsedCallback)(struct __TIM_HandleTypeDef *htim);
387 void (* PeriodElapsedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
388 void (* TriggerCallback)(struct __TIM_HandleTypeDef *htim);
389 void (* TriggerHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
390 void (* IC_CaptureCallback)(struct __TIM_HandleTypeDef *htim);
391 void (* IC_CaptureHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
392 void (* OC_DelayElapsedCallback)(struct __TIM_HandleTypeDef *htim);
393 void (* PWM_PulseFinishedCallback)(struct __TIM_HandleTypeDef *htim);
394 void (* PWM_PulseFinishedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
395 void (* ErrorCallback)(struct __TIM_HandleTypeDef *htim);
396 void (* CommutationCallback)(struct __TIM_HandleTypeDef *htim);
397 void (* CommutationHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
398 void (* BreakCallback)(struct __TIM_HandleTypeDef *htim);
399#if defined(TIM_BDTR_BK2E)
400 void (* Break2Callback)(struct __TIM_HandleTypeDef *htim);
401#endif /* */
402#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
404
405#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
409typedef enum
410{
411 HAL_TIM_BASE_MSPINIT_CB_ID = 0x00U
412 , HAL_TIM_BASE_MSPDEINIT_CB_ID = 0x01U
413 , HAL_TIM_IC_MSPINIT_CB_ID = 0x02U
414 , HAL_TIM_IC_MSPDEINIT_CB_ID = 0x03U
415 , HAL_TIM_OC_MSPINIT_CB_ID = 0x04U
416 , HAL_TIM_OC_MSPDEINIT_CB_ID = 0x05U
417 , HAL_TIM_PWM_MSPINIT_CB_ID = 0x06U
418 , HAL_TIM_PWM_MSPDEINIT_CB_ID = 0x07U
419 , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID = 0x08U
420 , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID = 0x09U
421 , HAL_TIM_ENCODER_MSPINIT_CB_ID = 0x0AU
422 , HAL_TIM_ENCODER_MSPDEINIT_CB_ID = 0x0BU
423 , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID = 0x0CU
424 , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID = 0x0DU
425 , HAL_TIM_PERIOD_ELAPSED_CB_ID = 0x0EU
426 , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID = 0x0FU
427 , HAL_TIM_TRIGGER_CB_ID = 0x10U
428 , HAL_TIM_TRIGGER_HALF_CB_ID = 0x11U
430 , HAL_TIM_IC_CAPTURE_CB_ID = 0x12U
431 , HAL_TIM_IC_CAPTURE_HALF_CB_ID = 0x13U
432 , HAL_TIM_OC_DELAY_ELAPSED_CB_ID = 0x14U
433 , HAL_TIM_PWM_PULSE_FINISHED_CB_ID = 0x15U
434 , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U
435 , HAL_TIM_ERROR_CB_ID = 0x17U
436 , HAL_TIM_COMMUTATION_CB_ID = 0x18U
437 , HAL_TIM_COMMUTATION_HALF_CB_ID = 0x19U
438 , HAL_TIM_BREAK_CB_ID = 0x1AU
439#if defined(TIM_BDTR_BK2E)
440 , HAL_TIM_BREAK2_CB_ID = 0x1BU
441#endif /* TIM_BDTR_BK2E */
442} HAL_TIM_CallbackIDTypeDef;
443
447typedef void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim);
449#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
450
454/* End of exported types -----------------------------------------------------*/
455
456/* Exported constants --------------------------------------------------------*/
464#define TIM_CLEARINPUTSOURCE_NONE 0x00000000U
465#define TIM_CLEARINPUTSOURCE_ETR 0x00000001U
466#if defined(TIM_SMCR_OCCS)
467#define TIM_CLEARINPUTSOURCE_OCREFCLR 0x00000002U
468#endif /* TIM_SMCR_OCCS */
476#define TIM_DMABASE_CR1 0x00000000U
477#define TIM_DMABASE_CR2 0x00000001U
478#define TIM_DMABASE_SMCR 0x00000002U
479#define TIM_DMABASE_DIER 0x00000003U
480#define TIM_DMABASE_SR 0x00000004U
481#define TIM_DMABASE_EGR 0x00000005U
482#define TIM_DMABASE_CCMR1 0x00000006U
483#define TIM_DMABASE_CCMR2 0x00000007U
484#define TIM_DMABASE_CCER 0x00000008U
485#define TIM_DMABASE_CNT 0x00000009U
486#define TIM_DMABASE_PSC 0x0000000AU
487#define TIM_DMABASE_ARR 0x0000000BU
488#define TIM_DMABASE_RCR 0x0000000CU
489#define TIM_DMABASE_CCR1 0x0000000DU
490#define TIM_DMABASE_CCR2 0x0000000EU
491#define TIM_DMABASE_CCR3 0x0000000FU
492#define TIM_DMABASE_CCR4 0x00000010U
493#define TIM_DMABASE_BDTR 0x00000011U
494#define TIM_DMABASE_DCR 0x00000012U
495#define TIM_DMABASE_DMAR 0x00000013U
496#define TIM_DMABASE_OR 0x00000014U
497#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
498#define TIM_DMABASE_CCMR3 0x00000015U
499#define TIM_DMABASE_CCR5 0x00000016U
500#define TIM_DMABASE_CCR6 0x00000017U
501#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
509#define TIM_EVENTSOURCE_UPDATE TIM_EGR_UG
510#define TIM_EVENTSOURCE_CC1 TIM_EGR_CC1G
511#define TIM_EVENTSOURCE_CC2 TIM_EGR_CC2G
512#define TIM_EVENTSOURCE_CC3 TIM_EGR_CC3G
513#define TIM_EVENTSOURCE_CC4 TIM_EGR_CC4G
514#define TIM_EVENTSOURCE_COM TIM_EGR_COMG
515#define TIM_EVENTSOURCE_TRIGGER TIM_EGR_TG
516#define TIM_EVENTSOURCE_BREAK TIM_EGR_BG
517#if defined(TIM_EGR_B2G)
518#define TIM_EVENTSOURCE_BREAK2 TIM_EGR_B2G
519#endif /* TIM_EGR_B2G */
527#define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U
528#define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P
529#define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
537#define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP
538#define TIM_ETRPOLARITY_NONINVERTED 0x00000000U
546#define TIM_ETRPRESCALER_DIV1 0x00000000U
547#define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0
548#define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1
549#define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS
557#define TIM_COUNTERMODE_UP 0x00000000U
558#define TIM_COUNTERMODE_DOWN TIM_CR1_DIR
559#define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0
560#define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1
561#define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS
566#if defined(TIM_CR1_UIFREMAP)
570#define TIM_UIFREMAP_DISABLE 0x00000000U
571#define TIM_UIFREMAP_ENABLE TIM_CR1_UIFREMAP
576#endif /* TIM_CR1_UIFREMAP */
580#define TIM_CLOCKDIVISION_DIV1 0x00000000U
581#define TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
582#define TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
590#define TIM_OUTPUTSTATE_DISABLE 0x00000000U
591#define TIM_OUTPUTSTATE_ENABLE TIM_CCER_CC1E
599#define TIM_AUTORELOAD_PRELOAD_DISABLE 0x00000000U
600#define TIM_AUTORELOAD_PRELOAD_ENABLE TIM_CR1_ARPE
609#define TIM_OCFAST_DISABLE 0x00000000U
610#define TIM_OCFAST_ENABLE TIM_CCMR1_OC1FE
618#define TIM_OUTPUTNSTATE_DISABLE 0x00000000U
619#define TIM_OUTPUTNSTATE_ENABLE TIM_CCER_CC1NE
627#define TIM_OCPOLARITY_HIGH 0x00000000U
628#define TIM_OCPOLARITY_LOW TIM_CCER_CC1P
636#define TIM_OCNPOLARITY_HIGH 0x00000000U
637#define TIM_OCNPOLARITY_LOW TIM_CCER_CC1NP
645#define TIM_OCIDLESTATE_SET TIM_CR2_OIS1
646#define TIM_OCIDLESTATE_RESET 0x00000000U
654#define TIM_OCNIDLESTATE_SET TIM_CR2_OIS1N
655#define TIM_OCNIDLESTATE_RESET 0x00000000U
663#define TIM_ICPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
664#define TIM_ICPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
665#define TIM_ICPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
673#define TIM_ENCODERINPUTPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
674#define TIM_ENCODERINPUTPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
682#define TIM_ICSELECTION_DIRECTTI TIM_CCMR1_CC1S_0
683#define TIM_ICSELECTION_INDIRECTTI TIM_CCMR1_CC1S_1
684#define TIM_ICSELECTION_TRC TIM_CCMR1_CC1S
692#define TIM_ICPSC_DIV1 0x00000000U
693#define TIM_ICPSC_DIV2 TIM_CCMR1_IC1PSC_0
694#define TIM_ICPSC_DIV4 TIM_CCMR1_IC1PSC_1
695#define TIM_ICPSC_DIV8 TIM_CCMR1_IC1PSC
703#define TIM_OPMODE_SINGLE TIM_CR1_OPM
704#define TIM_OPMODE_REPETITIVE 0x00000000U
712#define TIM_ENCODERMODE_TI1 TIM_SMCR_SMS_0
713#define TIM_ENCODERMODE_TI2 TIM_SMCR_SMS_1
714#define TIM_ENCODERMODE_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
722#define TIM_IT_UPDATE TIM_DIER_UIE
723#define TIM_IT_CC1 TIM_DIER_CC1IE
724#define TIM_IT_CC2 TIM_DIER_CC2IE
725#define TIM_IT_CC3 TIM_DIER_CC3IE
726#define TIM_IT_CC4 TIM_DIER_CC4IE
727#define TIM_IT_COM TIM_DIER_COMIE
728#define TIM_IT_TRIGGER TIM_DIER_TIE
729#define TIM_IT_BREAK TIM_DIER_BIE
737#define TIM_COMMUTATION_TRGI TIM_CR2_CCUS
738#define TIM_COMMUTATION_SOFTWARE 0x00000000U
746#define TIM_DMA_UPDATE TIM_DIER_UDE
747#define TIM_DMA_CC1 TIM_DIER_CC1DE
748#define TIM_DMA_CC2 TIM_DIER_CC2DE
749#define TIM_DMA_CC3 TIM_DIER_CC3DE
750#define TIM_DMA_CC4 TIM_DIER_CC4DE
751#define TIM_DMA_COM TIM_DIER_COMDE
752#define TIM_DMA_TRIGGER TIM_DIER_TDE
760#define TIM_CCDMAREQUEST_CC 0x00000000U
761#define TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
769#define TIM_FLAG_UPDATE TIM_SR_UIF
770#define TIM_FLAG_CC1 TIM_SR_CC1IF
771#define TIM_FLAG_CC2 TIM_SR_CC2IF
772#define TIM_FLAG_CC3 TIM_SR_CC3IF
773#define TIM_FLAG_CC4 TIM_SR_CC4IF
774#if defined(TIM_SR_CC5IF)
775#define TIM_FLAG_CC5 TIM_SR_CC5IF
776#endif /* TIM_SR_CC5IF */
777#if defined(TIM_SR_CC6IF)
778#define TIM_FLAG_CC6 TIM_SR_CC6IF
779#endif /* TIM_SR_CC6IF */
780#define TIM_FLAG_COM TIM_SR_COMIF
781#define TIM_FLAG_TRIGGER TIM_SR_TIF
782#define TIM_FLAG_BREAK TIM_SR_BIF
783#if defined(TIM_SR_B2IF)
784#define TIM_FLAG_BREAK2 TIM_SR_B2IF
785#endif /* TIM_SR_B2IF */
786#define TIM_FLAG_CC1OF TIM_SR_CC1OF
787#define TIM_FLAG_CC2OF TIM_SR_CC2OF
788#define TIM_FLAG_CC3OF TIM_SR_CC3OF
789#define TIM_FLAG_CC4OF TIM_SR_CC4OF
797#define TIM_CHANNEL_1 0x00000000U
798#define TIM_CHANNEL_2 0x00000004U
799#define TIM_CHANNEL_3 0x00000008U
800#define TIM_CHANNEL_4 0x0000000CU
801#if defined(TIM_CCER_CC5E)
802#define TIM_CHANNEL_5 0x00000010U
803#endif /* TIM_CCER_CC5E */
804#if defined(TIM_CCER_CC6E)
805#define TIM_CHANNEL_6 0x00000014U
806#endif /* TIM_CCER_CC6E */
807#define TIM_CHANNEL_ALL 0x0000003CU
815#define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0
816#define TIM_CLOCKSOURCE_ETRMODE1 TIM_TS_ETRF
817#define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1
818#define TIM_CLOCKSOURCE_TI1ED TIM_TS_TI1F_ED
819#define TIM_CLOCKSOURCE_TI1 TIM_TS_TI1FP1
820#define TIM_CLOCKSOURCE_TI2 TIM_TS_TI2FP2
821#define TIM_CLOCKSOURCE_ITR0 TIM_TS_ITR0
822#define TIM_CLOCKSOURCE_ITR1 TIM_TS_ITR1
823#define TIM_CLOCKSOURCE_ITR2 TIM_TS_ITR2
824#define TIM_CLOCKSOURCE_ITR3 TIM_TS_ITR3
832#define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
833#define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
834#define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
835#define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
836#define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
844#define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
845#define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
846#define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
847#define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
855#define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
856#define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
864#define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
865#define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
866#define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
867#define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
875#define TIM_OSSR_ENABLE TIM_BDTR_OSSR
876#define TIM_OSSR_DISABLE 0x00000000U
884#define TIM_OSSI_ENABLE TIM_BDTR_OSSI
885#define TIM_OSSI_DISABLE 0x00000000U
892#define TIM_LOCKLEVEL_OFF 0x00000000U
893#define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
894#define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
895#define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
903#define TIM_BREAK_ENABLE TIM_BDTR_BKE
904#define TIM_BREAK_DISABLE 0x00000000U
912#define TIM_BREAKPOLARITY_LOW 0x00000000U
913#define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP
918#if defined(TIM_BDTR_BK2E)
922#define TIM_BREAK2_DISABLE 0x00000000U
923#define TIM_BREAK2_ENABLE TIM_BDTR_BK2E
931#define TIM_BREAK2POLARITY_LOW 0x00000000U
932#define TIM_BREAK2POLARITY_HIGH TIM_BDTR_BK2P
936#endif /* TIM_BDTR_BK2E */
937
941#define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
942#define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
947#if defined(TIM_CCR5_CCR5)
951#define TIM_GROUPCH5_NONE 0x00000000U
952#define TIM_GROUPCH5_OC1REFC TIM_CCR5_GC5C1
953#define TIM_GROUPCH5_OC2REFC TIM_CCR5_GC5C2
954#define TIM_GROUPCH5_OC3REFC TIM_CCR5_GC5C3
958#endif /* TIM_CCR5_CCR5 */
959
963#define TIM_TRGO_RESET 0x00000000U
964#define TIM_TRGO_ENABLE TIM_CR2_MMS_0
965#define TIM_TRGO_UPDATE TIM_CR2_MMS_1
966#define TIM_TRGO_OC1 (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
967#define TIM_TRGO_OC1REF TIM_CR2_MMS_2
968#define TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
969#define TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
970#define TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
975#if defined(TIM_CR2_MMS2)
979#define TIM_TRGO2_RESET 0x00000000U
980#define TIM_TRGO2_ENABLE TIM_CR2_MMS2_0
981#define TIM_TRGO2_UPDATE TIM_CR2_MMS2_1
982#define TIM_TRGO2_OC1 (TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
983#define TIM_TRGO2_OC1REF TIM_CR2_MMS2_2
984#define TIM_TRGO2_OC2REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0)
985#define TIM_TRGO2_OC3REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1)
986#define TIM_TRGO2_OC4REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
987#define TIM_TRGO2_OC5REF TIM_CR2_MMS2_3
988#define TIM_TRGO2_OC6REF (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_0)
989#define TIM_TRGO2_OC4REF_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1)
990#define TIM_TRGO2_OC6REF_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
991#define TIM_TRGO2_OC4REF_RISING_OC6REF_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2)
992#define TIM_TRGO2_OC4REF_RISING_OC6REF_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0)
993#define TIM_TRGO2_OC5REF_RISING_OC6REF_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 |TIM_CR2_MMS2_1)
994#define TIM_TRGO2_OC5REF_RISING_OC6REF_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
998#endif /* TIM_CR2_MMS2 */
999
1003#define TIM_MASTERSLAVEMODE_ENABLE TIM_SMCR_MSM
1004#define TIM_MASTERSLAVEMODE_DISABLE 0x00000000U
1012#define TIM_SLAVEMODE_DISABLE 0x00000000U
1013#define TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
1014#define TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
1015#define TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
1016#define TIM_SLAVEMODE_EXTERNAL1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
1017#if defined (TIM_SMCR_SMS_3)
1018#define TIM_SLAVEMODE_COMBINED_RESETTRIGGER TIM_SMCR_SMS_3
1019#endif /* TIM_SMCR_SMS_3 */
1027#define TIM_OCMODE_TIMING 0x00000000U
1028#define TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
1029#define TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
1030#define TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
1031#define TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
1032#define TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
1033#define TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
1034#define TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
1035#if defined(TIM_CCMR1_OC1M_3)
1036#define TIM_OCMODE_RETRIGERRABLE_OPM1 TIM_CCMR1_OC1M_3
1037#define TIM_OCMODE_RETRIGERRABLE_OPM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0)
1038#define TIM_OCMODE_COMBINED_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_2)
1039#define TIM_OCMODE_COMBINED_PWM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_2)
1040#define TIM_OCMODE_ASSYMETRIC_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2)
1041#define TIM_OCMODE_ASSYMETRIC_PWM2 TIM_CCMR1_OC1M
1042#endif /* TIM_CCMR1_OC1M_3 */
1050#define TIM_TS_ITR0 0x00000000U
1051#define TIM_TS_ITR1 TIM_SMCR_TS_0
1052#define TIM_TS_ITR2 TIM_SMCR_TS_1
1053#define TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
1054#define TIM_TS_TI1F_ED TIM_SMCR_TS_2
1055#define TIM_TS_TI1FP1 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)
1056#define TIM_TS_TI2FP2 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
1057#define TIM_TS_ETRF (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
1058#define TIM_TS_NONE 0x0000FFFFU
1066#define TIM_TRIGGERPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
1067#define TIM_TRIGGERPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
1068#define TIM_TRIGGERPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
1069#define TIM_TRIGGERPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
1070#define TIM_TRIGGERPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
1078#define TIM_TRIGGERPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
1079#define TIM_TRIGGERPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
1080#define TIM_TRIGGERPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
1081#define TIM_TRIGGERPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
1089#define TIM_TI1SELECTION_CH1 0x00000000U
1090#define TIM_TI1SELECTION_XORCOMBINATION TIM_CR2_TI1S
1098#define TIM_DMABURSTLENGTH_1TRANSFER 0x00000000U
1099#define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U
1100#define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U
1101#define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U
1102#define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U
1103#define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U
1104#define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U
1105#define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U
1106#define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U
1107#define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U
1108#define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U
1109#define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U
1110#define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U
1111#define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U
1112#define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U
1113#define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U
1114#define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U
1115#define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U
1123#define TIM_DMA_ID_UPDATE ((uint16_t) 0x0000)
1124#define TIM_DMA_ID_CC1 ((uint16_t) 0x0001)
1125#define TIM_DMA_ID_CC2 ((uint16_t) 0x0002)
1126#define TIM_DMA_ID_CC3 ((uint16_t) 0x0003)
1127#define TIM_DMA_ID_CC4 ((uint16_t) 0x0004)
1128#define TIM_DMA_ID_COMMUTATION ((uint16_t) 0x0005)
1129#define TIM_DMA_ID_TRIGGER ((uint16_t) 0x0006)
1137#define TIM_CCx_ENABLE 0x00000001U
1138#define TIM_CCx_DISABLE 0x00000000U
1139#define TIM_CCxN_ENABLE 0x00000004U
1140#define TIM_CCxN_DISABLE 0x00000000U
1148/* End of exported constants -------------------------------------------------*/
1149
1150/* Exported macros -----------------------------------------------------------*/
1159#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1160#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1161 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1162 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1163 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1164 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1165 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1166 (__HANDLE__)->ChannelState[4] = HAL_TIM_CHANNEL_STATE_RESET; \
1167 (__HANDLE__)->ChannelState[5] = HAL_TIM_CHANNEL_STATE_RESET; \
1168 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1169 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1170 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1171 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1172 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1173 (__HANDLE__)->Base_MspInitCallback = NULL; \
1174 (__HANDLE__)->Base_MspDeInitCallback = NULL; \
1175 (__HANDLE__)->IC_MspInitCallback = NULL; \
1176 (__HANDLE__)->IC_MspDeInitCallback = NULL; \
1177 (__HANDLE__)->OC_MspInitCallback = NULL; \
1178 (__HANDLE__)->OC_MspDeInitCallback = NULL; \
1179 (__HANDLE__)->PWM_MspInitCallback = NULL; \
1180 (__HANDLE__)->PWM_MspDeInitCallback = NULL; \
1181 (__HANDLE__)->OnePulse_MspInitCallback = NULL; \
1182 (__HANDLE__)->OnePulse_MspDeInitCallback = NULL; \
1183 (__HANDLE__)->Encoder_MspInitCallback = NULL; \
1184 (__HANDLE__)->Encoder_MspDeInitCallback = NULL; \
1185 (__HANDLE__)->HallSensor_MspInitCallback = NULL; \
1186 (__HANDLE__)->HallSensor_MspDeInitCallback = NULL; \
1187 } while(0)
1188#else
1189#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1190 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1191 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1192 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1193 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1194 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1195 (__HANDLE__)->ChannelState[4] = HAL_TIM_CHANNEL_STATE_RESET; \
1196 (__HANDLE__)->ChannelState[5] = HAL_TIM_CHANNEL_STATE_RESET; \
1197 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1198 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1199 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1200 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1201 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1202 } while(0)
1203#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1204
1210#define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1211
1217#define __HAL_TIM_MOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1218
1224#define __HAL_TIM_DISABLE(__HANDLE__) \
1225 do { \
1226 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1227 { \
1228 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1229 { \
1230 (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1231 } \
1232 } \
1233 } while(0)
1234
1242#define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1243 do { \
1244 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1245 { \
1246 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1247 { \
1248 (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1249 } \
1250 } \
1251 } while(0)
1252
1259#define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__) (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1260
1275#define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1276
1291#define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1292
1306#define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER |= (__DMA__))
1307
1321#define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1322
1345#define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1346
1369#define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1370
1386#define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \
1387 == (__INTERRUPT__)) ? SET : RESET)
1388
1403#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1404#if defined(TIM_CR1_UIFREMAP)
1405
1414#define __HAL_TIM_UIFREMAP_ENABLE(__HANDLE__) (((__HANDLE__)->Instance->CR1 |= TIM_CR1_UIFREMAP))
1415
1422#define __HAL_TIM_UIFREMAP_DISABLE(__HANDLE__) (((__HANDLE__)->Instance->CR1 &= ~TIM_CR1_UIFREMAP))
1423
1430#define __HAL_TIM_GET_UIFCPY(__COUNTER__) (((__COUNTER__) & (TIM_CNT_UIFCPY)) == (TIM_CNT_UIFCPY))
1431#endif /* TIM_CR1_UIFREMAP */
1432
1440#define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
1441
1448#define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) ((__HANDLE__)->Instance->PSC = (__PRESC__))
1449
1459#define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1460
1466#define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
1467
1474#define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1475 do{ \
1476 (__HANDLE__)->Instance->ARR = (__AUTORELOAD__); \
1477 (__HANDLE__)->Init.Period = (__AUTORELOAD__); \
1478 } while(0)
1479
1485#define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) ((__HANDLE__)->Instance->ARR)
1486
1497#define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1498 do{ \
1499 (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD); \
1500 (__HANDLE__)->Instance->CR1 |= (__CKD__); \
1501 (__HANDLE__)->Init.ClockDivision = (__CKD__); \
1502 } while(0)
1503
1512#define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__) ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
1513
1532#define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1533 do{ \
1534 TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__)); \
1535 TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1536 } while(0)
1537
1553#define __HAL_TIM_GET_ICPRESCALER(__HANDLE__, __CHANNEL__) \
1554 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC1PSC) :\
1555 ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1556 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1557 (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1558
1574#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1575#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
1576 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
1577 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
1578 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
1579 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)) :\
1580 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCR5 = (__COMPARE__)) :\
1581 ((__HANDLE__)->Instance->CCR6 = (__COMPARE__)))
1582#else
1583#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
1584 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
1585 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
1586 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
1587 ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)))
1588#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1589
1604#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1605#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
1606 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
1607 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
1608 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
1609 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCR4) :\
1610 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCR5) :\
1611 ((__HANDLE__)->Instance->CCR6))
1612#else
1613#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
1614 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
1615 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
1616 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
1617 ((__HANDLE__)->Instance->CCR4))
1618#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1619
1634#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1635#define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1636 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
1637 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
1638 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
1639 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE) :\
1640 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC5PE) :\
1641 ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC6PE))
1642#else
1643#define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1644 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
1645 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
1646 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
1647 ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE))
1648#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1649
1664#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1665#define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1666 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
1667 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
1668 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
1669 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE) :\
1670 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC5PE) :\
1671 ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC6PE))
1672#else
1673#define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1674 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
1675 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
1676 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
1677 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE))
1678#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1679
1698#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1699#define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1700 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
1701 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
1702 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
1703 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE) :\
1704 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC5FE) :\
1705 ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC6FE))
1706#else
1707#define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1708 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
1709 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
1710 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
1711 ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE))
1712#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1713
1732#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1733#define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1734 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
1735 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
1736 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
1737 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE) :\
1738 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE) :\
1739 ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE))
1740#else
1741#define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1742 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
1743 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
1744 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
1745 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE))
1746#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1747
1756#define __HAL_TIM_URS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS)
1757
1769#define __HAL_TIM_URS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS)
1770
1786#define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1787 do{ \
1788 TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__)); \
1789 TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1790 }while(0)
1791
1800#define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__) \
1801 MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__))
1802
1806/* End of exported macros ----------------------------------------------------*/
1807
1808/* Private constants ---------------------------------------------------------*/
1812/* The counter of a timer instance is disabled only if all the CCx and CCxN
1813 channels have been disabled */
1814#define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
1815#define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
1819/* End of private constants --------------------------------------------------*/
1820
1821/* Private macros ------------------------------------------------------------*/
1825#if defined(TIM_SMCR_OCCS)
1826#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \
1827 ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR) || \
1828 ((__MODE__) == TIM_CLEARINPUTSOURCE_OCREFCLR))
1829#else
1830#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \
1831 ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR))
1832#endif /* TIM_SMCR_OCCS */
1833
1834#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1835#define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \
1836 ((__BASE__) == TIM_DMABASE_CR2) || \
1837 ((__BASE__) == TIM_DMABASE_SMCR) || \
1838 ((__BASE__) == TIM_DMABASE_DIER) || \
1839 ((__BASE__) == TIM_DMABASE_SR) || \
1840 ((__BASE__) == TIM_DMABASE_EGR) || \
1841 ((__BASE__) == TIM_DMABASE_CCMR1) || \
1842 ((__BASE__) == TIM_DMABASE_CCMR2) || \
1843 ((__BASE__) == TIM_DMABASE_CCER) || \
1844 ((__BASE__) == TIM_DMABASE_CNT) || \
1845 ((__BASE__) == TIM_DMABASE_PSC) || \
1846 ((__BASE__) == TIM_DMABASE_ARR) || \
1847 ((__BASE__) == TIM_DMABASE_RCR) || \
1848 ((__BASE__) == TIM_DMABASE_CCR1) || \
1849 ((__BASE__) == TIM_DMABASE_CCR2) || \
1850 ((__BASE__) == TIM_DMABASE_CCR3) || \
1851 ((__BASE__) == TIM_DMABASE_CCR4) || \
1852 ((__BASE__) == TIM_DMABASE_BDTR) || \
1853 ((__BASE__) == TIM_DMABASE_CCMR3) || \
1854 ((__BASE__) == TIM_DMABASE_CCR5) || \
1855 ((__BASE__) == TIM_DMABASE_CCR6) || \
1856 ((__BASE__) == TIM_DMABASE_OR))
1857#else
1858#define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \
1859 ((__BASE__) == TIM_DMABASE_CR2) || \
1860 ((__BASE__) == TIM_DMABASE_SMCR) || \
1861 ((__BASE__) == TIM_DMABASE_DIER) || \
1862 ((__BASE__) == TIM_DMABASE_SR) || \
1863 ((__BASE__) == TIM_DMABASE_EGR) || \
1864 ((__BASE__) == TIM_DMABASE_CCMR1) || \
1865 ((__BASE__) == TIM_DMABASE_CCMR2) || \
1866 ((__BASE__) == TIM_DMABASE_CCER) || \
1867 ((__BASE__) == TIM_DMABASE_CNT) || \
1868 ((__BASE__) == TIM_DMABASE_PSC) || \
1869 ((__BASE__) == TIM_DMABASE_ARR) || \
1870 ((__BASE__) == TIM_DMABASE_RCR) || \
1871 ((__BASE__) == TIM_DMABASE_CCR1) || \
1872 ((__BASE__) == TIM_DMABASE_CCR2) || \
1873 ((__BASE__) == TIM_DMABASE_CCR3) || \
1874 ((__BASE__) == TIM_DMABASE_CCR4) || \
1875 ((__BASE__) == TIM_DMABASE_BDTR) || \
1876 ((__BASE__) == TIM_DMABASE_OR))
1877#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
1878
1879#if defined(TIM_EGR_B2G)
1880#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFE00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1881#else
1882#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1883#endif /* TIM_EGR_B2G */
1884
1885#define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \
1886 ((__MODE__) == TIM_COUNTERMODE_DOWN) || \
1887 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \
1888 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \
1889 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3))
1890
1891#if defined(TIM_CR1_UIFREMAP)
1892#define IS_TIM_UIFREMAP_MODE(__MODE__) (((__MODE__) == TIM_UIFREMAP_DISABLE) || \
1893 ((__MODE__) == TIM_UIFREMAP_ENABLE))
1894
1895#endif /* TIM_CR1_UIFREMAP */
1896#define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \
1897 ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \
1898 ((__DIV__) == TIM_CLOCKDIVISION_DIV4))
1899
1900#define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
1901 ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
1902
1903#define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \
1904 ((__STATE__) == TIM_OCFAST_ENABLE))
1905
1906#define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \
1907 ((__POLARITY__) == TIM_OCPOLARITY_LOW))
1908
1909#define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \
1910 ((__POLARITY__) == TIM_OCNPOLARITY_LOW))
1911
1912#define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \
1913 ((__STATE__) == TIM_OCIDLESTATE_RESET))
1914
1915#define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \
1916 ((__STATE__) == TIM_OCNIDLESTATE_RESET))
1917
1918#define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \
1919 ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING))
1920
1921#define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \
1922 ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \
1923 ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
1924
1925#define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \
1926 ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \
1927 ((__SELECTION__) == TIM_ICSELECTION_TRC))
1928
1929#define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \
1930 ((__PRESCALER__) == TIM_ICPSC_DIV2) || \
1931 ((__PRESCALER__) == TIM_ICPSC_DIV4) || \
1932 ((__PRESCALER__) == TIM_ICPSC_DIV8))
1933
1934#define IS_TIM_OPM_MODE(__MODE__) (((__MODE__) == TIM_OPMODE_SINGLE) || \
1935 ((__MODE__) == TIM_OPMODE_REPETITIVE))
1936
1937#define IS_TIM_ENCODER_MODE(__MODE__) (((__MODE__) == TIM_ENCODERMODE_TI1) || \
1938 ((__MODE__) == TIM_ENCODERMODE_TI2) || \
1939 ((__MODE__) == TIM_ENCODERMODE_TI12))
1940
1941#define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1942
1943#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
1944#define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1945 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1946 ((__CHANNEL__) == TIM_CHANNEL_3) || \
1947 ((__CHANNEL__) == TIM_CHANNEL_4) || \
1948 ((__CHANNEL__) == TIM_CHANNEL_5) || \
1949 ((__CHANNEL__) == TIM_CHANNEL_6) || \
1950 ((__CHANNEL__) == TIM_CHANNEL_ALL))
1951#else
1952#define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1953 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1954 ((__CHANNEL__) == TIM_CHANNEL_3) || \
1955 ((__CHANNEL__) == TIM_CHANNEL_4) || \
1956 ((__CHANNEL__) == TIM_CHANNEL_ALL))
1957#endif /* TIM_CCER_CC5E &&TIM_CCER_CC6E */
1958
1959#define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1960 ((__CHANNEL__) == TIM_CHANNEL_2))
1961
1962#define IS_TIM_PERIOD(__HANDLE__, __PERIOD__) \
1963 ((IS_TIM_32B_COUNTER_INSTANCE(((__HANDLE__)->Instance)) == 0U) ? (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : ((__PERIOD__) > 0U))
1964
1965#define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1966 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1967 ((__CHANNEL__) == TIM_CHANNEL_3))
1968
1969#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
1970 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
1971 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
1972 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
1973 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
1974 ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
1975 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
1976 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
1977 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
1978 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3))
1979
1980#define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \
1981 ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
1982 ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \
1983 ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \
1984 ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE))
1985
1986#define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \
1987 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \
1988 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \
1989 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8))
1990
1991#define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1992
1993#define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
1994 ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
1995
1996#define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \
1997 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \
1998 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \
1999 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8))
2000
2001#define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
2002
2003#define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \
2004 ((__STATE__) == TIM_OSSR_DISABLE))
2005
2006#define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \
2007 ((__STATE__) == TIM_OSSI_DISABLE))
2008
2009#define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \
2010 ((__LEVEL__) == TIM_LOCKLEVEL_1) || \
2011 ((__LEVEL__) == TIM_LOCKLEVEL_2) || \
2012 ((__LEVEL__) == TIM_LOCKLEVEL_3))
2013
2014#define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL)
2015
2016
2017#define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \
2018 ((__STATE__) == TIM_BREAK_DISABLE))
2019
2020#define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \
2021 ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH))
2022
2023#if defined(TIM_BDTR_BK2E)
2024#define IS_TIM_BREAK2_STATE(__STATE__) (((__STATE__) == TIM_BREAK2_ENABLE) || \
2025 ((__STATE__) == TIM_BREAK2_DISABLE))
2026
2027#define IS_TIM_BREAK2_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAK2POLARITY_LOW) || \
2028 ((__POLARITY__) == TIM_BREAK2POLARITY_HIGH))
2029#endif /* TIM_BDTR_BK2E */
2030
2031#define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \
2032 ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE))
2033
2034#if defined(TIM_CCR5_CCR5)
2035#define IS_TIM_GROUPCH5(__OCREF__) ((((__OCREF__) & 0x1FFFFFFFU) == 0x00000000U))
2036#endif /* TIM_CCR5_CCR5 */
2037
2038#define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET) || \
2039 ((__SOURCE__) == TIM_TRGO_ENABLE) || \
2040 ((__SOURCE__) == TIM_TRGO_UPDATE) || \
2041 ((__SOURCE__) == TIM_TRGO_OC1) || \
2042 ((__SOURCE__) == TIM_TRGO_OC1REF) || \
2043 ((__SOURCE__) == TIM_TRGO_OC2REF) || \
2044 ((__SOURCE__) == TIM_TRGO_OC3REF) || \
2045 ((__SOURCE__) == TIM_TRGO_OC4REF))
2046
2047#if defined(TIM_CR2_MMS2)
2048#define IS_TIM_TRGO2_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO2_RESET) || \
2049 ((__SOURCE__) == TIM_TRGO2_ENABLE) || \
2050 ((__SOURCE__) == TIM_TRGO2_UPDATE) || \
2051 ((__SOURCE__) == TIM_TRGO2_OC1) || \
2052 ((__SOURCE__) == TIM_TRGO2_OC1REF) || \
2053 ((__SOURCE__) == TIM_TRGO2_OC2REF) || \
2054 ((__SOURCE__) == TIM_TRGO2_OC3REF) || \
2055 ((__SOURCE__) == TIM_TRGO2_OC3REF) || \
2056 ((__SOURCE__) == TIM_TRGO2_OC4REF) || \
2057 ((__SOURCE__) == TIM_TRGO2_OC5REF) || \
2058 ((__SOURCE__) == TIM_TRGO2_OC6REF) || \
2059 ((__SOURCE__) == TIM_TRGO2_OC4REF_RISINGFALLING) || \
2060 ((__SOURCE__) == TIM_TRGO2_OC6REF_RISINGFALLING) || \
2061 ((__SOURCE__) == TIM_TRGO2_OC4REF_RISING_OC6REF_RISING) || \
2062 ((__SOURCE__) == TIM_TRGO2_OC4REF_RISING_OC6REF_FALLING) || \
2063 ((__SOURCE__) == TIM_TRGO2_OC5REF_RISING_OC6REF_RISING) || \
2064 ((__SOURCE__) == TIM_TRGO2_OC5REF_RISING_OC6REF_FALLING))
2065#endif /* TIM_CR2_MMS2 */
2066
2067#define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \
2068 ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE))
2069
2070#if defined (TIM_SMCR_SMS_3)
2071#define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \
2072 ((__MODE__) == TIM_SLAVEMODE_RESET) || \
2073 ((__MODE__) == TIM_SLAVEMODE_GATED) || \
2074 ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \
2075 ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1) || \
2076 ((__MODE__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER))
2077#else
2078#define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \
2079 ((__MODE__) == TIM_SLAVEMODE_RESET) || \
2080 ((__MODE__) == TIM_SLAVEMODE_GATED) || \
2081 ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \
2082 ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1))
2083#endif /* TIM_SMCR_SMS_3 */
2084
2085#if defined(TIM_CCMR1_OC1M_3)
2086#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \
2087 ((__MODE__) == TIM_OCMODE_PWM2) || \
2088 ((__MODE__) == TIM_OCMODE_COMBINED_PWM1) || \
2089 ((__MODE__) == TIM_OCMODE_COMBINED_PWM2) || \
2090 ((__MODE__) == TIM_OCMODE_ASSYMETRIC_PWM1) || \
2091 ((__MODE__) == TIM_OCMODE_ASSYMETRIC_PWM2))
2092#else
2093#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \
2094 ((__MODE__) == TIM_OCMODE_PWM2))
2095#endif /* TIM_CCMR1_OC1M_3 */
2096
2097#if defined(TIM_CCMR1_OC1M_3)
2098#define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \
2099 ((__MODE__) == TIM_OCMODE_ACTIVE) || \
2100 ((__MODE__) == TIM_OCMODE_INACTIVE) || \
2101 ((__MODE__) == TIM_OCMODE_TOGGLE) || \
2102 ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \
2103 ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE) || \
2104 ((__MODE__) == TIM_OCMODE_RETRIGERRABLE_OPM1) || \
2105 ((__MODE__) == TIM_OCMODE_RETRIGERRABLE_OPM2))
2106#else
2107#define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \
2108 ((__MODE__) == TIM_OCMODE_ACTIVE) || \
2109 ((__MODE__) == TIM_OCMODE_INACTIVE) || \
2110 ((__MODE__) == TIM_OCMODE_TOGGLE) || \
2111 ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \
2112 ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE))
2113#endif /* TIM_CCMR1_OC1M_3 */
2114
2115#define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
2116 ((__SELECTION__) == TIM_TS_ITR1) || \
2117 ((__SELECTION__) == TIM_TS_ITR2) || \
2118 ((__SELECTION__) == TIM_TS_ITR3) || \
2119 ((__SELECTION__) == TIM_TS_TI1F_ED) || \
2120 ((__SELECTION__) == TIM_TS_TI1FP1) || \
2121 ((__SELECTION__) == TIM_TS_TI2FP2) || \
2122 ((__SELECTION__) == TIM_TS_ETRF))
2123
2124#define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
2125 ((__SELECTION__) == TIM_TS_ITR1) || \
2126 ((__SELECTION__) == TIM_TS_ITR2) || \
2127 ((__SELECTION__) == TIM_TS_ITR3) || \
2128 ((__SELECTION__) == TIM_TS_NONE))
2129
2130#define IS_TIM_TRIGGERPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED ) || \
2131 ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
2132 ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING ) || \
2133 ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING ) || \
2134 ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE ))
2135
2136#define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \
2137 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \
2138 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \
2139 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8))
2140
2141#define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
2142
2143#define IS_TIM_TI1SELECTION(__TI1SELECTION__) (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \
2144 ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION))
2145
2146#define IS_TIM_DMA_LENGTH(__LENGTH__) (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER) || \
2147 ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS) || \
2148 ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS) || \
2149 ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS) || \
2150 ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS) || \
2151 ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS) || \
2152 ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS) || \
2153 ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS) || \
2154 ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS) || \
2155 ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
2156 ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
2157 ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
2158 ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
2159 ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
2160 ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
2161 ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
2162 ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
2163 ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS))
2164
2165#define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U))
2166
2167#define IS_TIM_IC_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
2168
2169#define IS_TIM_DEADTIME(__DEADTIME__) ((__DEADTIME__) <= 0xFFU)
2170
2171#if defined (TIM_SMCR_SMS_3)
2172#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) (((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER) || \
2173 ((__TRIGGER__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER))
2174#else
2175#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER)
2176#endif /* TIM_SMCR_SMS_3 */
2177
2178#define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
2179 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
2180 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
2181 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
2182 ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
2183
2184#define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
2185 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
2186 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
2187 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
2188 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
2189
2190#define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
2191 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
2192 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
2193 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
2194 ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U))))
2195
2196#define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
2197 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
2198 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
2199 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\
2200 ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP)))
2201
2202#if defined(TIM_CCER_CC5E) && defined(TIM_CCER_CC6E)
2203#define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
2204 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
2205 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
2206 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
2207 ((__CHANNEL__) == TIM_CHANNEL_4) ? (__HANDLE__)->ChannelState[3] :\
2208 ((__CHANNEL__) == TIM_CHANNEL_5) ? (__HANDLE__)->ChannelState[4] :\
2209 (__HANDLE__)->ChannelState[5])
2210
2211#define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
2212 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
2213 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
2214 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
2215 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)) :\
2216 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->ChannelState[4] = (__CHANNEL_STATE__)) :\
2217 ((__HANDLE__)->ChannelState[5] = (__CHANNEL_STATE__)))
2218
2219#define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
2220 (__HANDLE__)->ChannelState[0] = \
2221 (__CHANNEL_STATE__); \
2222 (__HANDLE__)->ChannelState[1] = \
2223 (__CHANNEL_STATE__); \
2224 (__HANDLE__)->ChannelState[2] = \
2225 (__CHANNEL_STATE__); \
2226 (__HANDLE__)->ChannelState[3] = \
2227 (__CHANNEL_STATE__); \
2228 (__HANDLE__)->ChannelState[4] = \
2229 (__CHANNEL_STATE__); \
2230 (__HANDLE__)->ChannelState[5] = \
2231 (__CHANNEL_STATE__); \
2232 } while(0)
2233#else
2234#define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
2235 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
2236 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
2237 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
2238 (__HANDLE__)->ChannelState[3])
2239
2240#define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
2241 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
2242 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
2243 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
2244 ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)))
2245
2246#define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
2247 (__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__); \
2248 (__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__); \
2249 (__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__); \
2250 (__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__); \
2251 } while(0)
2252#endif /* TIM_CCER_CC5E && TIM_CCER_CC6E */
2253
2254#define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\
2255 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\
2256 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\
2257 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\
2258 (__HANDLE__)->ChannelNState[3])
2259
2260#define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
2261 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\
2262 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\
2263 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\
2264 ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__)))
2265
2266#define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
2267 (__HANDLE__)->ChannelNState[0] = \
2268 (__CHANNEL_STATE__); \
2269 (__HANDLE__)->ChannelNState[1] = \
2270 (__CHANNEL_STATE__); \
2271 (__HANDLE__)->ChannelNState[2] = \
2272 (__CHANNEL_STATE__); \
2273 (__HANDLE__)->ChannelNState[3] = \
2274 (__CHANNEL_STATE__); \
2275 } while(0)
2276
2280/* End of private macros -----------------------------------------------------*/
2281
2282/* Include TIM HAL Extended module */
2283#include "stm32f3xx_hal_tim_ex.h"
2284
2285/* Exported functions --------------------------------------------------------*/
2294/* Time Base functions ********************************************************/
2299/* Blocking mode: Polling */
2302/* Non-Blocking mode: Interrupt */
2305/* Non-Blocking mode: DMA */
2306HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length);
2316/* Timer Output Compare functions *********************************************/
2321/* Blocking mode: Polling */
2324/* Non-Blocking mode: Interrupt */
2327/* Non-Blocking mode: DMA */
2328HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
2329 uint16_t Length);
2339/* Timer PWM functions ********************************************************/
2344/* Blocking mode: Polling */
2347/* Non-Blocking mode: Interrupt */
2350/* Non-Blocking mode: DMA */
2351HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
2352 uint16_t Length);
2362/* Timer Input Capture functions **********************************************/
2367/* Blocking mode: Polling */
2370/* Non-Blocking mode: Interrupt */
2373/* Non-Blocking mode: DMA */
2374HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
2384/* Timer One Pulse functions **************************************************/
2389/* Blocking mode: Polling */
2392/* Non-Blocking mode: Interrupt */
2403/* Timer Encoder functions ****************************************************/
2408/* Blocking mode: Polling */
2411/* Non-Blocking mode: Interrupt */
2414/* Non-Blocking mode: DMA */
2415HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1,
2416 uint32_t *pData2, uint16_t Length);
2426/* Interrupt Handler functions ***********************************************/
2436/* Control functions *********************************************************/
2438 uint32_t Channel);
2440 uint32_t Channel);
2442 uint32_t Channel);
2444 uint32_t OutputChannel, uint32_t InputChannel);
2446 const TIM_ClearInputConfigTypeDef *sClearInputConfig,
2447 uint32_t Channel);
2453 uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength);
2455 uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2456 uint32_t BurstLength, uint32_t DataLength);
2459 uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength);
2461 uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
2462 uint32_t BurstLength, uint32_t DataLength);
2465uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel);
2474/* Callback in non blocking modes (Interrupt and DMA) *************************/
2485
2486/* Callbacks Register/UnRegister functions ***********************************/
2487#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2488HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID,
2489 pTIM_CallbackTypeDef pCallback);
2490HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID);
2491#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
2492
2501/* Peripheral State functions ************************************************/
2508
2509/* Peripheral Channel state functions ************************************************/
2520/* End of exported functions -------------------------------------------------*/
2521
2522/* Private functions----------------------------------------------------------*/
2527void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
2529void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
2530 uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
2531
2536void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
2537
2538#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2539void TIM_ResetCallback(TIM_HandleTypeDef *htim);
2540#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
2541
2545/* End of private functions --------------------------------------------------*/
2546
2555#ifdef __cplusplus
2556}
2557#endif
2558
2559#endif /* STM32F3xx_HAL_TIM_H */
#define __IO
Definition: core_armv8mbl.h:196
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim)
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length)
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode)
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length)
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig)
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, uint32_t Channel)
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)
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength)
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection)
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig)
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource)
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, const TIM_ClearInputConfigTypeDef *sClearInputConfig, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, uint32_t OutputChannel, uint32_t InputChannel)
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
HAL_TIM_ChannelStateTypeDef
TIM Channel States definition.
Definition: stm32f3xx_hal_tim.h:317
HAL_TIM_DMABurstStateTypeDef
DMA Burst States definition.
Definition: stm32f3xx_hal_tim.h:327
HAL_TIM_ActiveChannel
HAL Active channel structures definition.
Definition: stm32f3xx_hal_tim.h:337
HAL_TIM_StateTypeDef
HAL State structures definition.
Definition: stm32f3xx_hal_tim.h:305
@ HAL_TIM_CHANNEL_STATE_READY
Definition: stm32f3xx_hal_tim.h:319
@ HAL_TIM_CHANNEL_STATE_RESET
Definition: stm32f3xx_hal_tim.h:318
@ HAL_TIM_CHANNEL_STATE_BUSY
Definition: stm32f3xx_hal_tim.h:320
@ HAL_DMA_BURST_STATE_BUSY
Definition: stm32f3xx_hal_tim.h:330
@ HAL_DMA_BURST_STATE_READY
Definition: stm32f3xx_hal_tim.h:329
@ HAL_DMA_BURST_STATE_RESET
Definition: stm32f3xx_hal_tim.h:328
@ HAL_TIM_ACTIVE_CHANNEL_1
Definition: stm32f3xx_hal_tim.h:338
@ HAL_TIM_ACTIVE_CHANNEL_CLEARED
Definition: stm32f3xx_hal_tim.h:348
@ HAL_TIM_ACTIVE_CHANNEL_4
Definition: stm32f3xx_hal_tim.h:341
@ HAL_TIM_ACTIVE_CHANNEL_3
Definition: stm32f3xx_hal_tim.h:340
@ HAL_TIM_ACTIVE_CHANNEL_2
Definition: stm32f3xx_hal_tim.h:339
@ HAL_TIM_STATE_TIMEOUT
Definition: stm32f3xx_hal_tim.h:309
@ HAL_TIM_STATE_BUSY
Definition: stm32f3xx_hal_tim.h:308
@ HAL_TIM_STATE_RESET
Definition: stm32f3xx_hal_tim.h:306
@ HAL_TIM_STATE_ERROR
Definition: stm32f3xx_hal_tim.h:310
@ HAL_TIM_STATE_READY
Definition: stm32f3xx_hal_tim.h:307
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma)
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config)
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma)
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
void TIM_DMAError(DMA_HandleTypeDef *hdma)
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure)
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition
Definition: stm32f3xx_hal_def.h:39
HAL_LockTypeDef
HAL Lock structures definition
Definition: stm32f3xx_hal_def.h:50
Header file of TIM HAL Extended module.
TIM Time base Configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:47
uint32_t CounterMode
Definition: stm32f3xx_hal_tim.h:51
uint32_t AutoReloadPreload
Definition: stm32f3xx_hal_tim.h:72
uint32_t Period
Definition: stm32f3xx_hal_tim.h:54
uint32_t RepetitionCounter
Definition: stm32f3xx_hal_tim.h:61
uint32_t ClockDivision
Definition: stm32f3xx_hal_tim.h:58
uint32_t Prescaler
Definition: stm32f3xx_hal_tim.h:48
TIM Break input(s) and Dead time configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:274
uint32_t OffStateIDLEMode
Definition: stm32f3xx_hal_tim.h:277
uint32_t DeadTime
Definition: stm32f3xx_hal_tim.h:281
uint32_t OffStateRunMode
Definition: stm32f3xx_hal_tim.h:275
uint32_t BreakState
Definition: stm32f3xx_hal_tim.h:283
uint32_t BreakFilter
Definition: stm32f3xx_hal_tim.h:287
uint32_t LockLevel
Definition: stm32f3xx_hal_tim.h:279
uint32_t BreakPolarity
Definition: stm32f3xx_hal_tim.h:285
uint32_t AutomaticOutput
Definition: stm32f3xx_hal_tim.h:297
TIM Clear Input Configuration Handle Structure definition.
Definition: stm32f3xx_hal_tim.h:214
uint32_t ClearInputState
Definition: stm32f3xx_hal_tim.h:215
uint32_t ClearInputPolarity
Definition: stm32f3xx_hal_tim.h:219
uint32_t ClearInputPrescaler
Definition: stm32f3xx_hal_tim.h:221
uint32_t ClearInputFilter
Definition: stm32f3xx_hal_tim.h:224
uint32_t ClearInputSource
Definition: stm32f3xx_hal_tim.h:217
Clock Configuration Handle Structure definition.
Definition: stm32f3xx_hal_tim.h:199
uint32_t ClockSource
Definition: stm32f3xx_hal_tim.h:200
uint32_t ClockPolarity
Definition: stm32f3xx_hal_tim.h:202
uint32_t ClockFilter
Definition: stm32f3xx_hal_tim.h:206
uint32_t ClockPrescaler
Definition: stm32f3xx_hal_tim.h:204
TIM Encoder Configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:166
uint32_t IC2Filter
Definition: stm32f3xx_hal_tim.h:191
uint32_t IC1Polarity
Definition: stm32f3xx_hal_tim.h:170
uint32_t IC1Filter
Definition: stm32f3xx_hal_tim.h:179
uint32_t IC1Prescaler
Definition: stm32f3xx_hal_tim.h:176
uint32_t IC2Selection
Definition: stm32f3xx_hal_tim.h:185
uint32_t IC1Selection
Definition: stm32f3xx_hal_tim.h:173
uint32_t EncoderMode
Definition: stm32f3xx_hal_tim.h:167
uint32_t IC2Polarity
Definition: stm32f3xx_hal_tim.h:182
uint32_t IC2Prescaler
Definition: stm32f3xx_hal_tim.h:188
TIM Time Base Handle Structure definition.
Definition: stm32f3xx_hal_tim.h:359
HAL_LockTypeDef Lock
Definition: stm32f3xx_hal_tim.h:365
__IO HAL_TIM_StateTypeDef State
Definition: stm32f3xx_hal_tim.h:366
TIM_Base_InitTypeDef Init
Definition: stm32f3xx_hal_tim.h:361
__IO HAL_TIM_DMABurstStateTypeDef DMABurstState
Definition: stm32f3xx_hal_tim.h:369
TIM_TypeDef * Instance
Definition: stm32f3xx_hal_tim.h:360
HAL_TIM_ActiveChannel Channel
Definition: stm32f3xx_hal_tim.h:362
TIM Input Capture Configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:148
uint32_t ICPrescaler
Definition: stm32f3xx_hal_tim.h:155
uint32_t ICSelection
Definition: stm32f3xx_hal_tim.h:152
uint32_t ICPolarity
Definition: stm32f3xx_hal_tim.h:149
uint32_t ICFilter
Definition: stm32f3xx_hal_tim.h:158
TIM Master configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:234
uint32_t MasterSlaveMode
Definition: stm32f3xx_hal_tim.h:241
uint32_t MasterOutputTrigger
Definition: stm32f3xx_hal_tim.h:235
TIM Output Compare Configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:80
uint32_t OCNIdleState
Definition: stm32f3xx_hal_tim.h:103
uint32_t OCNPolarity
Definition: stm32f3xx_hal_tim.h:90
uint32_t OCFastMode
Definition: stm32f3xx_hal_tim.h:94
uint32_t OCPolarity
Definition: stm32f3xx_hal_tim.h:87
uint32_t Pulse
Definition: stm32f3xx_hal_tim.h:84
uint32_t OCIdleState
Definition: stm32f3xx_hal_tim.h:99
uint32_t OCMode
Definition: stm32f3xx_hal_tim.h:81
TIM One Pulse Mode Configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:112
uint32_t OCNPolarity
Definition: stm32f3xx_hal_tim.h:122
uint32_t OCPolarity
Definition: stm32f3xx_hal_tim.h:119
uint32_t OCNIdleState
Definition: stm32f3xx_hal_tim.h:130
uint32_t Pulse
Definition: stm32f3xx_hal_tim.h:116
uint32_t ICPolarity
Definition: stm32f3xx_hal_tim.h:134
uint32_t ICFilter
Definition: stm32f3xx_hal_tim.h:140
uint32_t ICSelection
Definition: stm32f3xx_hal_tim.h:137
uint32_t OCIdleState
Definition: stm32f3xx_hal_tim.h:126
uint32_t OCMode
Definition: stm32f3xx_hal_tim.h:113
TIM Slave configuration Structure definition.
Definition: stm32f3xx_hal_tim.h:254
uint32_t TriggerFilter
Definition: stm32f3xx_hal_tim.h:263
uint32_t SlaveMode
Definition: stm32f3xx_hal_tim.h:255
uint32_t TriggerPrescaler
Definition: stm32f3xx_hal_tim.h:261
uint32_t InputTrigger
Definition: stm32f3xx_hal_tim.h:257
uint32_t TriggerPolarity
Definition: stm32f3xx_hal_tim.h:259
TIM.
Definition: stm32f303xe.h:651
DMA handle Structure definition
Definition: stm32f3xx_hal_dma.h:110