STM32F4xx_HAL_Driver  1.8.3
stm32f4xx_ll_tim.h
Go to the documentation of this file.
1 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef __STM32F4xx_LL_TIM_H
21 #define __STM32F4xx_LL_TIM_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32f4xx.h"
29 
34 #if defined (TIM1) || defined (TIM2) || defined (TIM3) || defined (TIM4) || defined (TIM5) || defined (TIM6) || defined (TIM7) || defined (TIM8) || defined (TIM9) || defined (TIM10) || defined (TIM11) || defined (TIM12) || defined (TIM13) || defined (TIM14)
35 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
45 static const uint8_t OFFSET_TAB_CCMRx[] =
46 {
47  0x00U, /* 0: TIMx_CH1 */
48  0x00U, /* 1: TIMx_CH1N */
49  0x00U, /* 2: TIMx_CH2 */
50  0x00U, /* 3: TIMx_CH2N */
51  0x04U, /* 4: TIMx_CH3 */
52  0x04U, /* 5: TIMx_CH3N */
53  0x04U /* 6: TIMx_CH4 */
54 };
55 
56 static const uint8_t SHIFT_TAB_OCxx[] =
57 {
58  0U, /* 0: OC1M, OC1FE, OC1PE */
59  0U, /* 1: - NA */
60  8U, /* 2: OC2M, OC2FE, OC2PE */
61  0U, /* 3: - NA */
62  0U, /* 4: OC3M, OC3FE, OC3PE */
63  0U, /* 5: - NA */
64  8U /* 6: OC4M, OC4FE, OC4PE */
65 };
66 
67 static const uint8_t SHIFT_TAB_ICxx[] =
68 {
69  0U, /* 0: CC1S, IC1PSC, IC1F */
70  0U, /* 1: - NA */
71  8U, /* 2: CC2S, IC2PSC, IC2F */
72  0U, /* 3: - NA */
73  0U, /* 4: CC3S, IC3PSC, IC3F */
74  0U, /* 5: - NA */
75  8U /* 6: CC4S, IC4PSC, IC4F */
76 };
77 
78 static const uint8_t SHIFT_TAB_CCxP[] =
79 {
80  0U, /* 0: CC1P */
81  2U, /* 1: CC1NP */
82  4U, /* 2: CC2P */
83  6U, /* 3: CC2NP */
84  8U, /* 4: CC3P */
85  10U, /* 5: CC3NP */
86  12U /* 6: CC4P */
87 };
88 
89 static const uint8_t SHIFT_TAB_OISx[] =
90 {
91  0U, /* 0: OIS1 */
92  1U, /* 1: OIS1N */
93  2U, /* 2: OIS2 */
94  3U, /* 3: OIS2N */
95  4U, /* 4: OIS3 */
96  5U, /* 5: OIS3N */
97  6U /* 6: OIS4 */
98 };
103 /* Private constants ---------------------------------------------------------*/
109 /* Remap mask definitions */
110 #define TIMx_OR_RMP_SHIFT 16U
111 #define TIMx_OR_RMP_MASK 0x0000FFFFU
112 #define TIM2_OR_RMP_MASK (TIM_OR_ITR1_RMP << TIMx_OR_RMP_SHIFT)
113 #define TIM5_OR_RMP_MASK (TIM_OR_TI4_RMP << TIMx_OR_RMP_SHIFT)
114 #define TIM11_OR_RMP_MASK (TIM_OR_TI1_RMP << TIMx_OR_RMP_SHIFT)
115 
116 /* Mask used to set the TDG[x:0] of the DTG bits of the TIMx_BDTR register */
117 #define DT_DELAY_1 ((uint8_t)0x7F)
118 #define DT_DELAY_2 ((uint8_t)0x3F)
119 #define DT_DELAY_3 ((uint8_t)0x1F)
120 #define DT_DELAY_4 ((uint8_t)0x1F)
121 
122 /* Mask used to set the DTG[7:5] bits of the DTG bits of the TIMx_BDTR register */
123 #define DT_RANGE_1 ((uint8_t)0x00)
124 #define DT_RANGE_2 ((uint8_t)0x80)
125 #define DT_RANGE_3 ((uint8_t)0xC0)
126 #define DT_RANGE_4 ((uint8_t)0xE0)
127 
128 
133 /* Private macros ------------------------------------------------------------*/
148 #define TIM_GET_CHANNEL_INDEX( __CHANNEL__) \
149  (((__CHANNEL__) == LL_TIM_CHANNEL_CH1) ? 0U :\
150  ((__CHANNEL__) == LL_TIM_CHANNEL_CH1N) ? 1U :\
151  ((__CHANNEL__) == LL_TIM_CHANNEL_CH2) ? 2U :\
152  ((__CHANNEL__) == LL_TIM_CHANNEL_CH2N) ? 3U :\
153  ((__CHANNEL__) == LL_TIM_CHANNEL_CH3) ? 4U :\
154  ((__CHANNEL__) == LL_TIM_CHANNEL_CH3N) ? 5U : 6U)
155 
164 #define TIM_CALC_DTS(__TIMCLK__, __CKD__) \
165  (((__CKD__) == LL_TIM_CLOCKDIVISION_DIV1) ? ((uint64_t)1000000000000U/(__TIMCLK__)) : \
166  ((__CKD__) == LL_TIM_CLOCKDIVISION_DIV2) ? ((uint64_t)1000000000000U/((__TIMCLK__) >> 1U)) : \
167  ((uint64_t)1000000000000U/((__TIMCLK__) >> 2U)))
173 /* Exported types ------------------------------------------------------------*/
174 #if defined(USE_FULL_LL_DRIVER)
182 typedef struct
183 {
184  uint16_t Prescaler;
190  uint32_t CounterMode;
196  uint32_t Autoreload;
205  uint32_t ClockDivision;
211  uint32_t RepetitionCounter;
225 
229 typedef struct
230 {
231  uint32_t OCMode;
237  uint32_t OCState;
243  uint32_t OCNState;
249  uint32_t CompareValue;
255  uint32_t OCPolarity;
261  uint32_t OCNPolarity;
268  uint32_t OCIdleState;
274  uint32_t OCNIdleState;
280 
285 typedef struct
286 {
287 
288  uint32_t ICPolarity;
294  uint32_t ICActiveInput;
300  uint32_t ICPrescaler;
306  uint32_t ICFilter;
312 
313 
317 typedef struct
318 {
319  uint32_t EncoderMode;
325  uint32_t IC1Polarity;
331  uint32_t IC1ActiveInput;
337  uint32_t IC1Prescaler;
343  uint32_t IC1Filter;
349  uint32_t IC2Polarity;
355  uint32_t IC2ActiveInput;
361  uint32_t IC2Prescaler;
367  uint32_t IC2Filter;
374 
378 typedef struct
379 {
380 
381  uint32_t IC1Polarity;
387  uint32_t IC1Prescaler;
395  uint32_t IC1Filter;
402  uint32_t CommutationDelay;
410 
414 typedef struct
415 {
416  uint32_t OSSRState;
425  uint32_t OSSIState;
434  uint32_t LockLevel;
440  uint8_t DeadTime;
450  uint16_t BreakState;
459  uint32_t BreakPolarity;
468  uint32_t AutomaticOutput;
477 
481 #endif /* USE_FULL_LL_DRIVER */
482 
483 /* Exported constants --------------------------------------------------------*/
492 #define LL_TIM_SR_UIF TIM_SR_UIF
493 #define LL_TIM_SR_CC1IF TIM_SR_CC1IF
494 #define LL_TIM_SR_CC2IF TIM_SR_CC2IF
495 #define LL_TIM_SR_CC3IF TIM_SR_CC3IF
496 #define LL_TIM_SR_CC4IF TIM_SR_CC4IF
497 #define LL_TIM_SR_COMIF TIM_SR_COMIF
498 #define LL_TIM_SR_TIF TIM_SR_TIF
499 #define LL_TIM_SR_BIF TIM_SR_BIF
500 #define LL_TIM_SR_CC1OF TIM_SR_CC1OF
501 #define LL_TIM_SR_CC2OF TIM_SR_CC2OF
502 #define LL_TIM_SR_CC3OF TIM_SR_CC3OF
503 #define LL_TIM_SR_CC4OF TIM_SR_CC4OF
508 #if defined(USE_FULL_LL_DRIVER)
512 #define LL_TIM_BREAK_DISABLE 0x00000000U
513 #define LL_TIM_BREAK_ENABLE TIM_BDTR_BKE
521 #define LL_TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
522 #define LL_TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
526 #endif /* USE_FULL_LL_DRIVER */
527 
532 #define LL_TIM_DIER_UIE TIM_DIER_UIE
533 #define LL_TIM_DIER_CC1IE TIM_DIER_CC1IE
534 #define LL_TIM_DIER_CC2IE TIM_DIER_CC2IE
535 #define LL_TIM_DIER_CC3IE TIM_DIER_CC3IE
536 #define LL_TIM_DIER_CC4IE TIM_DIER_CC4IE
537 #define LL_TIM_DIER_COMIE TIM_DIER_COMIE
538 #define LL_TIM_DIER_TIE TIM_DIER_TIE
539 #define LL_TIM_DIER_BIE TIM_DIER_BIE
547 #define LL_TIM_UPDATESOURCE_REGULAR 0x00000000U
548 #define LL_TIM_UPDATESOURCE_COUNTER TIM_CR1_URS
556 #define LL_TIM_ONEPULSEMODE_SINGLE TIM_CR1_OPM
557 #define LL_TIM_ONEPULSEMODE_REPETITIVE 0x00000000U
565 #define LL_TIM_COUNTERMODE_UP 0x00000000U
566 #define LL_TIM_COUNTERMODE_DOWN TIM_CR1_DIR
567 #define LL_TIM_COUNTERMODE_CENTER_DOWN TIM_CR1_CMS_0
568 #define LL_TIM_COUNTERMODE_CENTER_UP TIM_CR1_CMS_1
569 #define LL_TIM_COUNTERMODE_CENTER_UP_DOWN TIM_CR1_CMS
577 #define LL_TIM_CLOCKDIVISION_DIV1 0x00000000U
578 #define LL_TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
579 #define LL_TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
587 #define LL_TIM_COUNTERDIRECTION_UP 0x00000000U
588 #define LL_TIM_COUNTERDIRECTION_DOWN TIM_CR1_DIR
596 #define LL_TIM_CCUPDATESOURCE_COMG_ONLY 0x00000000U
597 #define LL_TIM_CCUPDATESOURCE_COMG_AND_TRGI TIM_CR2_CCUS
605 #define LL_TIM_CCDMAREQUEST_CC 0x00000000U
606 #define LL_TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
614 #define LL_TIM_LOCKLEVEL_OFF 0x00000000U
615 #define LL_TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
616 #define LL_TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
617 #define LL_TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
625 #define LL_TIM_CHANNEL_CH1 TIM_CCER_CC1E
626 #define LL_TIM_CHANNEL_CH1N TIM_CCER_CC1NE
627 #define LL_TIM_CHANNEL_CH2 TIM_CCER_CC2E
628 #define LL_TIM_CHANNEL_CH2N TIM_CCER_CC2NE
629 #define LL_TIM_CHANNEL_CH3 TIM_CCER_CC3E
630 #define LL_TIM_CHANNEL_CH3N TIM_CCER_CC3NE
631 #define LL_TIM_CHANNEL_CH4 TIM_CCER_CC4E
636 #if defined(USE_FULL_LL_DRIVER)
640 #define LL_TIM_OCSTATE_DISABLE 0x00000000U
641 #define LL_TIM_OCSTATE_ENABLE TIM_CCER_CC1E
645 #endif /* USE_FULL_LL_DRIVER */
646 
650 #define LL_TIM_OCMODE_FROZEN 0x00000000U
651 #define LL_TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
652 #define LL_TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
653 #define LL_TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
654 #define LL_TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
655 #define LL_TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
656 #define LL_TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
657 #define LL_TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
665 #define LL_TIM_OCPOLARITY_HIGH 0x00000000U
666 #define LL_TIM_OCPOLARITY_LOW TIM_CCER_CC1P
674 #define LL_TIM_OCIDLESTATE_LOW 0x00000000U
675 #define LL_TIM_OCIDLESTATE_HIGH TIM_CR2_OIS1
684 #define LL_TIM_ACTIVEINPUT_DIRECTTI (TIM_CCMR1_CC1S_0 << 16U)
685 #define LL_TIM_ACTIVEINPUT_INDIRECTTI (TIM_CCMR1_CC1S_1 << 16U)
686 #define LL_TIM_ACTIVEINPUT_TRC (TIM_CCMR1_CC1S << 16U)
694 #define LL_TIM_ICPSC_DIV1 0x00000000U
695 #define LL_TIM_ICPSC_DIV2 (TIM_CCMR1_IC1PSC_0 << 16U)
696 #define LL_TIM_ICPSC_DIV4 (TIM_CCMR1_IC1PSC_1 << 16U)
697 #define LL_TIM_ICPSC_DIV8 (TIM_CCMR1_IC1PSC << 16U)
705 #define LL_TIM_IC_FILTER_FDIV1 0x00000000U
706 #define LL_TIM_IC_FILTER_FDIV1_N2 (TIM_CCMR1_IC1F_0 << 16U)
707 #define LL_TIM_IC_FILTER_FDIV1_N4 (TIM_CCMR1_IC1F_1 << 16U)
708 #define LL_TIM_IC_FILTER_FDIV1_N8 ((TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
709 #define LL_TIM_IC_FILTER_FDIV2_N6 (TIM_CCMR1_IC1F_2 << 16U)
710 #define LL_TIM_IC_FILTER_FDIV2_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
711 #define LL_TIM_IC_FILTER_FDIV4_N6 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
712 #define LL_TIM_IC_FILTER_FDIV4_N8 ((TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
713 #define LL_TIM_IC_FILTER_FDIV8_N6 (TIM_CCMR1_IC1F_3 << 16U)
714 #define LL_TIM_IC_FILTER_FDIV8_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_0) << 16U)
715 #define LL_TIM_IC_FILTER_FDIV16_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1) << 16U)
716 #define LL_TIM_IC_FILTER_FDIV16_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_1 | TIM_CCMR1_IC1F_0) << 16U)
717 #define LL_TIM_IC_FILTER_FDIV16_N8 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2) << 16U)
718 #define LL_TIM_IC_FILTER_FDIV32_N5 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_0) << 16U)
719 #define LL_TIM_IC_FILTER_FDIV32_N6 ((TIM_CCMR1_IC1F_3 | TIM_CCMR1_IC1F_2 | TIM_CCMR1_IC1F_1) << 16U)
720 #define LL_TIM_IC_FILTER_FDIV32_N8 (TIM_CCMR1_IC1F << 16U)
728 #define LL_TIM_IC_POLARITY_RISING 0x00000000U
729 #define LL_TIM_IC_POLARITY_FALLING TIM_CCER_CC1P
730 #define LL_TIM_IC_POLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
738 #define LL_TIM_CLOCKSOURCE_INTERNAL 0x00000000U
739 #define LL_TIM_CLOCKSOURCE_EXT_MODE1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
740 #define LL_TIM_CLOCKSOURCE_EXT_MODE2 TIM_SMCR_ECE
748 #define LL_TIM_ENCODERMODE_X2_TI1 TIM_SMCR_SMS_0
749 #define LL_TIM_ENCODERMODE_X2_TI2 TIM_SMCR_SMS_1
750 #define LL_TIM_ENCODERMODE_X4_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
758 #define LL_TIM_TRGO_RESET 0x00000000U
759 #define LL_TIM_TRGO_ENABLE TIM_CR2_MMS_0
760 #define LL_TIM_TRGO_UPDATE TIM_CR2_MMS_1
761 #define LL_TIM_TRGO_CC1IF (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
762 #define LL_TIM_TRGO_OC1REF TIM_CR2_MMS_2
763 #define LL_TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
764 #define LL_TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
765 #define LL_TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
774 #define LL_TIM_SLAVEMODE_DISABLED 0x00000000U
775 #define LL_TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
776 #define LL_TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
777 #define LL_TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
785 #define LL_TIM_TS_ITR0 0x00000000U
786 #define LL_TIM_TS_ITR1 TIM_SMCR_TS_0
787 #define LL_TIM_TS_ITR2 TIM_SMCR_TS_1
788 #define LL_TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
789 #define LL_TIM_TS_TI1F_ED TIM_SMCR_TS_2
790 #define LL_TIM_TS_TI1FP1 (TIM_SMCR_TS_2 | TIM_SMCR_TS_0)
791 #define LL_TIM_TS_TI2FP2 (TIM_SMCR_TS_2 | TIM_SMCR_TS_1)
792 #define LL_TIM_TS_ETRF (TIM_SMCR_TS_2 | TIM_SMCR_TS_1 | TIM_SMCR_TS_0)
800 #define LL_TIM_ETR_POLARITY_NONINVERTED 0x00000000U
801 #define LL_TIM_ETR_POLARITY_INVERTED TIM_SMCR_ETP
809 #define LL_TIM_ETR_PRESCALER_DIV1 0x00000000U
810 #define LL_TIM_ETR_PRESCALER_DIV2 TIM_SMCR_ETPS_0
811 #define LL_TIM_ETR_PRESCALER_DIV4 TIM_SMCR_ETPS_1
812 #define LL_TIM_ETR_PRESCALER_DIV8 TIM_SMCR_ETPS
820 #define LL_TIM_ETR_FILTER_FDIV1 0x00000000U
821 #define LL_TIM_ETR_FILTER_FDIV1_N2 TIM_SMCR_ETF_0
822 #define LL_TIM_ETR_FILTER_FDIV1_N4 TIM_SMCR_ETF_1
823 #define LL_TIM_ETR_FILTER_FDIV1_N8 (TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
824 #define LL_TIM_ETR_FILTER_FDIV2_N6 TIM_SMCR_ETF_2
825 #define LL_TIM_ETR_FILTER_FDIV2_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
826 #define LL_TIM_ETR_FILTER_FDIV4_N6 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
827 #define LL_TIM_ETR_FILTER_FDIV4_N8 (TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
828 #define LL_TIM_ETR_FILTER_FDIV8_N6 TIM_SMCR_ETF_3
829 #define LL_TIM_ETR_FILTER_FDIV8_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_0)
830 #define LL_TIM_ETR_FILTER_FDIV16_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1)
831 #define LL_TIM_ETR_FILTER_FDIV16_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_1 | TIM_SMCR_ETF_0)
832 #define LL_TIM_ETR_FILTER_FDIV16_N8 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2)
833 #define LL_TIM_ETR_FILTER_FDIV32_N5 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_0)
834 #define LL_TIM_ETR_FILTER_FDIV32_N6 (TIM_SMCR_ETF_3 | TIM_SMCR_ETF_2 | TIM_SMCR_ETF_1)
835 #define LL_TIM_ETR_FILTER_FDIV32_N8 TIM_SMCR_ETF
844 #define LL_TIM_BREAK_POLARITY_LOW 0x00000000U
845 #define LL_TIM_BREAK_POLARITY_HIGH TIM_BDTR_BKP
856 #define LL_TIM_OSSI_DISABLE 0x00000000U
857 #define LL_TIM_OSSI_ENABLE TIM_BDTR_OSSI
865 #define LL_TIM_OSSR_DISABLE 0x00000000U
866 #define LL_TIM_OSSR_ENABLE TIM_BDTR_OSSR
875 #define LL_TIM_DMABURST_BASEADDR_CR1 0x00000000U
876 #define LL_TIM_DMABURST_BASEADDR_CR2 TIM_DCR_DBA_0
877 #define LL_TIM_DMABURST_BASEADDR_SMCR TIM_DCR_DBA_1
878 #define LL_TIM_DMABURST_BASEADDR_DIER (TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
879 #define LL_TIM_DMABURST_BASEADDR_SR TIM_DCR_DBA_2
880 #define LL_TIM_DMABURST_BASEADDR_EGR (TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
881 #define LL_TIM_DMABURST_BASEADDR_CCMR1 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
882 #define LL_TIM_DMABURST_BASEADDR_CCMR2 (TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
883 #define LL_TIM_DMABURST_BASEADDR_CCER TIM_DCR_DBA_3
884 #define LL_TIM_DMABURST_BASEADDR_CNT (TIM_DCR_DBA_3 | TIM_DCR_DBA_0)
885 #define LL_TIM_DMABURST_BASEADDR_PSC (TIM_DCR_DBA_3 | TIM_DCR_DBA_1)
886 #define LL_TIM_DMABURST_BASEADDR_ARR (TIM_DCR_DBA_3 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
887 #define LL_TIM_DMABURST_BASEADDR_RCR (TIM_DCR_DBA_3 | TIM_DCR_DBA_2)
888 #define LL_TIM_DMABURST_BASEADDR_CCR1 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_0)
889 #define LL_TIM_DMABURST_BASEADDR_CCR2 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1)
890 #define LL_TIM_DMABURST_BASEADDR_CCR3 (TIM_DCR_DBA_3 | TIM_DCR_DBA_2 | TIM_DCR_DBA_1 | TIM_DCR_DBA_0)
891 #define LL_TIM_DMABURST_BASEADDR_CCR4 TIM_DCR_DBA_4
892 #define LL_TIM_DMABURST_BASEADDR_BDTR (TIM_DCR_DBA_4 | TIM_DCR_DBA_0)
900 #define LL_TIM_DMABURST_LENGTH_1TRANSFER 0x00000000U
901 #define LL_TIM_DMABURST_LENGTH_2TRANSFERS TIM_DCR_DBL_0
902 #define LL_TIM_DMABURST_LENGTH_3TRANSFERS TIM_DCR_DBL_1
903 #define LL_TIM_DMABURST_LENGTH_4TRANSFERS (TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
904 #define LL_TIM_DMABURST_LENGTH_5TRANSFERS TIM_DCR_DBL_2
905 #define LL_TIM_DMABURST_LENGTH_6TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
906 #define LL_TIM_DMABURST_LENGTH_7TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
907 #define LL_TIM_DMABURST_LENGTH_8TRANSFERS (TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
908 #define LL_TIM_DMABURST_LENGTH_9TRANSFERS TIM_DCR_DBL_3
909 #define LL_TIM_DMABURST_LENGTH_10TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_0)
910 #define LL_TIM_DMABURST_LENGTH_11TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1)
911 #define LL_TIM_DMABURST_LENGTH_12TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
912 #define LL_TIM_DMABURST_LENGTH_13TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2)
913 #define LL_TIM_DMABURST_LENGTH_14TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_0)
914 #define LL_TIM_DMABURST_LENGTH_15TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1)
915 #define LL_TIM_DMABURST_LENGTH_16TRANSFERS (TIM_DCR_DBL_3 | TIM_DCR_DBL_2 | TIM_DCR_DBL_1 | TIM_DCR_DBL_0)
916 #define LL_TIM_DMABURST_LENGTH_17TRANSFERS TIM_DCR_DBL_4
917 #define LL_TIM_DMABURST_LENGTH_18TRANSFERS (TIM_DCR_DBL_4 | TIM_DCR_DBL_0)
926 #define LL_TIM_TIM2_ITR1_RMP_TIM8_TRGO TIM2_OR_RMP_MASK
927 #define LL_TIM_TIM2_ITR1_RMP_ETH_PTP (TIM_OR_ITR1_RMP_0 | TIM2_OR_RMP_MASK)
928 #define LL_TIM_TIM2_ITR1_RMP_OTG_FS_SOF (TIM_OR_ITR1_RMP_1 | TIM2_OR_RMP_MASK)
929 #define LL_TIM_TIM2_ITR1_RMP_OTG_HS_SOF (TIM_OR_ITR1_RMP | TIM2_OR_RMP_MASK)
937 #define LL_TIM_TIM5_TI4_RMP_GPIO TIM5_OR_RMP_MASK
938 #define LL_TIM_TIM5_TI4_RMP_LSI (TIM_OR_TI4_RMP_0 | TIM5_OR_RMP_MASK)
939 #define LL_TIM_TIM5_TI4_RMP_LSE (TIM_OR_TI4_RMP_1 | TIM5_OR_RMP_MASK)
940 #define LL_TIM_TIM5_TI4_RMP_RTC (TIM_OR_TI4_RMP | TIM5_OR_RMP_MASK)
948 #define LL_TIM_TIM11_TI1_RMP_GPIO TIM11_OR_RMP_MASK
949 #if defined(SPDIFRX)
950 #define LL_TIM_TIM11_TI1_RMP_SPDIFRX (TIM_OR_TI1_RMP_0 | TIM11_OR_RMP_MASK)
952 /* Legacy define */
953 #define LL_TIM_TIM11_TI1_RMP_GPIO1 LL_TIM_TIM11_TI1_RMP_SPDIFRX
955 #else
956 #define LL_TIM_TIM11_TI1_RMP_GPIO1 (TIM_OR_TI1_RMP_0 | TIM11_OR_RMP_MASK)
957 #endif /* SPDIFRX */
958 #define LL_TIM_TIM11_TI1_RMP_GPIO2 (TIM_OR_TI1_RMP | TIM11_OR_RMP_MASK)
959 #define LL_TIM_TIM11_TI1_RMP_HSE_RTC (TIM_OR_TI1_RMP_1 | TIM11_OR_RMP_MASK)
963 #if defined(LPTIM_OR_TIM1_ITR2_RMP) && defined(LPTIM_OR_TIM5_ITR1_RMP) && defined(LPTIM_OR_TIM9_ITR1_RMP)
964 
965 #define LL_TIM_LPTIM_REMAP_MASK 0x10000000U
966 
967 #define LL_TIM_TIM9_ITR1_RMP_TIM3_TRGO LL_TIM_LPTIM_REMAP_MASK
968 #define LL_TIM_TIM9_ITR1_RMP_LPTIM (LL_TIM_LPTIM_REMAP_MASK | LPTIM_OR_TIM9_ITR1_RMP)
970 #define LL_TIM_TIM5_ITR1_RMP_TIM3_TRGO LL_TIM_LPTIM_REMAP_MASK
971 #define LL_TIM_TIM5_ITR1_RMP_LPTIM (LL_TIM_LPTIM_REMAP_MASK | LPTIM_OR_TIM5_ITR1_RMP)
973 #define LL_TIM_TIM1_ITR2_RMP_TIM3_TRGO LL_TIM_LPTIM_REMAP_MASK
974 #define LL_TIM_TIM1_ITR2_RMP_LPTIM (LL_TIM_LPTIM_REMAP_MASK | LPTIM_OR_TIM1_ITR2_RMP)
976 #endif /* LPTIM_OR_TIM1_ITR2_RMP && LPTIM_OR_TIM5_ITR1_RMP && LPTIM_OR_TIM9_ITR1_RMP */
977 
978 
983 /* Exported macro ------------------------------------------------------------*/
998 #define LL_TIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
999 
1006 #define LL_TIM_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
1022 #define __LL_TIM_CALC_DEADTIME(__TIMCLK__, __CKD__, __DT__) \
1023  ( (((uint64_t)((__DT__)*1000U)) < ((DT_DELAY_1+1U) * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1024  (uint8_t)(((uint64_t)((__DT__)*1000U) / TIM_CALC_DTS((__TIMCLK__), (__CKD__))) & DT_DELAY_1) : \
1025  (((uint64_t)((__DT__)*1000U)) < ((64U + (DT_DELAY_2+1U)) * 2U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1026  (uint8_t)(DT_RANGE_2 | ((uint8_t)((uint8_t)((((uint64_t)((__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1027  (__CKD__))) >> 1U) - (uint8_t) 64) & DT_DELAY_2)) :\
1028  (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_3+1U)) * 8U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1029  (uint8_t)(DT_RANGE_3 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1030  (__CKD__))) >> 3U) - (uint8_t) 32) & DT_DELAY_3)) :\
1031  (((uint64_t)((__DT__)*1000U)) < ((32U + (DT_DELAY_4+1U)) * 16U * TIM_CALC_DTS((__TIMCLK__), (__CKD__)))) ? \
1032  (uint8_t)(DT_RANGE_4 | ((uint8_t)((uint8_t)(((((uint64_t)(__DT__)*1000U))/ TIM_CALC_DTS((__TIMCLK__), \
1033  (__CKD__))) >> 4U) - (uint8_t) 32) & DT_DELAY_4)) :\
1034  0U)
1035 
1043 #define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \
1044  (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
1045 
1054 #define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \
1055  ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
1056 
1066 #define __LL_TIM_CALC_DELAY(__TIMCLK__, __PSC__, __DELAY__) \
1067  ((uint32_t)(((uint64_t)(__TIMCLK__) * (uint64_t)(__DELAY__)) \
1068  / ((uint64_t)1000000U * (uint64_t)((__PSC__) + 1U))))
1069 
1080 #define __LL_TIM_CALC_PULSE(__TIMCLK__, __PSC__, __DELAY__, __PULSE__) \
1081  ((uint32_t)(__LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__PULSE__)) \
1082  + __LL_TIM_CALC_DELAY((__TIMCLK__), (__PSC__), (__DELAY__))))
1083 
1094 #define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \
1095  ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos)))
1096 
1097 
1102 /* Exported functions --------------------------------------------------------*/
1116 __STATIC_INLINE void LL_TIM_EnableCounter(TIM_TypeDef *TIMx)
1117 {
1118  SET_BIT(TIMx->CR1, TIM_CR1_CEN);
1119 }
1120 
1127 __STATIC_INLINE void LL_TIM_DisableCounter(TIM_TypeDef *TIMx)
1128 {
1129  CLEAR_BIT(TIMx->CR1, TIM_CR1_CEN);
1130 }
1131 
1138 __STATIC_INLINE uint32_t LL_TIM_IsEnabledCounter(const TIM_TypeDef *TIMx)
1139 {
1140  return ((READ_BIT(TIMx->CR1, TIM_CR1_CEN) == (TIM_CR1_CEN)) ? 1UL : 0UL);
1141 }
1142 
1149 __STATIC_INLINE void LL_TIM_EnableUpdateEvent(TIM_TypeDef *TIMx)
1150 {
1151  CLEAR_BIT(TIMx->CR1, TIM_CR1_UDIS);
1152 }
1153 
1160 __STATIC_INLINE void LL_TIM_DisableUpdateEvent(TIM_TypeDef *TIMx)
1161 {
1162  SET_BIT(TIMx->CR1, TIM_CR1_UDIS);
1163 }
1164 
1171 __STATIC_INLINE uint32_t LL_TIM_IsEnabledUpdateEvent(const TIM_TypeDef *TIMx)
1172 {
1173  return ((READ_BIT(TIMx->CR1, TIM_CR1_UDIS) == (uint32_t)RESET) ? 1UL : 0UL);
1174 }
1175 
1192 __STATIC_INLINE void LL_TIM_SetUpdateSource(TIM_TypeDef *TIMx, uint32_t UpdateSource)
1193 {
1194  MODIFY_REG(TIMx->CR1, TIM_CR1_URS, UpdateSource);
1195 }
1196 
1205 __STATIC_INLINE uint32_t LL_TIM_GetUpdateSource(const TIM_TypeDef *TIMx)
1206 {
1207  return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_URS));
1208 }
1209 
1219 __STATIC_INLINE void LL_TIM_SetOnePulseMode(TIM_TypeDef *TIMx, uint32_t OnePulseMode)
1220 {
1221  MODIFY_REG(TIMx->CR1, TIM_CR1_OPM, OnePulseMode);
1222 }
1223 
1232 __STATIC_INLINE uint32_t LL_TIM_GetOnePulseMode(const TIM_TypeDef *TIMx)
1233 {
1234  return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_OPM));
1235 }
1236 
1256 __STATIC_INLINE void LL_TIM_SetCounterMode(TIM_TypeDef *TIMx, uint32_t CounterMode)
1257 {
1258  MODIFY_REG(TIMx->CR1, (TIM_CR1_DIR | TIM_CR1_CMS), CounterMode);
1259 }
1260 
1276 __STATIC_INLINE uint32_t LL_TIM_GetCounterMode(const TIM_TypeDef *TIMx)
1277 {
1278  uint32_t counter_mode;
1279 
1280  counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CMS));
1281 
1282  if (counter_mode == 0U)
1283  {
1284  counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR));
1285  }
1286 
1287  return counter_mode;
1288 }
1289 
1296 __STATIC_INLINE void LL_TIM_EnableARRPreload(TIM_TypeDef *TIMx)
1297 {
1298  SET_BIT(TIMx->CR1, TIM_CR1_ARPE);
1299 }
1300 
1307 __STATIC_INLINE void LL_TIM_DisableARRPreload(TIM_TypeDef *TIMx)
1308 {
1309  CLEAR_BIT(TIMx->CR1, TIM_CR1_ARPE);
1310 }
1311 
1318 __STATIC_INLINE uint32_t LL_TIM_IsEnabledARRPreload(const TIM_TypeDef *TIMx)
1319 {
1320  return ((READ_BIT(TIMx->CR1, TIM_CR1_ARPE) == (TIM_CR1_ARPE)) ? 1UL : 0UL);
1321 }
1322 
1337 __STATIC_INLINE void LL_TIM_SetClockDivision(TIM_TypeDef *TIMx, uint32_t ClockDivision)
1338 {
1339  MODIFY_REG(TIMx->CR1, TIM_CR1_CKD, ClockDivision);
1340 }
1341 
1355 __STATIC_INLINE uint32_t LL_TIM_GetClockDivision(const TIM_TypeDef *TIMx)
1356 {
1357  return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CKD));
1358 }
1359 
1369 __STATIC_INLINE void LL_TIM_SetCounter(TIM_TypeDef *TIMx, uint32_t Counter)
1370 {
1371  WRITE_REG(TIMx->CNT, Counter);
1372 }
1373 
1382 __STATIC_INLINE uint32_t LL_TIM_GetCounter(const TIM_TypeDef *TIMx)
1383 {
1384  return (uint32_t)(READ_REG(TIMx->CNT));
1385 }
1386 
1395 __STATIC_INLINE uint32_t LL_TIM_GetDirection(const TIM_TypeDef *TIMx)
1396 {
1397  return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR));
1398 }
1399 
1411 __STATIC_INLINE void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler)
1412 {
1413  WRITE_REG(TIMx->PSC, Prescaler);
1414 }
1415 
1422 __STATIC_INLINE uint32_t LL_TIM_GetPrescaler(const TIM_TypeDef *TIMx)
1423 {
1424  return (uint32_t)(READ_REG(TIMx->PSC));
1425 }
1426 
1438 __STATIC_INLINE void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload)
1439 {
1440  WRITE_REG(TIMx->ARR, AutoReload);
1441 }
1442 
1451 __STATIC_INLINE uint32_t LL_TIM_GetAutoReload(const TIM_TypeDef *TIMx)
1452 {
1453  return (uint32_t)(READ_REG(TIMx->ARR));
1454 }
1455 
1465 __STATIC_INLINE void LL_TIM_SetRepetitionCounter(TIM_TypeDef *TIMx, uint32_t RepetitionCounter)
1466 {
1467  WRITE_REG(TIMx->RCR, RepetitionCounter);
1468 }
1469 
1478 __STATIC_INLINE uint32_t LL_TIM_GetRepetitionCounter(const TIM_TypeDef *TIMx)
1479 {
1480  return (uint32_t)(READ_REG(TIMx->RCR));
1481 }
1482 
1501 __STATIC_INLINE void LL_TIM_CC_EnablePreload(TIM_TypeDef *TIMx)
1502 {
1503  SET_BIT(TIMx->CR2, TIM_CR2_CCPC);
1504 }
1505 
1514 __STATIC_INLINE void LL_TIM_CC_DisablePreload(TIM_TypeDef *TIMx)
1515 {
1516  CLEAR_BIT(TIMx->CR2, TIM_CR2_CCPC);
1517 }
1518 
1525 __STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledPreload(const TIM_TypeDef *TIMx)
1526 {
1527  return ((READ_BIT(TIMx->CR2, TIM_CR2_CCPC) == (TIM_CR2_CCPC)) ? 1UL : 0UL);
1528 }
1529 
1541 __STATIC_INLINE void LL_TIM_CC_SetUpdate(TIM_TypeDef *TIMx, uint32_t CCUpdateSource)
1542 {
1543  MODIFY_REG(TIMx->CR2, TIM_CR2_CCUS, CCUpdateSource);
1544 }
1545 
1555 __STATIC_INLINE void LL_TIM_CC_SetDMAReqTrigger(TIM_TypeDef *TIMx, uint32_t DMAReqTrigger)
1556 {
1557  MODIFY_REG(TIMx->CR2, TIM_CR2_CCDS, DMAReqTrigger);
1558 }
1559 
1568 __STATIC_INLINE uint32_t LL_TIM_CC_GetDMAReqTrigger(const TIM_TypeDef *TIMx)
1569 {
1570  return (uint32_t)(READ_BIT(TIMx->CR2, TIM_CR2_CCDS));
1571 }
1572 
1587 __STATIC_INLINE void LL_TIM_CC_SetLockLevel(TIM_TypeDef *TIMx, uint32_t LockLevel)
1588 {
1589  MODIFY_REG(TIMx->BDTR, TIM_BDTR_LOCK, LockLevel);
1590 }
1591 
1612 __STATIC_INLINE void LL_TIM_CC_EnableChannel(TIM_TypeDef *TIMx, uint32_t Channels)
1613 {
1614  SET_BIT(TIMx->CCER, Channels);
1615 }
1616 
1637 __STATIC_INLINE void LL_TIM_CC_DisableChannel(TIM_TypeDef *TIMx, uint32_t Channels)
1638 {
1639  CLEAR_BIT(TIMx->CCER, Channels);
1640 }
1641 
1662 __STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledChannel(const TIM_TypeDef *TIMx, uint32_t Channels)
1663 {
1664  return ((READ_BIT(TIMx->CCER, Channels) == (Channels)) ? 1UL : 0UL);
1665 }
1666 
1699 __STATIC_INLINE void LL_TIM_OC_ConfigOutput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
1700 {
1701  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1702  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1703  CLEAR_BIT(*pReg, (TIM_CCMR1_CC1S << SHIFT_TAB_OCxx[iChannel]));
1704  MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]),
1705  (Configuration & TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]);
1706  MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]),
1707  (Configuration & TIM_CR2_OIS1) << SHIFT_TAB_OISx[iChannel]);
1708 }
1709 
1734 __STATIC_INLINE void LL_TIM_OC_SetMode(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Mode)
1735 {
1736  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1737  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1738  MODIFY_REG(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel]), Mode << SHIFT_TAB_OCxx[iChannel]);
1739 }
1740 
1763 __STATIC_INLINE uint32_t LL_TIM_OC_GetMode(const TIM_TypeDef *TIMx, uint32_t Channel)
1764 {
1765  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1766  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1767  return (READ_BIT(*pReg, ((TIM_CCMR1_OC1M | TIM_CCMR1_CC1S) << SHIFT_TAB_OCxx[iChannel])) >> SHIFT_TAB_OCxx[iChannel]);
1768 }
1769 
1793 __STATIC_INLINE void LL_TIM_OC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Polarity)
1794 {
1795  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1796  MODIFY_REG(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel]), Polarity << SHIFT_TAB_CCxP[iChannel]);
1797 }
1798 
1821 __STATIC_INLINE uint32_t LL_TIM_OC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel)
1822 {
1823  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1824  return (READ_BIT(TIMx->CCER, (TIM_CCER_CC1P << SHIFT_TAB_CCxP[iChannel])) >> SHIFT_TAB_CCxP[iChannel]);
1825 }
1826 
1854 __STATIC_INLINE void LL_TIM_OC_SetIdleState(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t IdleState)
1855 {
1856  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1857  MODIFY_REG(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel]), IdleState << SHIFT_TAB_OISx[iChannel]);
1858 }
1859 
1882 __STATIC_INLINE uint32_t LL_TIM_OC_GetIdleState(const TIM_TypeDef *TIMx, uint32_t Channel)
1883 {
1884  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1885  return (READ_BIT(TIMx->CR2, (TIM_CR2_OIS1 << SHIFT_TAB_OISx[iChannel])) >> SHIFT_TAB_OISx[iChannel]);
1886 }
1887 
1903 __STATIC_INLINE void LL_TIM_OC_EnableFast(TIM_TypeDef *TIMx, uint32_t Channel)
1904 {
1905  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1906  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1907  SET_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel]));
1908 
1909 }
1910 
1925 __STATIC_INLINE void LL_TIM_OC_DisableFast(TIM_TypeDef *TIMx, uint32_t Channel)
1926 {
1927  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1928  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1929  CLEAR_BIT(*pReg, (TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel]));
1930 
1931 }
1932 
1947 __STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledFast(const TIM_TypeDef *TIMx, uint32_t Channel)
1948 {
1949  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1950  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1951  uint32_t bitfield = TIM_CCMR1_OC1FE << SHIFT_TAB_OCxx[iChannel];
1952  return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
1953 }
1954 
1969 __STATIC_INLINE void LL_TIM_OC_EnablePreload(TIM_TypeDef *TIMx, uint32_t Channel)
1970 {
1971  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1972  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1973  SET_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel]));
1974 }
1975 
1990 __STATIC_INLINE void LL_TIM_OC_DisablePreload(TIM_TypeDef *TIMx, uint32_t Channel)
1991 {
1992  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
1993  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
1994  CLEAR_BIT(*pReg, (TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel]));
1995 }
1996 
2011 __STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledPreload(const TIM_TypeDef *TIMx, uint32_t Channel)
2012 {
2013  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2014  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2015  uint32_t bitfield = TIM_CCMR1_OC1PE << SHIFT_TAB_OCxx[iChannel];
2016  return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2017 }
2018 
2036 __STATIC_INLINE void LL_TIM_OC_EnableClear(TIM_TypeDef *TIMx, uint32_t Channel)
2037 {
2038  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2039  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2040  SET_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]));
2041 }
2042 
2059 __STATIC_INLINE void LL_TIM_OC_DisableClear(TIM_TypeDef *TIMx, uint32_t Channel)
2060 {
2061  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2062  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2063  CLEAR_BIT(*pReg, (TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel]));
2064 }
2065 
2084 __STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledClear(const TIM_TypeDef *TIMx, uint32_t Channel)
2085 {
2086  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2087  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2088  uint32_t bitfield = TIM_CCMR1_OC1CE << SHIFT_TAB_OCxx[iChannel];
2089  return ((READ_BIT(*pReg, bitfield) == bitfield) ? 1UL : 0UL);
2090 }
2091 
2103 __STATIC_INLINE void LL_TIM_OC_SetDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime)
2104 {
2105  MODIFY_REG(TIMx->BDTR, TIM_BDTR_DTG, DeadTime);
2106 }
2107 
2120 __STATIC_INLINE void LL_TIM_OC_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue)
2121 {
2122  WRITE_REG(TIMx->CCR1, CompareValue);
2123 }
2124 
2137 __STATIC_INLINE void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue)
2138 {
2139  WRITE_REG(TIMx->CCR2, CompareValue);
2140 }
2141 
2154 __STATIC_INLINE void LL_TIM_OC_SetCompareCH3(TIM_TypeDef *TIMx, uint32_t CompareValue)
2155 {
2156  WRITE_REG(TIMx->CCR3, CompareValue);
2157 }
2158 
2171 __STATIC_INLINE void LL_TIM_OC_SetCompareCH4(TIM_TypeDef *TIMx, uint32_t CompareValue)
2172 {
2173  WRITE_REG(TIMx->CCR4, CompareValue);
2174 }
2175 
2187 __STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH1(const TIM_TypeDef *TIMx)
2188 {
2189  return (uint32_t)(READ_REG(TIMx->CCR1));
2190 }
2191 
2203 __STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH2(const TIM_TypeDef *TIMx)
2204 {
2205  return (uint32_t)(READ_REG(TIMx->CCR2));
2206 }
2207 
2219 __STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH3(const TIM_TypeDef *TIMx)
2220 {
2221  return (uint32_t)(READ_REG(TIMx->CCR3));
2222 }
2223 
2235 __STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH4(const TIM_TypeDef *TIMx)
2236 {
2237  return (uint32_t)(READ_REG(TIMx->CCR4));
2238 }
2239 
2282 __STATIC_INLINE void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
2283 {
2284  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2285  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2286  MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]),
2287  ((Configuration >> 16U) & (TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC | TIM_CCMR1_CC1S)) \
2288  << SHIFT_TAB_ICxx[iChannel]);
2289  MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]),
2290  (Configuration & (TIM_CCER_CC1NP | TIM_CCER_CC1P)) << SHIFT_TAB_CCxP[iChannel]);
2291 }
2292 
2311 __STATIC_INLINE void LL_TIM_IC_SetActiveInput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICActiveInput)
2312 {
2313  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2314  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2315  MODIFY_REG(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel]), (ICActiveInput >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2316 }
2317 
2335 __STATIC_INLINE uint32_t LL_TIM_IC_GetActiveInput(const TIM_TypeDef *TIMx, uint32_t Channel)
2336 {
2337  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2338  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2339  return ((READ_BIT(*pReg, ((TIM_CCMR1_CC1S) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2340 }
2341 
2361 __STATIC_INLINE void LL_TIM_IC_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPrescaler)
2362 {
2363  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2364  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2365  MODIFY_REG(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel]), (ICPrescaler >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2366 }
2367 
2386 __STATIC_INLINE uint32_t LL_TIM_IC_GetPrescaler(const TIM_TypeDef *TIMx, uint32_t Channel)
2387 {
2388  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2389  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2390  return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1PSC) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2391 }
2392 
2424 __STATIC_INLINE void LL_TIM_IC_SetFilter(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICFilter)
2425 {
2426  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2427  __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2428  MODIFY_REG(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel]), (ICFilter >> 16U) << SHIFT_TAB_ICxx[iChannel]);
2429 }
2430 
2461 __STATIC_INLINE uint32_t LL_TIM_IC_GetFilter(const TIM_TypeDef *TIMx, uint32_t Channel)
2462 {
2463  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2464  const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&TIMx->CCMR1) + OFFSET_TAB_CCMRx[iChannel]));
2465  return ((READ_BIT(*pReg, ((TIM_CCMR1_IC1F) << SHIFT_TAB_ICxx[iChannel])) >> SHIFT_TAB_ICxx[iChannel]) << 16U);
2466 }
2467 
2490 __STATIC_INLINE void LL_TIM_IC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPolarity)
2491 {
2492  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2493  MODIFY_REG(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel]),
2494  ICPolarity << SHIFT_TAB_CCxP[iChannel]);
2495 }
2496 
2518 __STATIC_INLINE uint32_t LL_TIM_IC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel)
2519 {
2520  uint8_t iChannel = TIM_GET_CHANNEL_INDEX(Channel);
2521  return (READ_BIT(TIMx->CCER, ((TIM_CCER_CC1NP | TIM_CCER_CC1P) << SHIFT_TAB_CCxP[iChannel])) >>
2522  SHIFT_TAB_CCxP[iChannel]);
2523 }
2524 
2533 __STATIC_INLINE void LL_TIM_IC_EnableXORCombination(TIM_TypeDef *TIMx)
2534 {
2535  SET_BIT(TIMx->CR2, TIM_CR2_TI1S);
2536 }
2537 
2546 __STATIC_INLINE void LL_TIM_IC_DisableXORCombination(TIM_TypeDef *TIMx)
2547 {
2548  CLEAR_BIT(TIMx->CR2, TIM_CR2_TI1S);
2549 }
2550 
2559 __STATIC_INLINE uint32_t LL_TIM_IC_IsEnabledXORCombination(const TIM_TypeDef *TIMx)
2560 {
2561  return ((READ_BIT(TIMx->CR2, TIM_CR2_TI1S) == (TIM_CR2_TI1S)) ? 1UL : 0UL);
2562 }
2563 
2575 __STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH1(const TIM_TypeDef *TIMx)
2576 {
2577  return (uint32_t)(READ_REG(TIMx->CCR1));
2578 }
2579 
2591 __STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH2(const TIM_TypeDef *TIMx)
2592 {
2593  return (uint32_t)(READ_REG(TIMx->CCR2));
2594 }
2595 
2607 __STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH3(const TIM_TypeDef *TIMx)
2608 {
2609  return (uint32_t)(READ_REG(TIMx->CCR3));
2610 }
2611 
2623 __STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH4(const TIM_TypeDef *TIMx)
2624 {
2625  return (uint32_t)(READ_REG(TIMx->CCR4));
2626 }
2627 
2644 __STATIC_INLINE void LL_TIM_EnableExternalClock(TIM_TypeDef *TIMx)
2645 {
2646  SET_BIT(TIMx->SMCR, TIM_SMCR_ECE);
2647 }
2648 
2657 __STATIC_INLINE void LL_TIM_DisableExternalClock(TIM_TypeDef *TIMx)
2658 {
2659  CLEAR_BIT(TIMx->SMCR, TIM_SMCR_ECE);
2660 }
2661 
2670 __STATIC_INLINE uint32_t LL_TIM_IsEnabledExternalClock(const TIM_TypeDef *TIMx)
2671 {
2672  return ((READ_BIT(TIMx->SMCR, TIM_SMCR_ECE) == (TIM_SMCR_ECE)) ? 1UL : 0UL);
2673 }
2674 
2694 __STATIC_INLINE void LL_TIM_SetClockSource(TIM_TypeDef *TIMx, uint32_t ClockSource)
2695 {
2696  MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS | TIM_SMCR_ECE, ClockSource);
2697 }
2698 
2711 __STATIC_INLINE void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode)
2712 {
2713  MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, EncoderMode);
2714 }
2715 
2740 __STATIC_INLINE void LL_TIM_SetTriggerOutput(TIM_TypeDef *TIMx, uint32_t TimerSynchronization)
2741 {
2742  MODIFY_REG(TIMx->CR2, TIM_CR2_MMS, TimerSynchronization);
2743 }
2744 
2758 __STATIC_INLINE void LL_TIM_SetSlaveMode(TIM_TypeDef *TIMx, uint32_t SlaveMode)
2759 {
2760  MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, SlaveMode);
2761 }
2762 
2780 __STATIC_INLINE void LL_TIM_SetTriggerInput(TIM_TypeDef *TIMx, uint32_t TriggerInput)
2781 {
2782  MODIFY_REG(TIMx->SMCR, TIM_SMCR_TS, TriggerInput);
2783 }
2784 
2793 __STATIC_INLINE void LL_TIM_EnableMasterSlaveMode(TIM_TypeDef *TIMx)
2794 {
2795  SET_BIT(TIMx->SMCR, TIM_SMCR_MSM);
2796 }
2797 
2806 __STATIC_INLINE void LL_TIM_DisableMasterSlaveMode(TIM_TypeDef *TIMx)
2807 {
2808  CLEAR_BIT(TIMx->SMCR, TIM_SMCR_MSM);
2809 }
2810 
2819 __STATIC_INLINE uint32_t LL_TIM_IsEnabledMasterSlaveMode(const TIM_TypeDef *TIMx)
2820 {
2821  return ((READ_BIT(TIMx->SMCR, TIM_SMCR_MSM) == (TIM_SMCR_MSM)) ? 1UL : 0UL);
2822 }
2823 
2859 __STATIC_INLINE void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler,
2860  uint32_t ETRFilter)
2861 {
2862  MODIFY_REG(TIMx->SMCR, TIM_SMCR_ETP | TIM_SMCR_ETPS | TIM_SMCR_ETF, ETRPolarity | ETRPrescaler | ETRFilter);
2863 }
2864 
2880 __STATIC_INLINE void LL_TIM_EnableBRK(TIM_TypeDef *TIMx)
2881 {
2882  __IO uint32_t tmpreg;
2883  SET_BIT(TIMx->BDTR, TIM_BDTR_BKE);
2884  /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */
2885  tmpreg = READ_REG(TIMx->BDTR);
2886  (void)(tmpreg);
2887 }
2888 
2897 __STATIC_INLINE void LL_TIM_DisableBRK(TIM_TypeDef *TIMx)
2898 {
2899  __IO uint32_t tmpreg;
2900  CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BKE);
2901  /* Note: Any write operation to this bit takes a delay of 1 APB clock cycle to become effective. */
2902  tmpreg = READ_REG(TIMx->BDTR);
2903  (void)(tmpreg);
2904 }
2905 
2917 __STATIC_INLINE void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity)
2918 {
2919  __IO uint32_t tmpreg;
2920  MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP, BreakPolarity);
2921  /* Note: Any write operation to BKP bit takes a delay of 1 APB clock cycle to become effective. */
2922  tmpreg = READ_REG(TIMx->BDTR);
2923  (void)(tmpreg);
2924 }
2925 
2941 __STATIC_INLINE void LL_TIM_SetOffStates(TIM_TypeDef *TIMx, uint32_t OffStateIdle, uint32_t OffStateRun)
2942 {
2943  MODIFY_REG(TIMx->BDTR, TIM_BDTR_OSSI | TIM_BDTR_OSSR, OffStateIdle | OffStateRun);
2944 }
2945 
2954 __STATIC_INLINE void LL_TIM_EnableAutomaticOutput(TIM_TypeDef *TIMx)
2955 {
2956  SET_BIT(TIMx->BDTR, TIM_BDTR_AOE);
2957 }
2958 
2967 __STATIC_INLINE void LL_TIM_DisableAutomaticOutput(TIM_TypeDef *TIMx)
2968 {
2969  CLEAR_BIT(TIMx->BDTR, TIM_BDTR_AOE);
2970 }
2971 
2980 __STATIC_INLINE uint32_t LL_TIM_IsEnabledAutomaticOutput(const TIM_TypeDef *TIMx)
2981 {
2982  return ((READ_BIT(TIMx->BDTR, TIM_BDTR_AOE) == (TIM_BDTR_AOE)) ? 1UL : 0UL);
2983 }
2984 
2995 __STATIC_INLINE void LL_TIM_EnableAllOutputs(TIM_TypeDef *TIMx)
2996 {
2997  SET_BIT(TIMx->BDTR, TIM_BDTR_MOE);
2998 }
2999 
3010 __STATIC_INLINE void LL_TIM_DisableAllOutputs(TIM_TypeDef *TIMx)
3011 {
3012  CLEAR_BIT(TIMx->BDTR, TIM_BDTR_MOE);
3013 }
3014 
3023 __STATIC_INLINE uint32_t LL_TIM_IsEnabledAllOutputs(const TIM_TypeDef *TIMx)
3024 {
3025  return ((READ_BIT(TIMx->BDTR, TIM_BDTR_MOE) == (TIM_BDTR_MOE)) ? 1UL : 0UL);
3026 }
3027 
3082 __STATIC_INLINE void LL_TIM_ConfigDMABurst(TIM_TypeDef *TIMx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength)
3083 {
3084  MODIFY_REG(TIMx->DCR, (TIM_DCR_DBL | TIM_DCR_DBA), (DMABurstBaseAddress | DMABurstLength));
3085 }
3086 
3152 __STATIC_INLINE void LL_TIM_SetRemap(TIM_TypeDef *TIMx, uint32_t Remap)
3153 {
3154 #if defined(LPTIM_OR_TIM1_ITR2_RMP) && defined(LPTIM_OR_TIM5_ITR1_RMP) && defined(LPTIM_OR_TIM9_ITR1_RMP)
3155  if ((Remap & LL_TIM_LPTIM_REMAP_MASK) == LL_TIM_LPTIM_REMAP_MASK)
3156  {
3157  /* Connect TIMx internal trigger to LPTIM1 output */
3158  SET_BIT(RCC->APB1ENR, RCC_APB1ENR_LPTIM1EN);
3159  MODIFY_REG(LPTIM1->OR,
3160  (LPTIM_OR_TIM1_ITR2_RMP | LPTIM_OR_TIM5_ITR1_RMP | LPTIM_OR_TIM9_ITR1_RMP),
3161  Remap & ~(LL_TIM_LPTIM_REMAP_MASK));
3162  }
3163  else
3164  {
3165  MODIFY_REG(TIMx->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK));
3166  }
3167 #else
3168  MODIFY_REG(TIMx->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK));
3169 #endif /* LPTIM_OR_TIM1_ITR2_RMP && LPTIM_OR_TIM5_ITR1_RMP && LPTIM_OR_TIM9_ITR1_RMP */
3170 }
3171 
3185 __STATIC_INLINE void LL_TIM_ClearFlag_UPDATE(TIM_TypeDef *TIMx)
3186 {
3187  WRITE_REG(TIMx->SR, ~(TIM_SR_UIF));
3188 }
3189 
3196 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_UPDATE(const TIM_TypeDef *TIMx)
3197 {
3198  return ((READ_BIT(TIMx->SR, TIM_SR_UIF) == (TIM_SR_UIF)) ? 1UL : 0UL);
3199 }
3200 
3207 __STATIC_INLINE void LL_TIM_ClearFlag_CC1(TIM_TypeDef *TIMx)
3208 {
3209  WRITE_REG(TIMx->SR, ~(TIM_SR_CC1IF));
3210 }
3211 
3218 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1(const TIM_TypeDef *TIMx)
3219 {
3220  return ((READ_BIT(TIMx->SR, TIM_SR_CC1IF) == (TIM_SR_CC1IF)) ? 1UL : 0UL);
3221 }
3222 
3229 __STATIC_INLINE void LL_TIM_ClearFlag_CC2(TIM_TypeDef *TIMx)
3230 {
3231  WRITE_REG(TIMx->SR, ~(TIM_SR_CC2IF));
3232 }
3233 
3240 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2(const TIM_TypeDef *TIMx)
3241 {
3242  return ((READ_BIT(TIMx->SR, TIM_SR_CC2IF) == (TIM_SR_CC2IF)) ? 1UL : 0UL);
3243 }
3244 
3251 __STATIC_INLINE void LL_TIM_ClearFlag_CC3(TIM_TypeDef *TIMx)
3252 {
3253  WRITE_REG(TIMx->SR, ~(TIM_SR_CC3IF));
3254 }
3255 
3262 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3(const TIM_TypeDef *TIMx)
3263 {
3264  return ((READ_BIT(TIMx->SR, TIM_SR_CC3IF) == (TIM_SR_CC3IF)) ? 1UL : 0UL);
3265 }
3266 
3273 __STATIC_INLINE void LL_TIM_ClearFlag_CC4(TIM_TypeDef *TIMx)
3274 {
3275  WRITE_REG(TIMx->SR, ~(TIM_SR_CC4IF));
3276 }
3277 
3284 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4(const TIM_TypeDef *TIMx)
3285 {
3286  return ((READ_BIT(TIMx->SR, TIM_SR_CC4IF) == (TIM_SR_CC4IF)) ? 1UL : 0UL);
3287 }
3288 
3295 __STATIC_INLINE void LL_TIM_ClearFlag_COM(TIM_TypeDef *TIMx)
3296 {
3297  WRITE_REG(TIMx->SR, ~(TIM_SR_COMIF));
3298 }
3299 
3306 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_COM(const TIM_TypeDef *TIMx)
3307 {
3308  return ((READ_BIT(TIMx->SR, TIM_SR_COMIF) == (TIM_SR_COMIF)) ? 1UL : 0UL);
3309 }
3310 
3317 __STATIC_INLINE void LL_TIM_ClearFlag_TRIG(TIM_TypeDef *TIMx)
3318 {
3319  WRITE_REG(TIMx->SR, ~(TIM_SR_TIF));
3320 }
3321 
3328 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_TRIG(const TIM_TypeDef *TIMx)
3329 {
3330  return ((READ_BIT(TIMx->SR, TIM_SR_TIF) == (TIM_SR_TIF)) ? 1UL : 0UL);
3331 }
3332 
3339 __STATIC_INLINE void LL_TIM_ClearFlag_BRK(TIM_TypeDef *TIMx)
3340 {
3341  WRITE_REG(TIMx->SR, ~(TIM_SR_BIF));
3342 }
3343 
3350 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK(const TIM_TypeDef *TIMx)
3351 {
3352  return ((READ_BIT(TIMx->SR, TIM_SR_BIF) == (TIM_SR_BIF)) ? 1UL : 0UL);
3353 }
3354 
3361 __STATIC_INLINE void LL_TIM_ClearFlag_CC1OVR(TIM_TypeDef *TIMx)
3362 {
3363  WRITE_REG(TIMx->SR, ~(TIM_SR_CC1OF));
3364 }
3365 
3373 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1OVR(const TIM_TypeDef *TIMx)
3374 {
3375  return ((READ_BIT(TIMx->SR, TIM_SR_CC1OF) == (TIM_SR_CC1OF)) ? 1UL : 0UL);
3376 }
3377 
3384 __STATIC_INLINE void LL_TIM_ClearFlag_CC2OVR(TIM_TypeDef *TIMx)
3385 {
3386  WRITE_REG(TIMx->SR, ~(TIM_SR_CC2OF));
3387 }
3388 
3396 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2OVR(const TIM_TypeDef *TIMx)
3397 {
3398  return ((READ_BIT(TIMx->SR, TIM_SR_CC2OF) == (TIM_SR_CC2OF)) ? 1UL : 0UL);
3399 }
3400 
3407 __STATIC_INLINE void LL_TIM_ClearFlag_CC3OVR(TIM_TypeDef *TIMx)
3408 {
3409  WRITE_REG(TIMx->SR, ~(TIM_SR_CC3OF));
3410 }
3411 
3419 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3OVR(const TIM_TypeDef *TIMx)
3420 {
3421  return ((READ_BIT(TIMx->SR, TIM_SR_CC3OF) == (TIM_SR_CC3OF)) ? 1UL : 0UL);
3422 }
3423 
3430 __STATIC_INLINE void LL_TIM_ClearFlag_CC4OVR(TIM_TypeDef *TIMx)
3431 {
3432  WRITE_REG(TIMx->SR, ~(TIM_SR_CC4OF));
3433 }
3434 
3442 __STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4OVR(const TIM_TypeDef *TIMx)
3443 {
3444  return ((READ_BIT(TIMx->SR, TIM_SR_CC4OF) == (TIM_SR_CC4OF)) ? 1UL : 0UL);
3445 }
3446 
3460 __STATIC_INLINE void LL_TIM_EnableIT_UPDATE(TIM_TypeDef *TIMx)
3461 {
3462  SET_BIT(TIMx->DIER, TIM_DIER_UIE);
3463 }
3464 
3471 __STATIC_INLINE void LL_TIM_DisableIT_UPDATE(TIM_TypeDef *TIMx)
3472 {
3473  CLEAR_BIT(TIMx->DIER, TIM_DIER_UIE);
3474 }
3475 
3482 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_UPDATE(const TIM_TypeDef *TIMx)
3483 {
3484  return ((READ_BIT(TIMx->DIER, TIM_DIER_UIE) == (TIM_DIER_UIE)) ? 1UL : 0UL);
3485 }
3486 
3493 __STATIC_INLINE void LL_TIM_EnableIT_CC1(TIM_TypeDef *TIMx)
3494 {
3495  SET_BIT(TIMx->DIER, TIM_DIER_CC1IE);
3496 }
3497 
3504 __STATIC_INLINE void LL_TIM_DisableIT_CC1(TIM_TypeDef *TIMx)
3505 {
3506  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1IE);
3507 }
3508 
3515 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC1(const TIM_TypeDef *TIMx)
3516 {
3517  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1IE) == (TIM_DIER_CC1IE)) ? 1UL : 0UL);
3518 }
3519 
3526 __STATIC_INLINE void LL_TIM_EnableIT_CC2(TIM_TypeDef *TIMx)
3527 {
3528  SET_BIT(TIMx->DIER, TIM_DIER_CC2IE);
3529 }
3530 
3537 __STATIC_INLINE void LL_TIM_DisableIT_CC2(TIM_TypeDef *TIMx)
3538 {
3539  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2IE);
3540 }
3541 
3548 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC2(const TIM_TypeDef *TIMx)
3549 {
3550  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2IE) == (TIM_DIER_CC2IE)) ? 1UL : 0UL);
3551 }
3552 
3559 __STATIC_INLINE void LL_TIM_EnableIT_CC3(TIM_TypeDef *TIMx)
3560 {
3561  SET_BIT(TIMx->DIER, TIM_DIER_CC3IE);
3562 }
3563 
3570 __STATIC_INLINE void LL_TIM_DisableIT_CC3(TIM_TypeDef *TIMx)
3571 {
3572  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3IE);
3573 }
3574 
3581 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC3(const TIM_TypeDef *TIMx)
3582 {
3583  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3IE) == (TIM_DIER_CC3IE)) ? 1UL : 0UL);
3584 }
3585 
3592 __STATIC_INLINE void LL_TIM_EnableIT_CC4(TIM_TypeDef *TIMx)
3593 {
3594  SET_BIT(TIMx->DIER, TIM_DIER_CC4IE);
3595 }
3596 
3603 __STATIC_INLINE void LL_TIM_DisableIT_CC4(TIM_TypeDef *TIMx)
3604 {
3605  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4IE);
3606 }
3607 
3614 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC4(const TIM_TypeDef *TIMx)
3615 {
3616  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4IE) == (TIM_DIER_CC4IE)) ? 1UL : 0UL);
3617 }
3618 
3625 __STATIC_INLINE void LL_TIM_EnableIT_COM(TIM_TypeDef *TIMx)
3626 {
3627  SET_BIT(TIMx->DIER, TIM_DIER_COMIE);
3628 }
3629 
3636 __STATIC_INLINE void LL_TIM_DisableIT_COM(TIM_TypeDef *TIMx)
3637 {
3638  CLEAR_BIT(TIMx->DIER, TIM_DIER_COMIE);
3639 }
3640 
3647 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_COM(const TIM_TypeDef *TIMx)
3648 {
3649  return ((READ_BIT(TIMx->DIER, TIM_DIER_COMIE) == (TIM_DIER_COMIE)) ? 1UL : 0UL);
3650 }
3651 
3658 __STATIC_INLINE void LL_TIM_EnableIT_TRIG(TIM_TypeDef *TIMx)
3659 {
3660  SET_BIT(TIMx->DIER, TIM_DIER_TIE);
3661 }
3662 
3669 __STATIC_INLINE void LL_TIM_DisableIT_TRIG(TIM_TypeDef *TIMx)
3670 {
3671  CLEAR_BIT(TIMx->DIER, TIM_DIER_TIE);
3672 }
3673 
3680 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TRIG(const TIM_TypeDef *TIMx)
3681 {
3682  return ((READ_BIT(TIMx->DIER, TIM_DIER_TIE) == (TIM_DIER_TIE)) ? 1UL : 0UL);
3683 }
3684 
3691 __STATIC_INLINE void LL_TIM_EnableIT_BRK(TIM_TypeDef *TIMx)
3692 {
3693  SET_BIT(TIMx->DIER, TIM_DIER_BIE);
3694 }
3695 
3702 __STATIC_INLINE void LL_TIM_DisableIT_BRK(TIM_TypeDef *TIMx)
3703 {
3704  CLEAR_BIT(TIMx->DIER, TIM_DIER_BIE);
3705 }
3706 
3713 __STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_BRK(const TIM_TypeDef *TIMx)
3714 {
3715  return ((READ_BIT(TIMx->DIER, TIM_DIER_BIE) == (TIM_DIER_BIE)) ? 1UL : 0UL);
3716 }
3717 
3731 __STATIC_INLINE void LL_TIM_EnableDMAReq_UPDATE(TIM_TypeDef *TIMx)
3732 {
3733  SET_BIT(TIMx->DIER, TIM_DIER_UDE);
3734 }
3735 
3742 __STATIC_INLINE void LL_TIM_DisableDMAReq_UPDATE(TIM_TypeDef *TIMx)
3743 {
3744  CLEAR_BIT(TIMx->DIER, TIM_DIER_UDE);
3745 }
3746 
3753 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_UPDATE(const TIM_TypeDef *TIMx)
3754 {
3755  return ((READ_BIT(TIMx->DIER, TIM_DIER_UDE) == (TIM_DIER_UDE)) ? 1UL : 0UL);
3756 }
3757 
3764 __STATIC_INLINE void LL_TIM_EnableDMAReq_CC1(TIM_TypeDef *TIMx)
3765 {
3766  SET_BIT(TIMx->DIER, TIM_DIER_CC1DE);
3767 }
3768 
3775 __STATIC_INLINE void LL_TIM_DisableDMAReq_CC1(TIM_TypeDef *TIMx)
3776 {
3777  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1DE);
3778 }
3779 
3786 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC1(const TIM_TypeDef *TIMx)
3787 {
3788  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1DE) == (TIM_DIER_CC1DE)) ? 1UL : 0UL);
3789 }
3790 
3797 __STATIC_INLINE void LL_TIM_EnableDMAReq_CC2(TIM_TypeDef *TIMx)
3798 {
3799  SET_BIT(TIMx->DIER, TIM_DIER_CC2DE);
3800 }
3801 
3808 __STATIC_INLINE void LL_TIM_DisableDMAReq_CC2(TIM_TypeDef *TIMx)
3809 {
3810  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2DE);
3811 }
3812 
3819 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC2(const TIM_TypeDef *TIMx)
3820 {
3821  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2DE) == (TIM_DIER_CC2DE)) ? 1UL : 0UL);
3822 }
3823 
3830 __STATIC_INLINE void LL_TIM_EnableDMAReq_CC3(TIM_TypeDef *TIMx)
3831 {
3832  SET_BIT(TIMx->DIER, TIM_DIER_CC3DE);
3833 }
3834 
3841 __STATIC_INLINE void LL_TIM_DisableDMAReq_CC3(TIM_TypeDef *TIMx)
3842 {
3843  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3DE);
3844 }
3845 
3852 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC3(const TIM_TypeDef *TIMx)
3853 {
3854  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3DE) == (TIM_DIER_CC3DE)) ? 1UL : 0UL);
3855 }
3856 
3863 __STATIC_INLINE void LL_TIM_EnableDMAReq_CC4(TIM_TypeDef *TIMx)
3864 {
3865  SET_BIT(TIMx->DIER, TIM_DIER_CC4DE);
3866 }
3867 
3874 __STATIC_INLINE void LL_TIM_DisableDMAReq_CC4(TIM_TypeDef *TIMx)
3875 {
3876  CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4DE);
3877 }
3878 
3885 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC4(const TIM_TypeDef *TIMx)
3886 {
3887  return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4DE) == (TIM_DIER_CC4DE)) ? 1UL : 0UL);
3888 }
3889 
3896 __STATIC_INLINE void LL_TIM_EnableDMAReq_COM(TIM_TypeDef *TIMx)
3897 {
3898  SET_BIT(TIMx->DIER, TIM_DIER_COMDE);
3899 }
3900 
3907 __STATIC_INLINE void LL_TIM_DisableDMAReq_COM(TIM_TypeDef *TIMx)
3908 {
3909  CLEAR_BIT(TIMx->DIER, TIM_DIER_COMDE);
3910 }
3911 
3918 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_COM(const TIM_TypeDef *TIMx)
3919 {
3920  return ((READ_BIT(TIMx->DIER, TIM_DIER_COMDE) == (TIM_DIER_COMDE)) ? 1UL : 0UL);
3921 }
3922 
3929 __STATIC_INLINE void LL_TIM_EnableDMAReq_TRIG(TIM_TypeDef *TIMx)
3930 {
3931  SET_BIT(TIMx->DIER, TIM_DIER_TDE);
3932 }
3933 
3940 __STATIC_INLINE void LL_TIM_DisableDMAReq_TRIG(TIM_TypeDef *TIMx)
3941 {
3942  CLEAR_BIT(TIMx->DIER, TIM_DIER_TDE);
3943 }
3944 
3951 __STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_TRIG(const TIM_TypeDef *TIMx)
3952 {
3953  return ((READ_BIT(TIMx->DIER, TIM_DIER_TDE) == (TIM_DIER_TDE)) ? 1UL : 0UL);
3954 }
3955 
3969 __STATIC_INLINE void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx)
3970 {
3971  SET_BIT(TIMx->EGR, TIM_EGR_UG);
3972 }
3973 
3980 __STATIC_INLINE void LL_TIM_GenerateEvent_CC1(TIM_TypeDef *TIMx)
3981 {
3982  SET_BIT(TIMx->EGR, TIM_EGR_CC1G);
3983 }
3984 
3991 __STATIC_INLINE void LL_TIM_GenerateEvent_CC2(TIM_TypeDef *TIMx)
3992 {
3993  SET_BIT(TIMx->EGR, TIM_EGR_CC2G);
3994 }
3995 
4002 __STATIC_INLINE void LL_TIM_GenerateEvent_CC3(TIM_TypeDef *TIMx)
4003 {
4004  SET_BIT(TIMx->EGR, TIM_EGR_CC3G);
4005 }
4006 
4013 __STATIC_INLINE void LL_TIM_GenerateEvent_CC4(TIM_TypeDef *TIMx)
4014 {
4015  SET_BIT(TIMx->EGR, TIM_EGR_CC4G);
4016 }
4017 
4024 __STATIC_INLINE void LL_TIM_GenerateEvent_COM(TIM_TypeDef *TIMx)
4025 {
4026  SET_BIT(TIMx->EGR, TIM_EGR_COMG);
4027 }
4028 
4035 __STATIC_INLINE void LL_TIM_GenerateEvent_TRIG(TIM_TypeDef *TIMx)
4036 {
4037  SET_BIT(TIMx->EGR, TIM_EGR_TG);
4038 }
4039 
4046 __STATIC_INLINE void LL_TIM_GenerateEvent_BRK(TIM_TypeDef *TIMx)
4047 {
4048  SET_BIT(TIMx->EGR, TIM_EGR_BG);
4049 }
4050 
4055 #if defined(USE_FULL_LL_DRIVER)
4060 ErrorStatus LL_TIM_DeInit(const TIM_TypeDef *TIMx);
4061 void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct);
4062 ErrorStatus LL_TIM_Init(TIM_TypeDef *TIMx, const LL_TIM_InitTypeDef *TIM_InitStruct);
4063 void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
4064 ErrorStatus LL_TIM_OC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct);
4065 void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct);
4066 ErrorStatus LL_TIM_IC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct);
4067 void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
4068 ErrorStatus LL_TIM_ENCODER_Init(TIM_TypeDef *TIMx, const LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct);
4069 void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
4070 ErrorStatus LL_TIM_HALLSENSOR_Init(TIM_TypeDef *TIMx, const LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct);
4071 void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct);
4072 ErrorStatus LL_TIM_BDTR_Init(TIM_TypeDef *TIMx, const LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct);
4076 #endif /* USE_FULL_LL_DRIVER */
4077 
4086 #endif /* TIM1 || TIM2 || TIM3 || TIM4 || TIM5 || TIM6 || TIM7 || TIM8 || TIM9 || TIM10 || TIM11 || TIM12 || TIM13 || TIM14 */
4087 
4092 #ifdef __cplusplus
4093 }
4094 #endif
4095 
4096 #endif /* __STM32F4xx_LL_TIM_H */
__STATIC_INLINE void LL_TIM_SetOffStates(TIM_TypeDef *TIMx, uint32_t OffStateIdle, uint32_t OffStateRun)
Select the outputs off state (enabled v.s. disabled) in Idle and Run modes.
__STATIC_INLINE void LL_TIM_EnableAllOutputs(TIM_TypeDef *TIMx)
Enable the outputs (set the MOE bit in TIMx_BDTR register).
__STATIC_INLINE uint32_t LL_TIM_IsEnabledAutomaticOutput(const TIM_TypeDef *TIMx)
Indicate whether automatic output is enabled.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledAllOutputs(const TIM_TypeDef *TIMx)
Indicates whether outputs are enabled.
__STATIC_INLINE void LL_TIM_DisableBRK(TIM_TypeDef *TIMx)
Disable the break function. @rmtoll BDTR BKE LL_TIM_DisableBRK.
__STATIC_INLINE void LL_TIM_EnableAutomaticOutput(TIM_TypeDef *TIMx)
Enable automatic output (MOE can be set by software or automatically when a break input is active).
__STATIC_INLINE void LL_TIM_DisableAllOutputs(TIM_TypeDef *TIMx)
Disable the outputs (reset the MOE bit in TIMx_BDTR register).
__STATIC_INLINE void LL_TIM_DisableAutomaticOutput(TIM_TypeDef *TIMx)
Disable automatic output (MOE can be set only by software).
__STATIC_INLINE void LL_TIM_EnableBRK(TIM_TypeDef *TIMx)
Enable the break function.
__STATIC_INLINE void LL_TIM_ConfigBRK(TIM_TypeDef *TIMx, uint32_t BreakPolarity)
Configure the break input.
__STATIC_INLINE void LL_TIM_CC_EnablePreload(TIM_TypeDef *TIMx)
Enable the capture/compare control bits (CCxE, CCxNE and OCxM) preload.
__STATIC_INLINE void LL_TIM_CC_DisableChannel(TIM_TypeDef *TIMx, uint32_t Channels)
Disable capture/compare channels. @rmtoll CCER CC1E LL_TIM_CC_DisableChannel CCER CC1NE LL_TIM_CC_Di...
__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledPreload(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare control bits (CCxE, CCxNE and OCxM) preload is enabled....
__STATIC_INLINE void LL_TIM_CC_SetUpdate(TIM_TypeDef *TIMx, uint32_t CCUpdateSource)
Set the updated source of the capture/compare control bits (CCxE, CCxNE and OCxM).
__STATIC_INLINE void LL_TIM_CC_SetDMAReqTrigger(TIM_TypeDef *TIMx, uint32_t DMAReqTrigger)
Set the trigger of the capture/compare DMA request. @rmtoll CR2 CCDS LL_TIM_CC_SetDMAReqTrigger.
__STATIC_INLINE void LL_TIM_CC_DisablePreload(TIM_TypeDef *TIMx)
Disable the capture/compare control bits (CCxE, CCxNE and OCxM) preload.
__STATIC_INLINE uint32_t LL_TIM_CC_GetDMAReqTrigger(const TIM_TypeDef *TIMx)
Get actual trigger of the capture/compare DMA request. @rmtoll CR2 CCDS LL_TIM_CC_GetDMAReqTrigger.
__STATIC_INLINE void LL_TIM_CC_SetLockLevel(TIM_TypeDef *TIMx, uint32_t LockLevel)
Set the lock level to freeze the configuration of several capture/compare parameters.
__STATIC_INLINE uint32_t LL_TIM_CC_IsEnabledChannel(const TIM_TypeDef *TIMx, uint32_t Channels)
Indicate whether channel(s) is(are) enabled. @rmtoll CCER CC1E LL_TIM_CC_IsEnabledChannel CCER CC1NE...
__STATIC_INLINE void LL_TIM_CC_EnableChannel(TIM_TypeDef *TIMx, uint32_t Channels)
Enable capture/compare channels. @rmtoll CCER CC1E LL_TIM_CC_EnableChannel CCER CC1NE LL_TIM_CC_Enab...
__STATIC_INLINE void LL_TIM_SetClockSource(TIM_TypeDef *TIMx, uint32_t ClockSource)
Set the clock source of the counter clock.
__STATIC_INLINE void LL_TIM_EnableExternalClock(TIM_TypeDef *TIMx)
Enable external clock mode 2.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledExternalClock(const TIM_TypeDef *TIMx)
Indicate whether external clock mode 2 is enabled.
__STATIC_INLINE void LL_TIM_DisableExternalClock(TIM_TypeDef *TIMx)
Disable external clock mode 2.
__STATIC_INLINE void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode)
Set the encoder interface mode.
__STATIC_INLINE void LL_TIM_ConfigDMABurst(TIM_TypeDef *TIMx, uint32_t DMABurstBaseAddress, uint32_t DMABurstLength)
Configures the timer DMA burst feature.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_TRIG(const TIM_TypeDef *TIMx)
Indicates whether the trigger interrupt (TDE) is enabled. @rmtoll DIER TDE LL_TIM_IsEnabledDMAReq_TRI...
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC3(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 3 DMA request (CC3DE) is enabled. @rmtoll DIER CC3DE LL_TIM_IsE...
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC1(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 1 DMA request (CC1DE) is enabled. @rmtoll DIER CC1DE LL_TIM_IsE...
__STATIC_INLINE void LL_TIM_DisableDMAReq_TRIG(TIM_TypeDef *TIMx)
Disable trigger interrupt (TDE). @rmtoll DIER TDE LL_TIM_DisableDMAReq_TRIG.
__STATIC_INLINE void LL_TIM_EnableDMAReq_TRIG(TIM_TypeDef *TIMx)
Enable trigger interrupt (TDE). @rmtoll DIER TDE LL_TIM_EnableDMAReq_TRIG.
__STATIC_INLINE void LL_TIM_EnableDMAReq_CC4(TIM_TypeDef *TIMx)
Enable capture/compare 4 DMA request (CC4DE). @rmtoll DIER CC4DE LL_TIM_EnableDMAReq_CC4.
__STATIC_INLINE void LL_TIM_DisableDMAReq_UPDATE(TIM_TypeDef *TIMx)
Disable update DMA request (UDE). @rmtoll DIER UDE LL_TIM_DisableDMAReq_UPDATE.
__STATIC_INLINE void LL_TIM_DisableDMAReq_CC2(TIM_TypeDef *TIMx)
Disable capture/compare 2 DMA request (CC2DE). @rmtoll DIER CC2DE LL_TIM_DisableDMAReq_CC2.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_UPDATE(const TIM_TypeDef *TIMx)
Indicates whether the update DMA request (UDE) is enabled. @rmtoll DIER UDE LL_TIM_IsEnabledDMAReq_UP...
__STATIC_INLINE void LL_TIM_DisableDMAReq_COM(TIM_TypeDef *TIMx)
Disable commutation DMA request (COMDE). @rmtoll DIER COMDE LL_TIM_DisableDMAReq_COM.
__STATIC_INLINE void LL_TIM_EnableDMAReq_CC1(TIM_TypeDef *TIMx)
Enable capture/compare 1 DMA request (CC1DE). @rmtoll DIER CC1DE LL_TIM_EnableDMAReq_CC1.
__STATIC_INLINE void LL_TIM_DisableDMAReq_CC4(TIM_TypeDef *TIMx)
Disable capture/compare 4 DMA request (CC4DE). @rmtoll DIER CC4DE LL_TIM_DisableDMAReq_CC4.
__STATIC_INLINE void LL_TIM_DisableDMAReq_CC1(TIM_TypeDef *TIMx)
Disable capture/compare 1 DMA request (CC1DE). @rmtoll DIER CC1DE LL_TIM_DisableDMAReq_CC1.
__STATIC_INLINE void LL_TIM_EnableDMAReq_UPDATE(TIM_TypeDef *TIMx)
Enable update DMA request (UDE). @rmtoll DIER UDE LL_TIM_EnableDMAReq_UPDATE.
__STATIC_INLINE void LL_TIM_DisableDMAReq_CC3(TIM_TypeDef *TIMx)
Disable capture/compare 3 DMA request (CC3DE). @rmtoll DIER CC3DE LL_TIM_DisableDMAReq_CC3.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_COM(const TIM_TypeDef *TIMx)
Indicates whether the commutation DMA request (COMDE) is enabled. @rmtoll DIER COMDE LL_TIM_IsEnabled...
__STATIC_INLINE void LL_TIM_EnableDMAReq_COM(TIM_TypeDef *TIMx)
Enable commutation DMA request (COMDE). @rmtoll DIER COMDE LL_TIM_EnableDMAReq_COM.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC4(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 4 DMA request (CC4DE) is enabled. @rmtoll DIER CC4DE LL_TIM_IsE...
__STATIC_INLINE void LL_TIM_EnableDMAReq_CC2(TIM_TypeDef *TIMx)
Enable capture/compare 2 DMA request (CC2DE). @rmtoll DIER CC2DE LL_TIM_EnableDMAReq_CC2.
__STATIC_INLINE void LL_TIM_EnableDMAReq_CC3(TIM_TypeDef *TIMx)
Enable capture/compare 3 DMA request (CC3DE). @rmtoll DIER CC3DE LL_TIM_EnableDMAReq_CC3.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledDMAReq_CC2(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 2 DMA request (CC2DE) is enabled. @rmtoll DIER CC2DE LL_TIM_IsE...
__STATIC_INLINE void LL_TIM_GenerateEvent_BRK(TIM_TypeDef *TIMx)
Generate break event. @rmtoll EGR BG LL_TIM_GenerateEvent_BRK.
__STATIC_INLINE void LL_TIM_GenerateEvent_COM(TIM_TypeDef *TIMx)
Generate commutation event. @rmtoll EGR COMG LL_TIM_GenerateEvent_COM.
__STATIC_INLINE void LL_TIM_GenerateEvent_CC2(TIM_TypeDef *TIMx)
Generate Capture/Compare 2 event. @rmtoll EGR CC2G LL_TIM_GenerateEvent_CC2.
__STATIC_INLINE void LL_TIM_GenerateEvent_CC4(TIM_TypeDef *TIMx)
Generate Capture/Compare 4 event. @rmtoll EGR CC4G LL_TIM_GenerateEvent_CC4.
__STATIC_INLINE void LL_TIM_GenerateEvent_CC3(TIM_TypeDef *TIMx)
Generate Capture/Compare 3 event. @rmtoll EGR CC3G LL_TIM_GenerateEvent_CC3.
__STATIC_INLINE void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx)
Generate an update event. @rmtoll EGR UG LL_TIM_GenerateEvent_UPDATE.
__STATIC_INLINE void LL_TIM_GenerateEvent_TRIG(TIM_TypeDef *TIMx)
Generate trigger event. @rmtoll EGR TG LL_TIM_GenerateEvent_TRIG.
__STATIC_INLINE void LL_TIM_GenerateEvent_CC1(TIM_TypeDef *TIMx)
Generate Capture/Compare 1 event. @rmtoll EGR CC1G LL_TIM_GenerateEvent_CC1.
__STATIC_INLINE void LL_TIM_ClearFlag_UPDATE(TIM_TypeDef *TIMx)
Clear the update interrupt flag (UIF). @rmtoll SR UIF LL_TIM_ClearFlag_UPDATE.
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3OVR(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 3 over-capture interrupt flag (CC3OF) is set (Capture/Compare 3 over...
__STATIC_INLINE void LL_TIM_ClearFlag_BRK(TIM_TypeDef *TIMx)
Clear the break interrupt flag (BIF). @rmtoll SR BIF LL_TIM_ClearFlag_BRK.
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC3(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 3 interrupt flag (CC3F) is set (Capture/Compare 3 interrupt is pendi...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2OVR(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 2 over-capture interrupt flag (CC2OF) is set (Capture/Compare 2 over...
__STATIC_INLINE void LL_TIM_ClearFlag_COM(TIM_TypeDef *TIMx)
Clear the commutation interrupt flag (COMIF). @rmtoll SR COMIF LL_TIM_ClearFlag_COM.
__STATIC_INLINE void LL_TIM_ClearFlag_CC3(TIM_TypeDef *TIMx)
Clear the Capture/Compare 3 interrupt flag (CC3F). @rmtoll SR CC3IF LL_TIM_ClearFlag_CC3.
__STATIC_INLINE void LL_TIM_ClearFlag_CC1OVR(TIM_TypeDef *TIMx)
Clear the Capture/Compare 1 over-capture interrupt flag (CC1OF). @rmtoll SR CC1OF LL_TIM_ClearFlag_CC...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 1 interrupt flag (CC1F) is set (Capture/Compare 1 interrupt is pendi...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4OVR(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 4 over-capture interrupt flag (CC4OF) is set (Capture/Compare 4 over...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_BRK(const TIM_TypeDef *TIMx)
Indicate whether break interrupt flag (BIF) is set (break interrupt is pending). @rmtoll SR BIF LL_TI...
__STATIC_INLINE void LL_TIM_ClearFlag_TRIG(TIM_TypeDef *TIMx)
Clear the trigger interrupt flag (TIF). @rmtoll SR TIF LL_TIM_ClearFlag_TRIG.
__STATIC_INLINE void LL_TIM_ClearFlag_CC4(TIM_TypeDef *TIMx)
Clear the Capture/Compare 4 interrupt flag (CC4F). @rmtoll SR CC4IF LL_TIM_ClearFlag_CC4.
__STATIC_INLINE void LL_TIM_ClearFlag_CC3OVR(TIM_TypeDef *TIMx)
Clear the Capture/Compare 3 over-capture interrupt flag (CC3OF). @rmtoll SR CC3OF LL_TIM_ClearFlag_CC...
__STATIC_INLINE void LL_TIM_ClearFlag_CC2(TIM_TypeDef *TIMx)
Clear the Capture/Compare 2 interrupt flag (CC2F). @rmtoll SR CC2IF LL_TIM_ClearFlag_CC2.
__STATIC_INLINE void LL_TIM_ClearFlag_CC2OVR(TIM_TypeDef *TIMx)
Clear the Capture/Compare 2 over-capture interrupt flag (CC2OF). @rmtoll SR CC2OF LL_TIM_ClearFlag_CC...
__STATIC_INLINE void LL_TIM_ClearFlag_CC4OVR(TIM_TypeDef *TIMx)
Clear the Capture/Compare 4 over-capture interrupt flag (CC4OF). @rmtoll SR CC4OF LL_TIM_ClearFlag_CC...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_UPDATE(const TIM_TypeDef *TIMx)
Indicate whether update interrupt flag (UIF) is set (update interrupt is pending)....
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_TRIG(const TIM_TypeDef *TIMx)
Indicate whether trigger interrupt flag (TIF) is set (trigger interrupt is pending)....
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_COM(const TIM_TypeDef *TIMx)
Indicate whether commutation interrupt flag (COMIF) is set (commutation interrupt is pending)....
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC2(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 2 interrupt flag (CC2F) is set (Capture/Compare 2 interrupt is pendi...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC1OVR(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 1 over-capture interrupt flag (CC1OF) is set (Capture/Compare 1 inte...
__STATIC_INLINE uint32_t LL_TIM_IsActiveFlag_CC4(const TIM_TypeDef *TIMx)
Indicate whether Capture/Compare 4 interrupt flag (CC4F) is set (Capture/Compare 4 interrupt is pendi...
__STATIC_INLINE void LL_TIM_ClearFlag_CC1(TIM_TypeDef *TIMx)
Clear the Capture/Compare 1 interrupt flag (CC1F). @rmtoll SR CC1IF LL_TIM_ClearFlag_CC1.
__STATIC_INLINE void LL_TIM_DisableIT_BRK(TIM_TypeDef *TIMx)
Disable break interrupt (BIE). @rmtoll DIER BIE LL_TIM_DisableIT_BRK.
__STATIC_INLINE void LL_TIM_DisableIT_CC4(TIM_TypeDef *TIMx)
Disable capture/compare 4 interrupt (CC4IE). @rmtoll DIER CC4IE LL_TIM_DisableIT_CC4.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC1(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 1 interrupt (CC1IE) is enabled. @rmtoll DIER CC1IE LL_TIM_IsEna...
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_UPDATE(const TIM_TypeDef *TIMx)
Indicates whether the update interrupt (UIE) is enabled. @rmtoll DIER UIE LL_TIM_IsEnabledIT_UPDATE.
__STATIC_INLINE void LL_TIM_EnableIT_BRK(TIM_TypeDef *TIMx)
Enable break interrupt (BIE). @rmtoll DIER BIE LL_TIM_EnableIT_BRK.
__STATIC_INLINE void LL_TIM_DisableIT_CC3(TIM_TypeDef *TIMx)
Disable capture/compare 3 interrupt (CC3IE). @rmtoll DIER CC3IE LL_TIM_DisableIT_CC3.
__STATIC_INLINE void LL_TIM_EnableIT_CC1(TIM_TypeDef *TIMx)
Enable capture/compare 1 interrupt (CC1IE). @rmtoll DIER CC1IE LL_TIM_EnableIT_CC1.
__STATIC_INLINE void LL_TIM_EnableIT_UPDATE(TIM_TypeDef *TIMx)
Enable update interrupt (UIE). @rmtoll DIER UIE LL_TIM_EnableIT_UPDATE.
__STATIC_INLINE void LL_TIM_EnableIT_COM(TIM_TypeDef *TIMx)
Enable commutation interrupt (COMIE). @rmtoll DIER COMIE LL_TIM_EnableIT_COM.
__STATIC_INLINE void LL_TIM_EnableIT_CC2(TIM_TypeDef *TIMx)
Enable capture/compare 2 interrupt (CC2IE). @rmtoll DIER CC2IE LL_TIM_EnableIT_CC2.
__STATIC_INLINE void LL_TIM_EnableIT_TRIG(TIM_TypeDef *TIMx)
Enable trigger interrupt (TIE). @rmtoll DIER TIE LL_TIM_EnableIT_TRIG.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC2(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 2 interrupt (CC2IE) is enabled. @rmtoll DIER CC2IE LL_TIM_IsEna...
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_BRK(const TIM_TypeDef *TIMx)
Indicates whether the break interrupt (BIE) is enabled. @rmtoll DIER BIE LL_TIM_IsEnabledIT_BRK.
__STATIC_INLINE void LL_TIM_DisableIT_CC1(TIM_TypeDef *TIMx)
Disable capture/compare 1 interrupt (CC1IE). @rmtoll DIER CC1IE LL_TIM_DisableIT_CC1.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_TRIG(const TIM_TypeDef *TIMx)
Indicates whether the trigger interrupt (TIE) is enabled. @rmtoll DIER TIE LL_TIM_IsEnabledIT_TRIG.
__STATIC_INLINE void LL_TIM_DisableIT_COM(TIM_TypeDef *TIMx)
Disable commutation interrupt (COMIE). @rmtoll DIER COMIE LL_TIM_DisableIT_COM.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC3(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 3 interrupt (CC3IE) is enabled. @rmtoll DIER CC3IE LL_TIM_IsEna...
__STATIC_INLINE void LL_TIM_DisableIT_CC2(TIM_TypeDef *TIMx)
Disable capture/compare 2 interrupt (CC2IE). @rmtoll DIER CC2IE LL_TIM_DisableIT_CC2.
__STATIC_INLINE void LL_TIM_DisableIT_TRIG(TIM_TypeDef *TIMx)
Disable trigger interrupt (TIE). @rmtoll DIER TIE LL_TIM_DisableIT_TRIG.
__STATIC_INLINE void LL_TIM_DisableIT_UPDATE(TIM_TypeDef *TIMx)
Disable update interrupt (UIE). @rmtoll DIER UIE LL_TIM_DisableIT_UPDATE.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_CC4(const TIM_TypeDef *TIMx)
Indicates whether the capture/compare 4 interrupt (CC4IE) is enabled. @rmtoll DIER CC4IE LL_TIM_IsEna...
__STATIC_INLINE void LL_TIM_EnableIT_CC4(TIM_TypeDef *TIMx)
Enable capture/compare 4 interrupt (CC4IE). @rmtoll DIER CC4IE LL_TIM_EnableIT_CC4.
__STATIC_INLINE void LL_TIM_EnableIT_CC3(TIM_TypeDef *TIMx)
Enable capture/compare 3 interrupt (CC3IE). @rmtoll DIER CC3IE LL_TIM_EnableIT_CC3.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledIT_COM(const TIM_TypeDef *TIMx)
Indicates whether the commutation interrupt (COMIE) is enabled. @rmtoll DIER COMIE LL_TIM_IsEnabledIT...
ErrorStatus LL_TIM_BDTR_Init(TIM_TypeDef *TIMx, const LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct)
Configure the Break and Dead Time feature of the timer instance.
void LL_TIM_IC_StructInit(LL_TIM_IC_InitTypeDef *TIM_ICInitStruct)
Set the fields of the TIMx input channel configuration data structure to their default values.
ErrorStatus LL_TIM_IC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_IC_InitTypeDef *TIM_IC_InitStruct)
Configure the TIMx input channel.
ErrorStatus LL_TIM_HALLSENSOR_Init(TIM_TypeDef *TIMx, const LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct)
Configure the Hall sensor interface of the timer instance.
ErrorStatus LL_TIM_DeInit(const TIM_TypeDef *TIMx)
Set TIMx registers to their reset values.
void LL_TIM_HALLSENSOR_StructInit(LL_TIM_HALLSENSOR_InitTypeDef *TIM_HallSensorInitStruct)
Set the fields of the TIMx Hall sensor interface configuration data structure to their default values...
void LL_TIM_BDTR_StructInit(LL_TIM_BDTR_InitTypeDef *TIM_BDTRInitStruct)
Set the fields of the Break and Dead Time configuration data structure to their default values.
void LL_TIM_ENCODER_StructInit(LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct)
Fills each TIM_EncoderInitStruct field with its default value.
ErrorStatus LL_TIM_ENCODER_Init(TIM_TypeDef *TIMx, const LL_TIM_ENCODER_InitTypeDef *TIM_EncoderInitStruct)
Configure the encoder interface of the timer instance.
void LL_TIM_OC_StructInit(LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct)
Set the fields of the TIMx output channel configuration data structure to their default values.
ErrorStatus LL_TIM_OC_Init(TIM_TypeDef *TIMx, uint32_t Channel, const LL_TIM_OC_InitTypeDef *TIM_OC_InitStruct)
Configure the TIMx output channel.
void LL_TIM_StructInit(LL_TIM_InitTypeDef *TIM_InitStruct)
Set the fields of the time base unit configuration data structure to their default values.
ErrorStatus LL_TIM_Init(TIM_TypeDef *TIMx, const LL_TIM_InitTypeDef *TIM_InitStruct)
Configure the TIMx time base unit.
__STATIC_INLINE void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
Configure input channel. @rmtoll CCMR1 CC1S LL_TIM_IC_Config CCMR1 IC1PSC LL_TIM_IC_Config CCMR1 IC...
__STATIC_INLINE uint32_t LL_TIM_IC_GetActiveInput(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the current active input. @rmtoll CCMR1 CC1S LL_TIM_IC_GetActiveInput CCMR1 CC2S LL_TIM_IC_GetAc...
__STATIC_INLINE uint32_t LL_TIM_IC_GetFilter(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the input filter duration. @rmtoll CCMR1 IC1F LL_TIM_IC_GetFilter CCMR1 IC2F LL_TIM_IC_GetFilter...
__STATIC_INLINE void LL_TIM_IC_SetFilter(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICFilter)
Set the input filter duration. @rmtoll CCMR1 IC1F LL_TIM_IC_SetFilter CCMR1 IC2F LL_TIM_IC_SetFilter...
__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH3(const TIM_TypeDef *TIMx)
Get captured value for input channel 3.
__STATIC_INLINE void LL_TIM_IC_SetActiveInput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICActiveInput)
Set the active input. @rmtoll CCMR1 CC1S LL_TIM_IC_SetActiveInput CCMR1 CC2S LL_TIM_IC_SetActiveInpu...
__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH2(const TIM_TypeDef *TIMx)
Get captured value for input channel 2.
__STATIC_INLINE uint32_t LL_TIM_IC_IsEnabledXORCombination(const TIM_TypeDef *TIMx)
Indicates whether the TIMx_CH1, CH2 and CH3 pins are connectected to the TI1 input.
__STATIC_INLINE uint32_t LL_TIM_IC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the current input channel polarity. @rmtoll CCER CC1P LL_TIM_IC_GetPolarity CCER CC1NP LL_TIM_IC...
__STATIC_INLINE void LL_TIM_IC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPolarity)
Set the input channel polarity. @rmtoll CCER CC1P LL_TIM_IC_SetPolarity CCER CC1NP LL_TIM_IC_SetPola...
__STATIC_INLINE void LL_TIM_IC_DisableXORCombination(TIM_TypeDef *TIMx)
Disconnect the TIMx_CH1, CH2 and CH3 pins from the TI1 input.
__STATIC_INLINE void LL_TIM_IC_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ICPrescaler)
Set the prescaler of input channel. @rmtoll CCMR1 IC1PSC LL_TIM_IC_SetPrescaler CCMR1 IC2PSC LL_TIM_...
__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH1(const TIM_TypeDef *TIMx)
Get captured value for input channel 1.
__STATIC_INLINE void LL_TIM_IC_EnableXORCombination(TIM_TypeDef *TIMx)
Connect the TIMx_CH1, CH2 and CH3 pins to the TI1 input (XOR combination).
__STATIC_INLINE uint32_t LL_TIM_IC_GetCaptureCH4(const TIM_TypeDef *TIMx)
Get captured value for input channel 4.
__STATIC_INLINE uint32_t LL_TIM_IC_GetPrescaler(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the current prescaler value acting on an input channel. @rmtoll CCMR1 IC1PSC LL_TIM_IC_GetPrescal...
__STATIC_INLINE void LL_TIM_OC_ConfigOutput(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
Configure an output channel. @rmtoll CCMR1 CC1S LL_TIM_OC_ConfigOutput CCMR1 CC2S LL_TIM_OC_ConfigOu...
__STATIC_INLINE void LL_TIM_OC_SetCompareCH4(TIM_TypeDef *TIMx, uint32_t CompareValue)
Set compare value for output channel 4 (TIMx_CCR4).
__STATIC_INLINE void LL_TIM_OC_SetCompareCH3(TIM_TypeDef *TIMx, uint32_t CompareValue)
Set compare value for output channel 3 (TIMx_CCR3).
__STATIC_INLINE void LL_TIM_OC_SetPolarity(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Polarity)
Set the polarity of an output channel. @rmtoll CCER CC1P LL_TIM_OC_SetPolarity CCER CC1NP LL_TIM_OC_...
__STATIC_INLINE uint32_t LL_TIM_OC_GetIdleState(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the IDLE state of an output channel @rmtoll CR2 OIS1 LL_TIM_OC_GetIdleState CR2 OIS1N LL_TIM_OC_...
__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledClear(const TIM_TypeDef *TIMx, uint32_t Channel)
Indicates clearing the output channel on an external event is enabled for the output channel.
__STATIC_INLINE void LL_TIM_OC_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue)
Set compare value for output channel 1 (TIMx_CCR1).
__STATIC_INLINE void LL_TIM_OC_EnableClear(TIM_TypeDef *TIMx, uint32_t Channel)
Enable clearing the output channel on an external event.
__STATIC_INLINE void LL_TIM_OC_EnableFast(TIM_TypeDef *TIMx, uint32_t Channel)
Enable fast mode for the output channel.
__STATIC_INLINE void LL_TIM_OC_DisableClear(TIM_TypeDef *TIMx, uint32_t Channel)
Disable clearing the output channel on an external event.
__STATIC_INLINE void LL_TIM_OC_SetDeadTime(TIM_TypeDef *TIMx, uint32_t DeadTime)
Set the dead-time delay (delay inserted between the rising edge of the OCxREF signal and the rising e...
__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH4(const TIM_TypeDef *TIMx)
Get compare value (TIMx_CCR4) set for output channel 4.
__STATIC_INLINE void LL_TIM_OC_DisableFast(TIM_TypeDef *TIMx, uint32_t Channel)
Disable fast mode for the output channel. @rmtoll CCMR1 OC1FE LL_TIM_OC_DisableFast CCMR1 OC2FE LL_T...
__STATIC_INLINE uint32_t LL_TIM_OC_GetPolarity(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the polarity of an output channel. @rmtoll CCER CC1P LL_TIM_OC_GetPolarity CCER CC1NP LL_TIM_OC_...
__STATIC_INLINE void LL_TIM_OC_DisablePreload(TIM_TypeDef *TIMx, uint32_t Channel)
Disable compare register (TIMx_CCRx) preload for the output channel. @rmtoll CCMR1 OC1PE LL_TIM_OC_Di...
__STATIC_INLINE void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue)
Set compare value for output channel 2 (TIMx_CCR2).
__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH3(const TIM_TypeDef *TIMx)
Get compare value (TIMx_CCR3) set for output channel 3.
__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH1(const TIM_TypeDef *TIMx)
Get compare value (TIMx_CCR1) set for output channel 1.
__STATIC_INLINE uint32_t LL_TIM_OC_GetCompareCH2(const TIM_TypeDef *TIMx)
Get compare value (TIMx_CCR2) set for output channel 2.
__STATIC_INLINE void LL_TIM_OC_SetMode(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Mode)
Define the behavior of the output reference signal OCxREF from which OCx and OCxN (when relevant) are...
__STATIC_INLINE uint32_t LL_TIM_OC_GetMode(const TIM_TypeDef *TIMx, uint32_t Channel)
Get the output compare mode of an output channel. @rmtoll CCMR1 OC1M LL_TIM_OC_GetMode CCMR1 OC2M LL...
__STATIC_INLINE void LL_TIM_OC_EnablePreload(TIM_TypeDef *TIMx, uint32_t Channel)
Enable compare register (TIMx_CCRx) preload for the output channel. @rmtoll CCMR1 OC1PE LL_TIM_OC_Ena...
__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledPreload(const TIM_TypeDef *TIMx, uint32_t Channel)
Indicates whether compare register (TIMx_CCRx) preload is enabled for the output channel....
__STATIC_INLINE void LL_TIM_OC_SetIdleState(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t IdleState)
Set the IDLE state of an output channel.
__STATIC_INLINE uint32_t LL_TIM_OC_IsEnabledFast(const TIM_TypeDef *TIMx, uint32_t Channel)
Indicates whether fast mode is enabled for the output channel. @rmtoll CCMR1 OC1FE LL_TIM_OC_IsEnable...
__STATIC_INLINE void LL_TIM_DisableUpdateEvent(TIM_TypeDef *TIMx)
Disable update event generation. @rmtoll CR1 UDIS LL_TIM_DisableUpdateEvent.
__STATIC_INLINE void LL_TIM_SetCounter(TIM_TypeDef *TIMx, uint32_t Counter)
Set the counter value.
__STATIC_INLINE void LL_TIM_EnableCounter(TIM_TypeDef *TIMx)
Enable timer counter. @rmtoll CR1 CEN LL_TIM_EnableCounter.
__STATIC_INLINE void LL_TIM_SetCounterMode(TIM_TypeDef *TIMx, uint32_t CounterMode)
Set the timer counter counting mode.
__STATIC_INLINE uint32_t LL_TIM_GetUpdateSource(const TIM_TypeDef *TIMx)
Get actual event update source @rmtoll CR1 URS LL_TIM_GetUpdateSource.
__STATIC_INLINE uint32_t LL_TIM_GetCounterMode(const TIM_TypeDef *TIMx)
Get actual counter mode.
__STATIC_INLINE void LL_TIM_DisableARRPreload(TIM_TypeDef *TIMx)
Disable auto-reload (ARR) preload. @rmtoll CR1 ARPE LL_TIM_DisableARRPreload.
__STATIC_INLINE void LL_TIM_EnableUpdateEvent(TIM_TypeDef *TIMx)
Enable update event generation. @rmtoll CR1 UDIS LL_TIM_EnableUpdateEvent.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledARRPreload(const TIM_TypeDef *TIMx)
Indicates whether auto-reload (ARR) preload is enabled. @rmtoll CR1 ARPE LL_TIM_IsEnabledARRPreload.
__STATIC_INLINE void LL_TIM_SetUpdateSource(TIM_TypeDef *TIMx, uint32_t UpdateSource)
Set update event source.
__STATIC_INLINE uint32_t LL_TIM_GetRepetitionCounter(const TIM_TypeDef *TIMx)
Get the repetition counter value.
__STATIC_INLINE void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload)
Set the auto-reload value.
__STATIC_INLINE uint32_t LL_TIM_GetClockDivision(const TIM_TypeDef *TIMx)
Get the actual division ratio between the timer clock and the sampling clock used by the dead-time ge...
__STATIC_INLINE uint32_t LL_TIM_GetCounter(const TIM_TypeDef *TIMx)
Get the counter value.
__STATIC_INLINE void LL_TIM_SetOnePulseMode(TIM_TypeDef *TIMx, uint32_t OnePulseMode)
Set one pulse mode (one shot v.s. repetitive). @rmtoll CR1 OPM LL_TIM_SetOnePulseMode.
__STATIC_INLINE uint32_t LL_TIM_GetPrescaler(const TIM_TypeDef *TIMx)
Get the prescaler value. @rmtoll PSC PSC LL_TIM_GetPrescaler.
__STATIC_INLINE void LL_TIM_SetClockDivision(TIM_TypeDef *TIMx, uint32_t ClockDivision)
Set the division ratio between the timer clock and the sampling clock used by the dead-time generator...
__STATIC_INLINE uint32_t LL_TIM_GetDirection(const TIM_TypeDef *TIMx)
Get the current direction of the counter @rmtoll CR1 DIR LL_TIM_GetDirection.
__STATIC_INLINE void LL_TIM_EnableARRPreload(TIM_TypeDef *TIMx)
Enable auto-reload (ARR) preload. @rmtoll CR1 ARPE LL_TIM_EnableARRPreload.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledCounter(const TIM_TypeDef *TIMx)
Indicates whether the timer counter is enabled. @rmtoll CR1 CEN LL_TIM_IsEnabledCounter.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledUpdateEvent(const TIM_TypeDef *TIMx)
Indicates whether update event generation is enabled. @rmtoll CR1 UDIS LL_TIM_IsEnabledUpdateEvent.
__STATIC_INLINE uint32_t LL_TIM_GetOnePulseMode(const TIM_TypeDef *TIMx)
Get actual one pulse mode. @rmtoll CR1 OPM LL_TIM_GetOnePulseMode.
__STATIC_INLINE void LL_TIM_SetRepetitionCounter(TIM_TypeDef *TIMx, uint32_t RepetitionCounter)
Set the repetition counter value.
__STATIC_INLINE uint32_t LL_TIM_GetAutoReload(const TIM_TypeDef *TIMx)
Get the auto-reload value. @rmtoll ARR ARR LL_TIM_GetAutoReload.
__STATIC_INLINE void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler)
Set the prescaler value.
__STATIC_INLINE void LL_TIM_DisableCounter(TIM_TypeDef *TIMx)
Disable timer counter. @rmtoll CR1 CEN LL_TIM_DisableCounter.
__STATIC_INLINE void LL_TIM_SetRemap(TIM_TypeDef *TIMx, uint32_t Remap)
Remap TIM inputs (input channel, internal/external triggers).
__STATIC_INLINE void LL_TIM_SetSlaveMode(TIM_TypeDef *TIMx, uint32_t SlaveMode)
Set the synchronization mode of a slave timer.
__STATIC_INLINE uint32_t LL_TIM_IsEnabledMasterSlaveMode(const TIM_TypeDef *TIMx)
Indicates whether the Master/Slave mode is enabled.
__STATIC_INLINE void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler, uint32_t ETRFilter)
Configure the external trigger (ETR) input.
__STATIC_INLINE void LL_TIM_SetTriggerOutput(TIM_TypeDef *TIMx, uint32_t TimerSynchronization)
Set the trigger output (TRGO) used for timer synchronization .
__STATIC_INLINE void LL_TIM_SetTriggerInput(TIM_TypeDef *TIMx, uint32_t TriggerInput)
Set the selects the trigger input to be used to synchronize the counter.
__STATIC_INLINE void LL_TIM_DisableMasterSlaveMode(TIM_TypeDef *TIMx)
Disable the Master/Slave mode.
__STATIC_INLINE void LL_TIM_EnableMasterSlaveMode(TIM_TypeDef *TIMx)
Enable the Master/Slave mode.
BDTR (Break and Dead Time) structure definition.
TIM Encoder interface configuration structure definition.
TIM Hall sensor interface configuration structure definition.
TIM Input Capture configuration structure definition.
TIM Time Base configuration structure definition.
TIM Output Compare configuration structure definition.