20 #ifndef __STM32F4xx_LL_TIM_H
21 #define __STM32F4xx_LL_TIM_H
28 #include "stm32f4xx.h"
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)
45 static const uint8_t OFFSET_TAB_CCMRx[] =
56 static const uint8_t SHIFT_TAB_OCxx[] =
67 static const uint8_t SHIFT_TAB_ICxx[] =
78 static const uint8_t SHIFT_TAB_CCxP[] =
89 static const uint8_t SHIFT_TAB_OISx[] =
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)
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)
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)
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)
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)))
174 #if defined(USE_FULL_LL_DRIVER)
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
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
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
950 #define LL_TIM_TIM11_TI1_RMP_SPDIFRX (TIM_OR_TI1_RMP_0 | TIM11_OR_RMP_MASK)
953 #define LL_TIM_TIM11_TI1_RMP_GPIO1 LL_TIM_TIM11_TI1_RMP_SPDIFRX
956 #define LL_TIM_TIM11_TI1_RMP_GPIO1 (TIM_OR_TI1_RMP_0 | TIM11_OR_RMP_MASK)
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)
965 #define LL_TIM_LPTIM_REMAP_MASK 0x10000000U
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)
998 #define LL_TIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
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)) :\
1043 #define __LL_TIM_CALC_PSC(__TIMCLK__, __CNTCLK__) \
1044 (((__TIMCLK__) >= (__CNTCLK__)) ? (uint32_t)((((__TIMCLK__) + (__CNTCLK__)/2U)/(__CNTCLK__)) - 1U) : 0U)
1054 #define __LL_TIM_CALC_ARR(__TIMCLK__, __PSC__, __FREQ__) \
1055 ((((__TIMCLK__)/((__PSC__) + 1U)) >= (__FREQ__)) ? (((__TIMCLK__)/((__FREQ__) * ((__PSC__) + 1U))) - 1U) : 0U)
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))))
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__))))
1094 #define __LL_TIM_GET_ICPSC_RATIO(__ICPSC__) \
1095 ((uint32_t)(0x01U << (((__ICPSC__) >> 16U) >> TIM_CCMR1_IC1PSC_Pos)))
1118 SET_BIT(TIMx->CR1, TIM_CR1_CEN);
1129 CLEAR_BIT(TIMx->CR1, TIM_CR1_CEN);
1140 return ((READ_BIT(TIMx->CR1, TIM_CR1_CEN) == (TIM_CR1_CEN)) ? 1UL : 0UL);
1151 CLEAR_BIT(TIMx->CR1, TIM_CR1_UDIS);
1162 SET_BIT(TIMx->CR1, TIM_CR1_UDIS);
1173 return ((READ_BIT(TIMx->CR1, TIM_CR1_UDIS) == (uint32_t)RESET) ? 1UL : 0UL);
1194 MODIFY_REG(TIMx->CR1, TIM_CR1_URS, UpdateSource);
1207 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_URS));
1221 MODIFY_REG(TIMx->CR1, TIM_CR1_OPM, OnePulseMode);
1234 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_OPM));
1258 MODIFY_REG(TIMx->CR1, (TIM_CR1_DIR | TIM_CR1_CMS), CounterMode);
1278 uint32_t counter_mode;
1280 counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CMS));
1282 if (counter_mode == 0U)
1284 counter_mode = (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR));
1287 return counter_mode;
1298 SET_BIT(TIMx->CR1, TIM_CR1_ARPE);
1309 CLEAR_BIT(TIMx->CR1, TIM_CR1_ARPE);
1320 return ((READ_BIT(TIMx->CR1, TIM_CR1_ARPE) == (TIM_CR1_ARPE)) ? 1UL : 0UL);
1339 MODIFY_REG(TIMx->CR1, TIM_CR1_CKD, ClockDivision);
1357 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_CKD));
1371 WRITE_REG(TIMx->CNT, Counter);
1384 return (uint32_t)(READ_REG(TIMx->CNT));
1397 return (uint32_t)(READ_BIT(TIMx->CR1, TIM_CR1_DIR));
1413 WRITE_REG(TIMx->PSC, Prescaler);
1424 return (uint32_t)(READ_REG(TIMx->PSC));
1440 WRITE_REG(TIMx->ARR, AutoReload);
1453 return (uint32_t)(READ_REG(TIMx->ARR));
1467 WRITE_REG(TIMx->RCR, RepetitionCounter);
1480 return (uint32_t)(READ_REG(TIMx->RCR));
1503 SET_BIT(TIMx->CR2, TIM_CR2_CCPC);
1516 CLEAR_BIT(TIMx->CR2, TIM_CR2_CCPC);
1527 return ((READ_BIT(TIMx->CR2, TIM_CR2_CCPC) == (TIM_CR2_CCPC)) ? 1UL : 0UL);
1543 MODIFY_REG(TIMx->CR2, TIM_CR2_CCUS, CCUpdateSource);
1557 MODIFY_REG(TIMx->CR2, TIM_CR2_CCDS, DMAReqTrigger);
1570 return (uint32_t)(READ_BIT(TIMx->CR2, TIM_CR2_CCDS));
1589 MODIFY_REG(TIMx->BDTR, TIM_BDTR_LOCK, LockLevel);
1614 SET_BIT(TIMx->CCER, Channels);
1639 CLEAR_BIT(TIMx->CCER, Channels);
1664 return ((READ_BIT(TIMx->CCER, Channels) == (Channels)) ? 1UL : 0UL);
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]);
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]);
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]);
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]);
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]);
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]);
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]);
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]));
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]));
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);
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]));
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]));
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);
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]));
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]));
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);
2105 MODIFY_REG(TIMx->BDTR, TIM_BDTR_DTG, DeadTime);
2122 WRITE_REG(TIMx->CCR1, CompareValue);
2139 WRITE_REG(TIMx->CCR2, CompareValue);
2156 WRITE_REG(TIMx->CCR3, CompareValue);
2173 WRITE_REG(TIMx->CCR4, CompareValue);
2189 return (uint32_t)(READ_REG(TIMx->CCR1));
2205 return (uint32_t)(READ_REG(TIMx->CCR2));
2221 return (uint32_t)(READ_REG(TIMx->CCR3));
2237 return (uint32_t)(READ_REG(TIMx->CCR4));
2282 __STATIC_INLINE
void LL_TIM_IC_Config(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Configuration)
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]);
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]);
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);
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]);
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);
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]);
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);
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]);
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]);
2535 SET_BIT(TIMx->CR2, TIM_CR2_TI1S);
2548 CLEAR_BIT(TIMx->CR2, TIM_CR2_TI1S);
2561 return ((READ_BIT(TIMx->CR2, TIM_CR2_TI1S) == (TIM_CR2_TI1S)) ? 1UL : 0UL);
2577 return (uint32_t)(READ_REG(TIMx->CCR1));
2593 return (uint32_t)(READ_REG(TIMx->CCR2));
2609 return (uint32_t)(READ_REG(TIMx->CCR3));
2625 return (uint32_t)(READ_REG(TIMx->CCR4));
2646 SET_BIT(TIMx->SMCR, TIM_SMCR_ECE);
2659 CLEAR_BIT(TIMx->SMCR, TIM_SMCR_ECE);
2672 return ((READ_BIT(TIMx->SMCR, TIM_SMCR_ECE) == (TIM_SMCR_ECE)) ? 1UL : 0UL);
2696 MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS | TIM_SMCR_ECE, ClockSource);
2713 MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, EncoderMode);
2742 MODIFY_REG(TIMx->CR2, TIM_CR2_MMS, TimerSynchronization);
2760 MODIFY_REG(TIMx->SMCR, TIM_SMCR_SMS, SlaveMode);
2782 MODIFY_REG(TIMx->SMCR, TIM_SMCR_TS, TriggerInput);
2795 SET_BIT(TIMx->SMCR, TIM_SMCR_MSM);
2808 CLEAR_BIT(TIMx->SMCR, TIM_SMCR_MSM);
2821 return ((READ_BIT(TIMx->SMCR, TIM_SMCR_MSM) == (TIM_SMCR_MSM)) ? 1UL : 0UL);
2859 __STATIC_INLINE
void LL_TIM_ConfigETR(TIM_TypeDef *TIMx, uint32_t ETRPolarity, uint32_t ETRPrescaler,
2862 MODIFY_REG(TIMx->SMCR, TIM_SMCR_ETP | TIM_SMCR_ETPS | TIM_SMCR_ETF, ETRPolarity | ETRPrescaler | ETRFilter);
2882 __IO uint32_t tmpreg;
2883 SET_BIT(TIMx->BDTR, TIM_BDTR_BKE);
2885 tmpreg = READ_REG(TIMx->BDTR);
2899 __IO uint32_t tmpreg;
2900 CLEAR_BIT(TIMx->BDTR, TIM_BDTR_BKE);
2902 tmpreg = READ_REG(TIMx->BDTR);
2919 __IO uint32_t tmpreg;
2920 MODIFY_REG(TIMx->BDTR, TIM_BDTR_BKP, BreakPolarity);
2922 tmpreg = READ_REG(TIMx->BDTR);
2943 MODIFY_REG(TIMx->BDTR, TIM_BDTR_OSSI | TIM_BDTR_OSSR, OffStateIdle | OffStateRun);
2956 SET_BIT(TIMx->BDTR, TIM_BDTR_AOE);
2969 CLEAR_BIT(TIMx->BDTR, TIM_BDTR_AOE);
2982 return ((READ_BIT(TIMx->BDTR, TIM_BDTR_AOE) == (TIM_BDTR_AOE)) ? 1UL : 0UL);
2997 SET_BIT(TIMx->BDTR, TIM_BDTR_MOE);
3012 CLEAR_BIT(TIMx->BDTR, TIM_BDTR_MOE);
3025 return ((READ_BIT(TIMx->BDTR, TIM_BDTR_MOE) == (TIM_BDTR_MOE)) ? 1UL : 0UL);
3084 MODIFY_REG(TIMx->DCR, (TIM_DCR_DBL | TIM_DCR_DBA), (DMABurstBaseAddress | DMABurstLength));
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)
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));
3165 MODIFY_REG(TIMx->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK));
3168 MODIFY_REG(TIMx->OR, (Remap >> TIMx_OR_RMP_SHIFT), (Remap & TIMx_OR_RMP_MASK));
3187 WRITE_REG(TIMx->SR, ~(TIM_SR_UIF));
3198 return ((READ_BIT(TIMx->SR, TIM_SR_UIF) == (TIM_SR_UIF)) ? 1UL : 0UL);
3209 WRITE_REG(TIMx->SR, ~(TIM_SR_CC1IF));
3220 return ((READ_BIT(TIMx->SR, TIM_SR_CC1IF) == (TIM_SR_CC1IF)) ? 1UL : 0UL);
3231 WRITE_REG(TIMx->SR, ~(TIM_SR_CC2IF));
3242 return ((READ_BIT(TIMx->SR, TIM_SR_CC2IF) == (TIM_SR_CC2IF)) ? 1UL : 0UL);
3253 WRITE_REG(TIMx->SR, ~(TIM_SR_CC3IF));
3264 return ((READ_BIT(TIMx->SR, TIM_SR_CC3IF) == (TIM_SR_CC3IF)) ? 1UL : 0UL);
3275 WRITE_REG(TIMx->SR, ~(TIM_SR_CC4IF));
3286 return ((READ_BIT(TIMx->SR, TIM_SR_CC4IF) == (TIM_SR_CC4IF)) ? 1UL : 0UL);
3297 WRITE_REG(TIMx->SR, ~(TIM_SR_COMIF));
3308 return ((READ_BIT(TIMx->SR, TIM_SR_COMIF) == (TIM_SR_COMIF)) ? 1UL : 0UL);
3319 WRITE_REG(TIMx->SR, ~(TIM_SR_TIF));
3330 return ((READ_BIT(TIMx->SR, TIM_SR_TIF) == (TIM_SR_TIF)) ? 1UL : 0UL);
3341 WRITE_REG(TIMx->SR, ~(TIM_SR_BIF));
3352 return ((READ_BIT(TIMx->SR, TIM_SR_BIF) == (TIM_SR_BIF)) ? 1UL : 0UL);
3363 WRITE_REG(TIMx->SR, ~(TIM_SR_CC1OF));
3375 return ((READ_BIT(TIMx->SR, TIM_SR_CC1OF) == (TIM_SR_CC1OF)) ? 1UL : 0UL);
3386 WRITE_REG(TIMx->SR, ~(TIM_SR_CC2OF));
3398 return ((READ_BIT(TIMx->SR, TIM_SR_CC2OF) == (TIM_SR_CC2OF)) ? 1UL : 0UL);
3409 WRITE_REG(TIMx->SR, ~(TIM_SR_CC3OF));
3421 return ((READ_BIT(TIMx->SR, TIM_SR_CC3OF) == (TIM_SR_CC3OF)) ? 1UL : 0UL);
3432 WRITE_REG(TIMx->SR, ~(TIM_SR_CC4OF));
3444 return ((READ_BIT(TIMx->SR, TIM_SR_CC4OF) == (TIM_SR_CC4OF)) ? 1UL : 0UL);
3462 SET_BIT(TIMx->DIER, TIM_DIER_UIE);
3473 CLEAR_BIT(TIMx->DIER, TIM_DIER_UIE);
3484 return ((READ_BIT(TIMx->DIER, TIM_DIER_UIE) == (TIM_DIER_UIE)) ? 1UL : 0UL);
3495 SET_BIT(TIMx->DIER, TIM_DIER_CC1IE);
3506 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1IE);
3517 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1IE) == (TIM_DIER_CC1IE)) ? 1UL : 0UL);
3528 SET_BIT(TIMx->DIER, TIM_DIER_CC2IE);
3539 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2IE);
3550 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2IE) == (TIM_DIER_CC2IE)) ? 1UL : 0UL);
3561 SET_BIT(TIMx->DIER, TIM_DIER_CC3IE);
3572 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3IE);
3583 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3IE) == (TIM_DIER_CC3IE)) ? 1UL : 0UL);
3594 SET_BIT(TIMx->DIER, TIM_DIER_CC4IE);
3605 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4IE);
3616 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4IE) == (TIM_DIER_CC4IE)) ? 1UL : 0UL);
3627 SET_BIT(TIMx->DIER, TIM_DIER_COMIE);
3638 CLEAR_BIT(TIMx->DIER, TIM_DIER_COMIE);
3649 return ((READ_BIT(TIMx->DIER, TIM_DIER_COMIE) == (TIM_DIER_COMIE)) ? 1UL : 0UL);
3660 SET_BIT(TIMx->DIER, TIM_DIER_TIE);
3671 CLEAR_BIT(TIMx->DIER, TIM_DIER_TIE);
3682 return ((READ_BIT(TIMx->DIER, TIM_DIER_TIE) == (TIM_DIER_TIE)) ? 1UL : 0UL);
3693 SET_BIT(TIMx->DIER, TIM_DIER_BIE);
3704 CLEAR_BIT(TIMx->DIER, TIM_DIER_BIE);
3715 return ((READ_BIT(TIMx->DIER, TIM_DIER_BIE) == (TIM_DIER_BIE)) ? 1UL : 0UL);
3733 SET_BIT(TIMx->DIER, TIM_DIER_UDE);
3744 CLEAR_BIT(TIMx->DIER, TIM_DIER_UDE);
3755 return ((READ_BIT(TIMx->DIER, TIM_DIER_UDE) == (TIM_DIER_UDE)) ? 1UL : 0UL);
3766 SET_BIT(TIMx->DIER, TIM_DIER_CC1DE);
3777 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC1DE);
3788 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC1DE) == (TIM_DIER_CC1DE)) ? 1UL : 0UL);
3799 SET_BIT(TIMx->DIER, TIM_DIER_CC2DE);
3810 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC2DE);
3821 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC2DE) == (TIM_DIER_CC2DE)) ? 1UL : 0UL);
3832 SET_BIT(TIMx->DIER, TIM_DIER_CC3DE);
3843 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC3DE);
3854 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC3DE) == (TIM_DIER_CC3DE)) ? 1UL : 0UL);
3865 SET_BIT(TIMx->DIER, TIM_DIER_CC4DE);
3876 CLEAR_BIT(TIMx->DIER, TIM_DIER_CC4DE);
3887 return ((READ_BIT(TIMx->DIER, TIM_DIER_CC4DE) == (TIM_DIER_CC4DE)) ? 1UL : 0UL);
3898 SET_BIT(TIMx->DIER, TIM_DIER_COMDE);
3909 CLEAR_BIT(TIMx->DIER, TIM_DIER_COMDE);
3920 return ((READ_BIT(TIMx->DIER, TIM_DIER_COMDE) == (TIM_DIER_COMDE)) ? 1UL : 0UL);
3931 SET_BIT(TIMx->DIER, TIM_DIER_TDE);
3942 CLEAR_BIT(TIMx->DIER, TIM_DIER_TDE);
3953 return ((READ_BIT(TIMx->DIER, TIM_DIER_TDE) == (TIM_DIER_TDE)) ? 1UL : 0UL);
3971 SET_BIT(TIMx->EGR, TIM_EGR_UG);
3982 SET_BIT(TIMx->EGR, TIM_EGR_CC1G);
3993 SET_BIT(TIMx->EGR, TIM_EGR_CC2G);
4004 SET_BIT(TIMx->EGR, TIM_EGR_CC3G);
4015 SET_BIT(TIMx->EGR, TIM_EGR_CC4G);
4026 SET_BIT(TIMx->EGR, TIM_EGR_COMG);
4037 SET_BIT(TIMx->EGR, TIM_EGR_TG);
4048 SET_BIT(TIMx->EGR, TIM_EGR_BG);
4055 #if defined(USE_FULL_LL_DRIVER)
__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_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_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.
uint32_t RepetitionCounter
uint32_t CommutationDelay
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.