18 #if defined(USE_FULL_LL_DRIVER)
24 #ifdef USE_FULL_ASSERT
25 #include "stm32_assert.h"
27 #define assert_param(expr) ((void)0U)
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)
47 #define IS_LL_TIM_COUNTERMODE(__VALUE__) (((__VALUE__) == LL_TIM_COUNTERMODE_UP) \
48 || ((__VALUE__) == LL_TIM_COUNTERMODE_DOWN) \
49 || ((__VALUE__) == LL_TIM_COUNTERMODE_CENTER_UP) \
50 || ((__VALUE__) == LL_TIM_COUNTERMODE_CENTER_DOWN) \
51 || ((__VALUE__) == LL_TIM_COUNTERMODE_CENTER_UP_DOWN))
53 #define IS_LL_TIM_CLOCKDIVISION(__VALUE__) (((__VALUE__) == LL_TIM_CLOCKDIVISION_DIV1) \
54 || ((__VALUE__) == LL_TIM_CLOCKDIVISION_DIV2) \
55 || ((__VALUE__) == LL_TIM_CLOCKDIVISION_DIV4))
57 #define IS_LL_TIM_OCMODE(__VALUE__) (((__VALUE__) == LL_TIM_OCMODE_FROZEN) \
58 || ((__VALUE__) == LL_TIM_OCMODE_ACTIVE) \
59 || ((__VALUE__) == LL_TIM_OCMODE_INACTIVE) \
60 || ((__VALUE__) == LL_TIM_OCMODE_TOGGLE) \
61 || ((__VALUE__) == LL_TIM_OCMODE_FORCED_INACTIVE) \
62 || ((__VALUE__) == LL_TIM_OCMODE_FORCED_ACTIVE) \
63 || ((__VALUE__) == LL_TIM_OCMODE_PWM1) \
64 || ((__VALUE__) == LL_TIM_OCMODE_PWM2))
66 #define IS_LL_TIM_OCSTATE(__VALUE__) (((__VALUE__) == LL_TIM_OCSTATE_DISABLE) \
67 || ((__VALUE__) == LL_TIM_OCSTATE_ENABLE))
69 #define IS_LL_TIM_OCPOLARITY(__VALUE__) (((__VALUE__) == LL_TIM_OCPOLARITY_HIGH) \
70 || ((__VALUE__) == LL_TIM_OCPOLARITY_LOW))
72 #define IS_LL_TIM_OCIDLESTATE(__VALUE__) (((__VALUE__) == LL_TIM_OCIDLESTATE_LOW) \
73 || ((__VALUE__) == LL_TIM_OCIDLESTATE_HIGH))
75 #define IS_LL_TIM_ACTIVEINPUT(__VALUE__) (((__VALUE__) == LL_TIM_ACTIVEINPUT_DIRECTTI) \
76 || ((__VALUE__) == LL_TIM_ACTIVEINPUT_INDIRECTTI) \
77 || ((__VALUE__) == LL_TIM_ACTIVEINPUT_TRC))
79 #define IS_LL_TIM_ICPSC(__VALUE__) (((__VALUE__) == LL_TIM_ICPSC_DIV1) \
80 || ((__VALUE__) == LL_TIM_ICPSC_DIV2) \
81 || ((__VALUE__) == LL_TIM_ICPSC_DIV4) \
82 || ((__VALUE__) == LL_TIM_ICPSC_DIV8))
84 #define IS_LL_TIM_IC_FILTER(__VALUE__) (((__VALUE__) == LL_TIM_IC_FILTER_FDIV1) \
85 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV1_N2) \
86 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV1_N4) \
87 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV1_N8) \
88 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV2_N6) \
89 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV2_N8) \
90 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV4_N6) \
91 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV4_N8) \
92 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV8_N6) \
93 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV8_N8) \
94 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV16_N5) \
95 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV16_N6) \
96 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV16_N8) \
97 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV32_N5) \
98 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV32_N6) \
99 || ((__VALUE__) == LL_TIM_IC_FILTER_FDIV32_N8))
101 #define IS_LL_TIM_IC_POLARITY(__VALUE__) (((__VALUE__) == LL_TIM_IC_POLARITY_RISING) \
102 || ((__VALUE__) == LL_TIM_IC_POLARITY_FALLING) \
103 || ((__VALUE__) == LL_TIM_IC_POLARITY_BOTHEDGE))
105 #define IS_LL_TIM_ENCODERMODE(__VALUE__) (((__VALUE__) == LL_TIM_ENCODERMODE_X2_TI1) \
106 || ((__VALUE__) == LL_TIM_ENCODERMODE_X2_TI2) \
107 || ((__VALUE__) == LL_TIM_ENCODERMODE_X4_TI12))
109 #define IS_LL_TIM_IC_POLARITY_ENCODER(__VALUE__) (((__VALUE__) == LL_TIM_IC_POLARITY_RISING) \
110 || ((__VALUE__) == LL_TIM_IC_POLARITY_FALLING))
112 #define IS_LL_TIM_OSSR_STATE(__VALUE__) (((__VALUE__) == LL_TIM_OSSR_DISABLE) \
113 || ((__VALUE__) == LL_TIM_OSSR_ENABLE))
115 #define IS_LL_TIM_OSSI_STATE(__VALUE__) (((__VALUE__) == LL_TIM_OSSI_DISABLE) \
116 || ((__VALUE__) == LL_TIM_OSSI_ENABLE))
118 #define IS_LL_TIM_LOCK_LEVEL(__VALUE__) (((__VALUE__) == LL_TIM_LOCKLEVEL_OFF) \
119 || ((__VALUE__) == LL_TIM_LOCKLEVEL_1) \
120 || ((__VALUE__) == LL_TIM_LOCKLEVEL_2) \
121 || ((__VALUE__) == LL_TIM_LOCKLEVEL_3))
123 #define IS_LL_TIM_BREAK_STATE(__VALUE__) (((__VALUE__) == LL_TIM_BREAK_DISABLE) \
124 || ((__VALUE__) == LL_TIM_BREAK_ENABLE))
126 #define IS_LL_TIM_BREAK_POLARITY(__VALUE__) (((__VALUE__) == LL_TIM_BREAK_POLARITY_LOW) \
127 || ((__VALUE__) == LL_TIM_BREAK_POLARITY_HIGH))
129 #define IS_LL_TIM_AUTOMATIC_OUTPUT_STATE(__VALUE__) (((__VALUE__) == LL_TIM_AUTOMATICOUTPUT_DISABLE) \
130 || ((__VALUE__) == LL_TIM_AUTOMATICOUTPUT_ENABLE))
170 ErrorStatus result = SUCCESS;
173 assert_param(IS_TIM_INSTANCE(TIMx));
181 else if (TIMx == TIM2)
188 else if (TIMx == TIM3)
195 else if (TIMx == TIM4)
202 else if (TIMx == TIM5)
209 else if (TIMx == TIM6)
216 else if (TIMx == TIM7)
223 else if (TIMx == TIM8)
230 else if (TIMx == TIM9)
237 else if (TIMx == TIM10)
244 else if (TIMx == TIM11)
251 else if (TIMx == TIM12)
258 else if (TIMx == TIM13)
265 else if (TIMx == TIM14)
288 TIM_InitStruct->
Prescaler = (uint16_t)0x0000;
289 TIM_InitStruct->
CounterMode = LL_TIM_COUNTERMODE_UP;
309 assert_param(IS_TIM_INSTANCE(TIMx));
310 assert_param(IS_LL_TIM_COUNTERMODE(TIM_InitStruct->
CounterMode));
311 assert_param(IS_LL_TIM_CLOCKDIVISION(TIM_InitStruct->
ClockDivision));
313 tmpcr1 = LL_TIM_ReadReg(TIMx, CR1);
315 if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
318 MODIFY_REG(tmpcr1, (TIM_CR1_DIR | TIM_CR1_CMS), TIM_InitStruct->
CounterMode);
321 if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
324 MODIFY_REG(tmpcr1, TIM_CR1_CKD, TIM_InitStruct->
ClockDivision);
328 LL_TIM_WriteReg(TIMx, CR1, tmpcr1);
336 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
359 TIM_OC_InitStruct->
OCMode = LL_TIM_OCMODE_FROZEN;
360 TIM_OC_InitStruct->
OCState = LL_TIM_OCSTATE_DISABLE;
361 TIM_OC_InitStruct->
OCNState = LL_TIM_OCSTATE_DISABLE;
363 TIM_OC_InitStruct->
OCPolarity = LL_TIM_OCPOLARITY_HIGH;
364 TIM_OC_InitStruct->
OCNPolarity = LL_TIM_OCPOLARITY_HIGH;
365 TIM_OC_InitStruct->
OCIdleState = LL_TIM_OCIDLESTATE_LOW;
366 TIM_OC_InitStruct->
OCNIdleState = LL_TIM_OCIDLESTATE_LOW;
385 ErrorStatus result = ERROR;
389 case LL_TIM_CHANNEL_CH1:
390 result = OC1Config(TIMx, TIM_OC_InitStruct);
392 case LL_TIM_CHANNEL_CH2:
393 result = OC2Config(TIMx, TIM_OC_InitStruct);
395 case LL_TIM_CHANNEL_CH3:
396 result = OC3Config(TIMx, TIM_OC_InitStruct);
398 case LL_TIM_CHANNEL_CH4:
399 result = OC4Config(TIMx, TIM_OC_InitStruct);
418 TIM_ICInitStruct->
ICPolarity = LL_TIM_IC_POLARITY_RISING;
419 TIM_ICInitStruct->
ICActiveInput = LL_TIM_ACTIVEINPUT_DIRECTTI;
421 TIM_ICInitStruct->
ICFilter = LL_TIM_IC_FILTER_FDIV1;
440 ErrorStatus result = ERROR;
444 case LL_TIM_CHANNEL_CH1:
445 result = IC1Config(TIMx, TIM_IC_InitStruct);
447 case LL_TIM_CHANNEL_CH2:
448 result = IC2Config(TIMx, TIM_IC_InitStruct);
450 case LL_TIM_CHANNEL_CH3:
451 result = IC3Config(TIMx, TIM_IC_InitStruct);
453 case LL_TIM_CHANNEL_CH4:
454 result = IC4Config(TIMx, TIM_IC_InitStruct);
472 TIM_EncoderInitStruct->
EncoderMode = LL_TIM_ENCODERMODE_X2_TI1;
473 TIM_EncoderInitStruct->
IC1Polarity = LL_TIM_IC_POLARITY_RISING;
474 TIM_EncoderInitStruct->
IC1ActiveInput = LL_TIM_ACTIVEINPUT_DIRECTTI;
475 TIM_EncoderInitStruct->
IC1Prescaler = LL_TIM_ICPSC_DIV1;
476 TIM_EncoderInitStruct->
IC1Filter = LL_TIM_IC_FILTER_FDIV1;
477 TIM_EncoderInitStruct->
IC2Polarity = LL_TIM_IC_POLARITY_RISING;
478 TIM_EncoderInitStruct->
IC2ActiveInput = LL_TIM_ACTIVEINPUT_DIRECTTI;
479 TIM_EncoderInitStruct->
IC2Prescaler = LL_TIM_ICPSC_DIV1;
480 TIM_EncoderInitStruct->
IC2Filter = LL_TIM_IC_FILTER_FDIV1;
498 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(TIMx));
499 assert_param(IS_LL_TIM_ENCODERMODE(TIM_EncoderInitStruct->
EncoderMode));
500 assert_param(IS_LL_TIM_IC_POLARITY_ENCODER(TIM_EncoderInitStruct->
IC1Polarity));
501 assert_param(IS_LL_TIM_ACTIVEINPUT(TIM_EncoderInitStruct->
IC1ActiveInput));
502 assert_param(IS_LL_TIM_ICPSC(TIM_EncoderInitStruct->
IC1Prescaler));
503 assert_param(IS_LL_TIM_IC_FILTER(TIM_EncoderInitStruct->
IC1Filter));
504 assert_param(IS_LL_TIM_IC_POLARITY_ENCODER(TIM_EncoderInitStruct->
IC2Polarity));
505 assert_param(IS_LL_TIM_ACTIVEINPUT(TIM_EncoderInitStruct->
IC2ActiveInput));
506 assert_param(IS_LL_TIM_ICPSC(TIM_EncoderInitStruct->
IC2Prescaler));
507 assert_param(IS_LL_TIM_IC_FILTER(TIM_EncoderInitStruct->
IC2Filter));
510 TIMx->CCER &= (uint32_t)~(TIM_CCER_CC1E | TIM_CCER_CC2E);
513 tmpccmr1 = LL_TIM_ReadReg(TIMx, CCMR1);
516 tmpccer = LL_TIM_ReadReg(TIMx, CCER);
519 tmpccmr1 &= (uint32_t)~(TIM_CCMR1_CC1S | TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC);
520 tmpccmr1 |= (uint32_t)(TIM_EncoderInitStruct->
IC1ActiveInput >> 16U);
521 tmpccmr1 |= (uint32_t)(TIM_EncoderInitStruct->
IC1Filter >> 16U);
522 tmpccmr1 |= (uint32_t)(TIM_EncoderInitStruct->
IC1Prescaler >> 16U);
525 tmpccmr1 &= (uint32_t)~(TIM_CCMR1_CC2S | TIM_CCMR1_IC2F | TIM_CCMR1_IC2PSC);
526 tmpccmr1 |= (uint32_t)(TIM_EncoderInitStruct->
IC2ActiveInput >> 8U);
527 tmpccmr1 |= (uint32_t)(TIM_EncoderInitStruct->
IC2Filter >> 8U);
528 tmpccmr1 |= (uint32_t)(TIM_EncoderInitStruct->
IC2Prescaler >> 8U);
531 tmpccer &= (uint32_t)~(TIM_CCER_CC1P | TIM_CCER_CC1NP | TIM_CCER_CC2P | TIM_CCER_CC2NP);
532 tmpccer |= (uint32_t)(TIM_EncoderInitStruct->
IC1Polarity);
533 tmpccer |= (uint32_t)(TIM_EncoderInitStruct->
IC2Polarity << 4U);
534 tmpccer |= (uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E);
540 LL_TIM_WriteReg(TIMx, CCMR1, tmpccmr1);
543 LL_TIM_WriteReg(TIMx, CCER, tmpccer);
558 TIM_HallSensorInitStruct->
IC1Polarity = LL_TIM_IC_POLARITY_RISING;
559 TIM_HallSensorInitStruct->
IC1Prescaler = LL_TIM_ICPSC_DIV1;
560 TIM_HallSensorInitStruct->
IC1Filter = LL_TIM_IC_FILTER_FDIV1;
593 assert_param(IS_TIM_HALL_SENSOR_INTERFACE_INSTANCE(TIMx));
594 assert_param(IS_LL_TIM_IC_POLARITY_ENCODER(TIM_HallSensorInitStruct->
IC1Polarity));
595 assert_param(IS_LL_TIM_ICPSC(TIM_HallSensorInitStruct->
IC1Prescaler));
596 assert_param(IS_LL_TIM_IC_FILTER(TIM_HallSensorInitStruct->
IC1Filter));
599 TIMx->CCER &= (uint32_t)~(TIM_CCER_CC1E | TIM_CCER_CC2E);
602 tmpcr2 = LL_TIM_ReadReg(TIMx, CR2);
605 tmpccmr1 = LL_TIM_ReadReg(TIMx, CCMR1);
608 tmpccer = LL_TIM_ReadReg(TIMx, CCER);
611 tmpsmcr = LL_TIM_ReadReg(TIMx, SMCR);
614 tmpcr2 |= TIM_CR2_TI1S;
617 tmpcr2 |= LL_TIM_TRGO_OC2REF;
620 tmpsmcr &= (uint32_t)~(TIM_SMCR_TS | TIM_SMCR_SMS);
621 tmpsmcr |= LL_TIM_TS_TI1F_ED;
622 tmpsmcr |= LL_TIM_SLAVEMODE_RESET;
625 tmpccmr1 &= (uint32_t)~(TIM_CCMR1_CC1S | TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC);
626 tmpccmr1 |= (uint32_t)(LL_TIM_ACTIVEINPUT_TRC >> 16U);
627 tmpccmr1 |= (uint32_t)(TIM_HallSensorInitStruct->
IC1Filter >> 16U);
628 tmpccmr1 |= (uint32_t)(TIM_HallSensorInitStruct->
IC1Prescaler >> 16U);
631 tmpccmr1 &= (uint32_t)~(TIM_CCMR1_OC2M | TIM_CCMR1_OC2FE | TIM_CCMR1_OC2PE | TIM_CCMR1_OC2CE);
632 tmpccmr1 |= (uint32_t)(LL_TIM_OCMODE_PWM2 << 8U);
635 tmpccer &= (uint32_t)~(TIM_CCER_CC1P | TIM_CCER_CC1NP | TIM_CCER_CC2P | TIM_CCER_CC2NP);
636 tmpccer |= (uint32_t)(TIM_HallSensorInitStruct->
IC1Polarity);
637 tmpccer |= (uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E);
640 LL_TIM_WriteReg(TIMx, CR2, tmpcr2);
643 LL_TIM_WriteReg(TIMx, SMCR, tmpsmcr);
646 LL_TIM_WriteReg(TIMx, CCMR1, tmpccmr1);
649 LL_TIM_WriteReg(TIMx, CCER, tmpccer);
667 TIM_BDTRInitStruct->
OSSRState = LL_TIM_OSSR_DISABLE;
668 TIM_BDTRInitStruct->
OSSIState = LL_TIM_OSSI_DISABLE;
669 TIM_BDTRInitStruct->
LockLevel = LL_TIM_LOCKLEVEL_OFF;
670 TIM_BDTRInitStruct->
DeadTime = (uint8_t)0x00;
671 TIM_BDTRInitStruct->
BreakState = LL_TIM_BREAK_DISABLE;
672 TIM_BDTRInitStruct->
BreakPolarity = LL_TIM_BREAK_POLARITY_LOW;
692 uint32_t tmpbdtr = 0;
695 assert_param(IS_TIM_BREAK_INSTANCE(TIMx));
696 assert_param(IS_LL_TIM_OSSR_STATE(TIM_BDTRInitStruct->
OSSRState));
697 assert_param(IS_LL_TIM_OSSI_STATE(TIM_BDTRInitStruct->
OSSIState));
698 assert_param(IS_LL_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->
LockLevel));
699 assert_param(IS_LL_TIM_BREAK_STATE(TIM_BDTRInitStruct->
BreakState));
700 assert_param(IS_LL_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->
BreakPolarity));
701 assert_param(IS_LL_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->
AutomaticOutput));
707 MODIFY_REG(tmpbdtr, TIM_BDTR_DTG, TIM_BDTRInitStruct->
DeadTime);
708 MODIFY_REG(tmpbdtr, TIM_BDTR_LOCK, TIM_BDTRInitStruct->
LockLevel);
709 MODIFY_REG(tmpbdtr, TIM_BDTR_OSSI, TIM_BDTRInitStruct->
OSSIState);
710 MODIFY_REG(tmpbdtr, TIM_BDTR_OSSR, TIM_BDTRInitStruct->
OSSRState);
711 MODIFY_REG(tmpbdtr, TIM_BDTR_BKE, TIM_BDTRInitStruct->
BreakState);
712 MODIFY_REG(tmpbdtr, TIM_BDTR_BKP, TIM_BDTRInitStruct->
BreakPolarity);
713 MODIFY_REG(tmpbdtr, TIM_BDTR_AOE, TIM_BDTRInitStruct->
AutomaticOutput);
716 LL_TIM_WriteReg(TIMx, BDTR, tmpbdtr);
747 assert_param(IS_TIM_CC1_INSTANCE(TIMx));
748 assert_param(IS_LL_TIM_OCMODE(TIM_OCInitStruct->
OCMode));
749 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCState));
750 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCPolarity));
753 CLEAR_BIT(TIMx->CCER, TIM_CCER_CC1E);
756 tmpccer = LL_TIM_ReadReg(TIMx, CCER);
759 tmpcr2 = LL_TIM_ReadReg(TIMx, CR2);
762 tmpccmr1 = LL_TIM_ReadReg(TIMx, CCMR1);
765 CLEAR_BIT(tmpccmr1, TIM_CCMR1_CC1S);
768 MODIFY_REG(tmpccmr1, TIM_CCMR1_OC1M, TIM_OCInitStruct->
OCMode);
771 MODIFY_REG(tmpccer, TIM_CCER_CC1P, TIM_OCInitStruct->
OCPolarity);
774 MODIFY_REG(tmpccer, TIM_CCER_CC1E, TIM_OCInitStruct->
OCState);
776 if (IS_TIM_BREAK_INSTANCE(TIMx))
778 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCIdleState));
779 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCNState));
780 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCNPolarity));
781 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCNIdleState));
784 MODIFY_REG(tmpccer, TIM_CCER_CC1NP, TIM_OCInitStruct->
OCNPolarity << 2U);
787 MODIFY_REG(tmpccer, TIM_CCER_CC1NE, TIM_OCInitStruct->
OCNState << 2U);
790 MODIFY_REG(tmpcr2, TIM_CR2_OIS1, TIM_OCInitStruct->
OCIdleState);
793 MODIFY_REG(tmpcr2, TIM_CR2_OIS1N, TIM_OCInitStruct->
OCNIdleState << 1U);
797 LL_TIM_WriteReg(TIMx, CR2, tmpcr2);
800 LL_TIM_WriteReg(TIMx, CCMR1, tmpccmr1);
806 LL_TIM_WriteReg(TIMx, CCER, tmpccer);
826 assert_param(IS_TIM_CC2_INSTANCE(TIMx));
827 assert_param(IS_LL_TIM_OCMODE(TIM_OCInitStruct->
OCMode));
828 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCState));
829 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCPolarity));
832 CLEAR_BIT(TIMx->CCER, TIM_CCER_CC2E);
835 tmpccer = LL_TIM_ReadReg(TIMx, CCER);
838 tmpcr2 = LL_TIM_ReadReg(TIMx, CR2);
841 tmpccmr1 = LL_TIM_ReadReg(TIMx, CCMR1);
844 CLEAR_BIT(tmpccmr1, TIM_CCMR1_CC2S);
847 MODIFY_REG(tmpccmr1, TIM_CCMR1_OC2M, TIM_OCInitStruct->
OCMode << 8U);
850 MODIFY_REG(tmpccer, TIM_CCER_CC2P, TIM_OCInitStruct->
OCPolarity << 4U);
853 MODIFY_REG(tmpccer, TIM_CCER_CC2E, TIM_OCInitStruct->
OCState << 4U);
855 if (IS_TIM_BREAK_INSTANCE(TIMx))
857 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCIdleState));
858 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCNState));
859 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCNPolarity));
860 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCNIdleState));
863 MODIFY_REG(tmpccer, TIM_CCER_CC2NP, TIM_OCInitStruct->
OCNPolarity << 6U);
866 MODIFY_REG(tmpccer, TIM_CCER_CC2NE, TIM_OCInitStruct->
OCNState << 6U);
869 MODIFY_REG(tmpcr2, TIM_CR2_OIS2, TIM_OCInitStruct->
OCIdleState << 2U);
872 MODIFY_REG(tmpcr2, TIM_CR2_OIS2N, TIM_OCInitStruct->
OCNIdleState << 3U);
876 LL_TIM_WriteReg(TIMx, CR2, tmpcr2);
879 LL_TIM_WriteReg(TIMx, CCMR1, tmpccmr1);
885 LL_TIM_WriteReg(TIMx, CCER, tmpccer);
905 assert_param(IS_TIM_CC3_INSTANCE(TIMx));
906 assert_param(IS_LL_TIM_OCMODE(TIM_OCInitStruct->
OCMode));
907 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCState));
908 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCPolarity));
911 CLEAR_BIT(TIMx->CCER, TIM_CCER_CC3E);
914 tmpccer = LL_TIM_ReadReg(TIMx, CCER);
917 tmpcr2 = LL_TIM_ReadReg(TIMx, CR2);
920 tmpccmr2 = LL_TIM_ReadReg(TIMx, CCMR2);
923 CLEAR_BIT(tmpccmr2, TIM_CCMR2_CC3S);
926 MODIFY_REG(tmpccmr2, TIM_CCMR2_OC3M, TIM_OCInitStruct->
OCMode);
929 MODIFY_REG(tmpccer, TIM_CCER_CC3P, TIM_OCInitStruct->
OCPolarity << 8U);
932 MODIFY_REG(tmpccer, TIM_CCER_CC3E, TIM_OCInitStruct->
OCState << 8U);
934 if (IS_TIM_BREAK_INSTANCE(TIMx))
936 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCIdleState));
937 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCNState));
938 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCNPolarity));
939 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCNIdleState));
942 MODIFY_REG(tmpccer, TIM_CCER_CC3NP, TIM_OCInitStruct->
OCNPolarity << 10U);
945 MODIFY_REG(tmpccer, TIM_CCER_CC3NE, TIM_OCInitStruct->
OCNState << 10U);
948 MODIFY_REG(tmpcr2, TIM_CR2_OIS3, TIM_OCInitStruct->
OCIdleState << 4U);
951 MODIFY_REG(tmpcr2, TIM_CR2_OIS3N, TIM_OCInitStruct->
OCNIdleState << 5U);
955 LL_TIM_WriteReg(TIMx, CR2, tmpcr2);
958 LL_TIM_WriteReg(TIMx, CCMR2, tmpccmr2);
964 LL_TIM_WriteReg(TIMx, CCER, tmpccer);
984 assert_param(IS_TIM_CC4_INSTANCE(TIMx));
985 assert_param(IS_LL_TIM_OCMODE(TIM_OCInitStruct->
OCMode));
986 assert_param(IS_LL_TIM_OCSTATE(TIM_OCInitStruct->
OCState));
987 assert_param(IS_LL_TIM_OCPOLARITY(TIM_OCInitStruct->
OCPolarity));
990 CLEAR_BIT(TIMx->CCER, TIM_CCER_CC4E);
993 tmpccer = LL_TIM_ReadReg(TIMx, CCER);
996 tmpcr2 = LL_TIM_ReadReg(TIMx, CR2);
999 tmpccmr2 = LL_TIM_ReadReg(TIMx, CCMR2);
1002 CLEAR_BIT(tmpccmr2, TIM_CCMR2_CC4S);
1005 MODIFY_REG(tmpccmr2, TIM_CCMR2_OC4M, TIM_OCInitStruct->
OCMode << 8U);
1008 MODIFY_REG(tmpccer, TIM_CCER_CC4P, TIM_OCInitStruct->
OCPolarity << 12U);
1011 MODIFY_REG(tmpccer, TIM_CCER_CC4E, TIM_OCInitStruct->
OCState << 12U);
1013 if (IS_TIM_BREAK_INSTANCE(TIMx))
1015 assert_param(IS_LL_TIM_OCIDLESTATE(TIM_OCInitStruct->
OCIdleState));
1018 MODIFY_REG(tmpcr2, TIM_CR2_OIS4, TIM_OCInitStruct->
OCIdleState << 6U);
1022 LL_TIM_WriteReg(TIMx, CR2, tmpcr2);
1025 LL_TIM_WriteReg(TIMx, CCMR2, tmpccmr2);
1031 LL_TIM_WriteReg(TIMx, CCER, tmpccer);
1047 assert_param(IS_TIM_CC1_INSTANCE(TIMx));
1048 assert_param(IS_LL_TIM_IC_POLARITY(TIM_ICInitStruct->
ICPolarity));
1049 assert_param(IS_LL_TIM_ACTIVEINPUT(TIM_ICInitStruct->
ICActiveInput));
1050 assert_param(IS_LL_TIM_ICPSC(TIM_ICInitStruct->
ICPrescaler));
1051 assert_param(IS_LL_TIM_IC_FILTER(TIM_ICInitStruct->
ICFilter));
1054 TIMx->CCER &= (uint32_t)~TIM_CCER_CC1E;
1057 MODIFY_REG(TIMx->CCMR1,
1058 (TIM_CCMR1_CC1S | TIM_CCMR1_IC1F | TIM_CCMR1_IC1PSC),
1062 MODIFY_REG(TIMx->CCER,
1063 (TIM_CCER_CC1P | TIM_CCER_CC1NP),
1064 (TIM_ICInitStruct->
ICPolarity | TIM_CCER_CC1E));
1080 assert_param(IS_TIM_CC2_INSTANCE(TIMx));
1081 assert_param(IS_LL_TIM_IC_POLARITY(TIM_ICInitStruct->
ICPolarity));
1082 assert_param(IS_LL_TIM_ACTIVEINPUT(TIM_ICInitStruct->
ICActiveInput));
1083 assert_param(IS_LL_TIM_ICPSC(TIM_ICInitStruct->
ICPrescaler));
1084 assert_param(IS_LL_TIM_IC_FILTER(TIM_ICInitStruct->
ICFilter));
1087 TIMx->CCER &= (uint32_t)~TIM_CCER_CC2E;
1090 MODIFY_REG(TIMx->CCMR1,
1091 (TIM_CCMR1_CC2S | TIM_CCMR1_IC2F | TIM_CCMR1_IC2PSC),
1095 MODIFY_REG(TIMx->CCER,
1096 (TIM_CCER_CC2P | TIM_CCER_CC2NP),
1097 ((TIM_ICInitStruct->
ICPolarity << 4U) | TIM_CCER_CC2E));
1113 assert_param(IS_TIM_CC3_INSTANCE(TIMx));
1114 assert_param(IS_LL_TIM_IC_POLARITY(TIM_ICInitStruct->
ICPolarity));
1115 assert_param(IS_LL_TIM_ACTIVEINPUT(TIM_ICInitStruct->
ICActiveInput));
1116 assert_param(IS_LL_TIM_ICPSC(TIM_ICInitStruct->
ICPrescaler));
1117 assert_param(IS_LL_TIM_IC_FILTER(TIM_ICInitStruct->
ICFilter));
1120 TIMx->CCER &= (uint32_t)~TIM_CCER_CC3E;
1123 MODIFY_REG(TIMx->CCMR2,
1124 (TIM_CCMR2_CC3S | TIM_CCMR2_IC3F | TIM_CCMR2_IC3PSC),
1128 MODIFY_REG(TIMx->CCER,
1129 (TIM_CCER_CC3P | TIM_CCER_CC3NP),
1130 ((TIM_ICInitStruct->
ICPolarity << 8U) | TIM_CCER_CC3E));
1146 assert_param(IS_TIM_CC4_INSTANCE(TIMx));
1147 assert_param(IS_LL_TIM_IC_POLARITY(TIM_ICInitStruct->
ICPolarity));
1148 assert_param(IS_LL_TIM_ACTIVEINPUT(TIM_ICInitStruct->
ICActiveInput));
1149 assert_param(IS_LL_TIM_ICPSC(TIM_ICInitStruct->
ICPrescaler));
1150 assert_param(IS_LL_TIM_IC_FILTER(TIM_ICInitStruct->
ICFilter));
1153 TIMx->CCER &= (uint32_t)~TIM_CCER_CC4E;
1156 MODIFY_REG(TIMx->CCMR2,
1157 (TIM_CCMR2_CC4S | TIM_CCMR2_IC4F | TIM_CCMR2_IC4PSC),
1161 MODIFY_REG(TIMx->CCER,
1162 (TIM_CCER_CC4P | TIM_CCER_CC4NP),
1163 ((TIM_ICInitStruct->
ICPolarity << 12U) | TIM_CCER_CC4E));
__STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
Force APB1 peripherals reset. @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ForceReset APB1RSTR TIM3RST LL_A...
__STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
Release APB1 peripherals reset. @rmtoll APB1RSTR TIM2RST LL_APB1_GRP1_ReleaseReset APB1RSTR TIM3RST ...
__STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
Release APB2 peripherals reset. @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ReleaseReset APB2RSTR TIM8RST ...
__STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
Force APB2 peripherals reset. @rmtoll APB2RSTR TIM1RST LL_APB2_GRP1_ForceReset APB2RSTR TIM8RST LL_A...
__STATIC_INLINE void LL_TIM_SetEncoderMode(TIM_TypeDef *TIMx, uint32_t EncoderMode)
Set the encoder interface mode.
__STATIC_INLINE void LL_TIM_GenerateEvent_UPDATE(TIM_TypeDef *TIMx)
Generate an update event. @rmtoll EGR UG LL_TIM_GenerateEvent_UPDATE.
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_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_SetCompareCH1(TIM_TypeDef *TIMx, uint32_t CompareValue)
Set compare value for output channel 1 (TIMx_CCR1).
__STATIC_INLINE void LL_TIM_OC_SetCompareCH2(TIM_TypeDef *TIMx, uint32_t CompareValue)
Set compare value for output channel 2 (TIMx_CCR2).
__STATIC_INLINE void LL_TIM_SetAutoReload(TIM_TypeDef *TIMx, uint32_t AutoReload)
Set the auto-reload value.
__STATIC_INLINE void LL_TIM_SetRepetitionCounter(TIM_TypeDef *TIMx, uint32_t RepetitionCounter)
Set the repetition counter value.
__STATIC_INLINE void LL_TIM_SetPrescaler(TIM_TypeDef *TIMx, uint32_t Prescaler)
Set the prescaler value.
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.
Header file of BUS LL module.
Header file of TIM LL module.