20 #ifndef STM32F4xx_HAL_TIM_H
21 #define STM32F4xx_HAL_TIM_H
334 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
335 typedef struct __TIM_HandleTypeDef
351 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
352 void (* Base_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
353 void (* Base_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
354 void (* IC_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
355 void (* IC_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
356 void (* OC_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
357 void (* OC_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
358 void (* PWM_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
359 void (* PWM_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
360 void (* OnePulse_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
361 void (* OnePulse_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
362 void (* Encoder_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
363 void (* Encoder_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
364 void (* HallSensor_MspInitCallback)(
struct __TIM_HandleTypeDef *htim);
365 void (* HallSensor_MspDeInitCallback)(
struct __TIM_HandleTypeDef *htim);
366 void (* PeriodElapsedCallback)(
struct __TIM_HandleTypeDef *htim);
367 void (* PeriodElapsedHalfCpltCallback)(
struct __TIM_HandleTypeDef *htim);
368 void (* TriggerCallback)(
struct __TIM_HandleTypeDef *htim);
369 void (* TriggerHalfCpltCallback)(
struct __TIM_HandleTypeDef *htim);
370 void (* IC_CaptureCallback)(
struct __TIM_HandleTypeDef *htim);
371 void (* IC_CaptureHalfCpltCallback)(
struct __TIM_HandleTypeDef *htim);
372 void (* OC_DelayElapsedCallback)(
struct __TIM_HandleTypeDef *htim);
373 void (* PWM_PulseFinishedCallback)(
struct __TIM_HandleTypeDef *htim);
374 void (* PWM_PulseFinishedHalfCpltCallback)(
struct __TIM_HandleTypeDef *htim);
375 void (* ErrorCallback)(
struct __TIM_HandleTypeDef *htim);
376 void (* CommutationCallback)(
struct __TIM_HandleTypeDef *htim);
377 void (* CommutationHalfCpltCallback)(
struct __TIM_HandleTypeDef *htim);
378 void (* BreakCallback)(
struct __TIM_HandleTypeDef *htim);
382 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
437 #define TIM_CLEARINPUTSOURCE_NONE 0x00000000U
438 #define TIM_CLEARINPUTSOURCE_ETR 0x00000001U
446 #define TIM_DMABASE_CR1 0x00000000U
447 #define TIM_DMABASE_CR2 0x00000001U
448 #define TIM_DMABASE_SMCR 0x00000002U
449 #define TIM_DMABASE_DIER 0x00000003U
450 #define TIM_DMABASE_SR 0x00000004U
451 #define TIM_DMABASE_EGR 0x00000005U
452 #define TIM_DMABASE_CCMR1 0x00000006U
453 #define TIM_DMABASE_CCMR2 0x00000007U
454 #define TIM_DMABASE_CCER 0x00000008U
455 #define TIM_DMABASE_CNT 0x00000009U
456 #define TIM_DMABASE_PSC 0x0000000AU
457 #define TIM_DMABASE_ARR 0x0000000BU
458 #define TIM_DMABASE_RCR 0x0000000CU
459 #define TIM_DMABASE_CCR1 0x0000000DU
460 #define TIM_DMABASE_CCR2 0x0000000EU
461 #define TIM_DMABASE_CCR3 0x0000000FU
462 #define TIM_DMABASE_CCR4 0x00000010U
463 #define TIM_DMABASE_BDTR 0x00000011U
464 #define TIM_DMABASE_DCR 0x00000012U
465 #define TIM_DMABASE_DMAR 0x00000013U
473 #define TIM_EVENTSOURCE_UPDATE TIM_EGR_UG
474 #define TIM_EVENTSOURCE_CC1 TIM_EGR_CC1G
475 #define TIM_EVENTSOURCE_CC2 TIM_EGR_CC2G
476 #define TIM_EVENTSOURCE_CC3 TIM_EGR_CC3G
477 #define TIM_EVENTSOURCE_CC4 TIM_EGR_CC4G
478 #define TIM_EVENTSOURCE_COM TIM_EGR_COMG
479 #define TIM_EVENTSOURCE_TRIGGER TIM_EGR_TG
480 #define TIM_EVENTSOURCE_BREAK TIM_EGR_BG
488 #define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U
489 #define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P
490 #define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
498 #define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP
499 #define TIM_ETRPOLARITY_NONINVERTED 0x00000000U
507 #define TIM_ETRPRESCALER_DIV1 0x00000000U
508 #define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0
509 #define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1
510 #define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS
518 #define TIM_COUNTERMODE_UP 0x00000000U
519 #define TIM_COUNTERMODE_DOWN TIM_CR1_DIR
520 #define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0
521 #define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1
522 #define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS
530 #define TIM_CLOCKDIVISION_DIV1 0x00000000U
531 #define TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
532 #define TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
540 #define TIM_OUTPUTSTATE_DISABLE 0x00000000U
541 #define TIM_OUTPUTSTATE_ENABLE TIM_CCER_CC1E
549 #define TIM_AUTORELOAD_PRELOAD_DISABLE 0x00000000U
550 #define TIM_AUTORELOAD_PRELOAD_ENABLE TIM_CR1_ARPE
559 #define TIM_OCFAST_DISABLE 0x00000000U
560 #define TIM_OCFAST_ENABLE TIM_CCMR1_OC1FE
568 #define TIM_OUTPUTNSTATE_DISABLE 0x00000000U
569 #define TIM_OUTPUTNSTATE_ENABLE TIM_CCER_CC1NE
577 #define TIM_OCPOLARITY_HIGH 0x00000000U
578 #define TIM_OCPOLARITY_LOW TIM_CCER_CC1P
586 #define TIM_OCNPOLARITY_HIGH 0x00000000U
587 #define TIM_OCNPOLARITY_LOW TIM_CCER_CC1NP
595 #define TIM_OCIDLESTATE_SET TIM_CR2_OIS1
596 #define TIM_OCIDLESTATE_RESET 0x00000000U
604 #define TIM_OCNIDLESTATE_SET TIM_CR2_OIS1N
605 #define TIM_OCNIDLESTATE_RESET 0x00000000U
613 #define TIM_ICPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
614 #define TIM_ICPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
615 #define TIM_ICPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
623 #define TIM_ENCODERINPUTPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
624 #define TIM_ENCODERINPUTPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
632 #define TIM_ICSELECTION_DIRECTTI TIM_CCMR1_CC1S_0
633 #define TIM_ICSELECTION_INDIRECTTI TIM_CCMR1_CC1S_1
634 #define TIM_ICSELECTION_TRC TIM_CCMR1_CC1S
642 #define TIM_ICPSC_DIV1 0x00000000U
643 #define TIM_ICPSC_DIV2 TIM_CCMR1_IC1PSC_0
644 #define TIM_ICPSC_DIV4 TIM_CCMR1_IC1PSC_1
645 #define TIM_ICPSC_DIV8 TIM_CCMR1_IC1PSC
653 #define TIM_OPMODE_SINGLE TIM_CR1_OPM
654 #define TIM_OPMODE_REPETITIVE 0x00000000U
662 #define TIM_ENCODERMODE_TI1 TIM_SMCR_SMS_0
663 #define TIM_ENCODERMODE_TI2 TIM_SMCR_SMS_1
664 #define TIM_ENCODERMODE_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
672 #define TIM_IT_UPDATE TIM_DIER_UIE
673 #define TIM_IT_CC1 TIM_DIER_CC1IE
674 #define TIM_IT_CC2 TIM_DIER_CC2IE
675 #define TIM_IT_CC3 TIM_DIER_CC3IE
676 #define TIM_IT_CC4 TIM_DIER_CC4IE
677 #define TIM_IT_COM TIM_DIER_COMIE
678 #define TIM_IT_TRIGGER TIM_DIER_TIE
679 #define TIM_IT_BREAK TIM_DIER_BIE
687 #define TIM_COMMUTATION_TRGI TIM_CR2_CCUS
688 #define TIM_COMMUTATION_SOFTWARE 0x00000000U
696 #define TIM_DMA_UPDATE TIM_DIER_UDE
697 #define TIM_DMA_CC1 TIM_DIER_CC1DE
698 #define TIM_DMA_CC2 TIM_DIER_CC2DE
699 #define TIM_DMA_CC3 TIM_DIER_CC3DE
700 #define TIM_DMA_CC4 TIM_DIER_CC4DE
701 #define TIM_DMA_COM TIM_DIER_COMDE
702 #define TIM_DMA_TRIGGER TIM_DIER_TDE
710 #define TIM_CCDMAREQUEST_CC 0x00000000U
711 #define TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
719 #define TIM_FLAG_UPDATE TIM_SR_UIF
720 #define TIM_FLAG_CC1 TIM_SR_CC1IF
721 #define TIM_FLAG_CC2 TIM_SR_CC2IF
722 #define TIM_FLAG_CC3 TIM_SR_CC3IF
723 #define TIM_FLAG_CC4 TIM_SR_CC4IF
724 #define TIM_FLAG_COM TIM_SR_COMIF
725 #define TIM_FLAG_TRIGGER TIM_SR_TIF
726 #define TIM_FLAG_BREAK TIM_SR_BIF
727 #define TIM_FLAG_CC1OF TIM_SR_CC1OF
728 #define TIM_FLAG_CC2OF TIM_SR_CC2OF
729 #define TIM_FLAG_CC3OF TIM_SR_CC3OF
730 #define TIM_FLAG_CC4OF TIM_SR_CC4OF
738 #define TIM_CHANNEL_1 0x00000000U
739 #define TIM_CHANNEL_2 0x00000004U
740 #define TIM_CHANNEL_3 0x00000008U
741 #define TIM_CHANNEL_4 0x0000000CU
742 #define TIM_CHANNEL_ALL 0x0000003CU
750 #define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0
751 #define TIM_CLOCKSOURCE_ETRMODE1 TIM_TS_ETRF
752 #define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1
753 #define TIM_CLOCKSOURCE_TI1ED TIM_TS_TI1F_ED
754 #define TIM_CLOCKSOURCE_TI1 TIM_TS_TI1FP1
755 #define TIM_CLOCKSOURCE_TI2 TIM_TS_TI2FP2
756 #define TIM_CLOCKSOURCE_ITR0 TIM_TS_ITR0
757 #define TIM_CLOCKSOURCE_ITR1 TIM_TS_ITR1
758 #define TIM_CLOCKSOURCE_ITR2 TIM_TS_ITR2
759 #define TIM_CLOCKSOURCE_ITR3 TIM_TS_ITR3
767 #define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
768 #define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
769 #define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
770 #define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
771 #define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
779 #define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
780 #define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
781 #define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
782 #define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
790 #define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
791 #define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
799 #define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
800 #define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
801 #define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
802 #define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
810 #define TIM_OSSR_ENABLE TIM_BDTR_OSSR
811 #define TIM_OSSR_DISABLE 0x00000000U
819 #define TIM_OSSI_ENABLE TIM_BDTR_OSSI
820 #define TIM_OSSI_DISABLE 0x00000000U
827 #define TIM_LOCKLEVEL_OFF 0x00000000U
828 #define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
829 #define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
830 #define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
838 #define TIM_BREAK_ENABLE TIM_BDTR_BKE
839 #define TIM_BREAK_DISABLE 0x00000000U
847 #define TIM_BREAKPOLARITY_LOW 0x00000000U
848 #define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP
856 #define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
857 #define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
865 #define TIM_TRGO_RESET 0x00000000U
866 #define TIM_TRGO_ENABLE TIM_CR2_MMS_0
867 #define TIM_TRGO_UPDATE TIM_CR2_MMS_1
868 #define TIM_TRGO_OC1 (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
869 #define TIM_TRGO_OC1REF TIM_CR2_MMS_2
870 #define TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
871 #define TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
872 #define TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
880 #define TIM_MASTERSLAVEMODE_ENABLE TIM_SMCR_MSM
881 #define TIM_MASTERSLAVEMODE_DISABLE 0x00000000U
889 #define TIM_SLAVEMODE_DISABLE 0x00000000U
890 #define TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
891 #define TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
892 #define TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
893 #define TIM_SLAVEMODE_EXTERNAL1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
901 #define TIM_OCMODE_TIMING 0x00000000U
902 #define TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
903 #define TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
904 #define TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
905 #define TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
906 #define TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
907 #define TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
908 #define TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
916 #define TIM_TS_ITR0 0x00000000U
917 #define TIM_TS_ITR1 TIM_SMCR_TS_0
918 #define TIM_TS_ITR2 TIM_SMCR_TS_1
919 #define TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
920 #define TIM_TS_TI1F_ED TIM_SMCR_TS_2
921 #define TIM_TS_TI1FP1 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)
922 #define TIM_TS_TI2FP2 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
923 #define TIM_TS_ETRF (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
924 #define TIM_TS_NONE 0x0000FFFFU
932 #define TIM_TRIGGERPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
933 #define TIM_TRIGGERPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
934 #define TIM_TRIGGERPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
935 #define TIM_TRIGGERPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
936 #define TIM_TRIGGERPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
944 #define TIM_TRIGGERPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
945 #define TIM_TRIGGERPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
946 #define TIM_TRIGGERPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
947 #define TIM_TRIGGERPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
955 #define TIM_TI1SELECTION_CH1 0x00000000U
956 #define TIM_TI1SELECTION_XORCOMBINATION TIM_CR2_TI1S
964 #define TIM_DMABURSTLENGTH_1TRANSFER 0x00000000U
965 #define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U
966 #define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U
967 #define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U
968 #define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U
969 #define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U
970 #define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U
971 #define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U
972 #define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U
973 #define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U
974 #define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U
975 #define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U
976 #define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U
977 #define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U
978 #define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U
979 #define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U
980 #define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U
981 #define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U
989 #define TIM_DMA_ID_UPDATE ((uint16_t) 0x0000)
990 #define TIM_DMA_ID_CC1 ((uint16_t) 0x0001)
991 #define TIM_DMA_ID_CC2 ((uint16_t) 0x0002)
992 #define TIM_DMA_ID_CC3 ((uint16_t) 0x0003)
993 #define TIM_DMA_ID_CC4 ((uint16_t) 0x0004)
994 #define TIM_DMA_ID_COMMUTATION ((uint16_t) 0x0005)
995 #define TIM_DMA_ID_TRIGGER ((uint16_t) 0x0006)
1003 #define TIM_CCx_ENABLE 0x00000001U
1004 #define TIM_CCx_DISABLE 0x00000000U
1005 #define TIM_CCxN_ENABLE 0x00000004U
1006 #define TIM_CCxN_DISABLE 0x00000000U
1025 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1026 #define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1027 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1028 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1029 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1030 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1031 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1032 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1033 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1034 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1035 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1036 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1037 (__HANDLE__)->Base_MspInitCallback = NULL; \
1038 (__HANDLE__)->Base_MspDeInitCallback = NULL; \
1039 (__HANDLE__)->IC_MspInitCallback = NULL; \
1040 (__HANDLE__)->IC_MspDeInitCallback = NULL; \
1041 (__HANDLE__)->OC_MspInitCallback = NULL; \
1042 (__HANDLE__)->OC_MspDeInitCallback = NULL; \
1043 (__HANDLE__)->PWM_MspInitCallback = NULL; \
1044 (__HANDLE__)->PWM_MspDeInitCallback = NULL; \
1045 (__HANDLE__)->OnePulse_MspInitCallback = NULL; \
1046 (__HANDLE__)->OnePulse_MspDeInitCallback = NULL; \
1047 (__HANDLE__)->Encoder_MspInitCallback = NULL; \
1048 (__HANDLE__)->Encoder_MspDeInitCallback = NULL; \
1049 (__HANDLE__)->HallSensor_MspInitCallback = NULL; \
1050 (__HANDLE__)->HallSensor_MspDeInitCallback = NULL; \
1053 #define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1054 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1055 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1056 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1057 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1058 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1059 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1060 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1061 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1062 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1063 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1072 #define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1079 #define __HAL_TIM_MOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1086 #define __HAL_TIM_DISABLE(__HANDLE__) \
1088 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1090 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1092 (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1104 #define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1106 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1108 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1110 (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1121 #define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__) (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1137 #define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1153 #define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1168 #define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER |= (__DMA__))
1183 #define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1203 #define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1223 #define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1240 #define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \
1241 == (__INTERRUPT__)) ? SET : RESET)
1257 #define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1266 #define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
1274 #define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) ((__HANDLE__)->Instance->PSC = (__PRESC__))
1282 #define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1289 #define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
1297 #define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1299 (__HANDLE__)->Instance->ARR = (__AUTORELOAD__); \
1300 (__HANDLE__)->Init.Period = (__AUTORELOAD__); \
1308 #define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) ((__HANDLE__)->Instance->ARR)
1320 #define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1322 (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD); \
1323 (__HANDLE__)->Instance->CR1 |= (__CKD__); \
1324 (__HANDLE__)->Init.ClockDivision = (__CKD__); \
1335 #define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__) ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
1355 #define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1357 TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__)); \
1358 TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1376 #define __HAL_TIM_GET_ICPRESCALER(__HANDLE__, __CHANNEL__) \
1377 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC1PSC) :\
1378 ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1379 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1380 (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1394 #define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
1395 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
1396 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
1397 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
1398 ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)))
1411 #define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
1412 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
1413 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
1414 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
1415 ((__HANDLE__)->Instance->CCR4))
1428 #define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1429 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
1430 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
1431 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
1432 ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE))
1445 #define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1446 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
1447 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
1448 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
1449 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE))
1466 #define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1467 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
1468 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
1469 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
1470 ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE))
1487 #define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1488 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
1489 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
1490 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
1491 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE))
1501 #define __HAL_TIM_URS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS)
1514 #define __HAL_TIM_URS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS)
1531 #define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1533 TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__)); \
1534 TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1545 #define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__) \
1546 MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__))
1559 #define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
1560 #define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
1570 #define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \
1571 ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR))
1573 #define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \
1574 ((__BASE__) == TIM_DMABASE_CR2) || \
1575 ((__BASE__) == TIM_DMABASE_SMCR) || \
1576 ((__BASE__) == TIM_DMABASE_DIER) || \
1577 ((__BASE__) == TIM_DMABASE_SR) || \
1578 ((__BASE__) == TIM_DMABASE_EGR) || \
1579 ((__BASE__) == TIM_DMABASE_CCMR1) || \
1580 ((__BASE__) == TIM_DMABASE_CCMR2) || \
1581 ((__BASE__) == TIM_DMABASE_CCER) || \
1582 ((__BASE__) == TIM_DMABASE_CNT) || \
1583 ((__BASE__) == TIM_DMABASE_PSC) || \
1584 ((__BASE__) == TIM_DMABASE_ARR) || \
1585 ((__BASE__) == TIM_DMABASE_RCR) || \
1586 ((__BASE__) == TIM_DMABASE_CCR1) || \
1587 ((__BASE__) == TIM_DMABASE_CCR2) || \
1588 ((__BASE__) == TIM_DMABASE_CCR3) || \
1589 ((__BASE__) == TIM_DMABASE_CCR4) || \
1590 ((__BASE__) == TIM_DMABASE_BDTR))
1592 #define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1594 #define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \
1595 ((__MODE__) == TIM_COUNTERMODE_DOWN) || \
1596 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \
1597 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \
1598 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3))
1600 #define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \
1601 ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \
1602 ((__DIV__) == TIM_CLOCKDIVISION_DIV4))
1604 #define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
1605 ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
1607 #define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \
1608 ((__STATE__) == TIM_OCFAST_ENABLE))
1610 #define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \
1611 ((__POLARITY__) == TIM_OCPOLARITY_LOW))
1613 #define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \
1614 ((__POLARITY__) == TIM_OCNPOLARITY_LOW))
1616 #define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \
1617 ((__STATE__) == TIM_OCIDLESTATE_RESET))
1619 #define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \
1620 ((__STATE__) == TIM_OCNIDLESTATE_RESET))
1622 #define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \
1623 ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING))
1625 #define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \
1626 ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \
1627 ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
1629 #define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \
1630 ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \
1631 ((__SELECTION__) == TIM_ICSELECTION_TRC))
1633 #define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \
1634 ((__PRESCALER__) == TIM_ICPSC_DIV2) || \
1635 ((__PRESCALER__) == TIM_ICPSC_DIV4) || \
1636 ((__PRESCALER__) == TIM_ICPSC_DIV8))
1638 #define IS_TIM_OPM_MODE(__MODE__) (((__MODE__) == TIM_OPMODE_SINGLE) || \
1639 ((__MODE__) == TIM_OPMODE_REPETITIVE))
1641 #define IS_TIM_ENCODER_MODE(__MODE__) (((__MODE__) == TIM_ENCODERMODE_TI1) || \
1642 ((__MODE__) == TIM_ENCODERMODE_TI2) || \
1643 ((__MODE__) == TIM_ENCODERMODE_TI12))
1645 #define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1647 #define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1648 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1649 ((__CHANNEL__) == TIM_CHANNEL_3) || \
1650 ((__CHANNEL__) == TIM_CHANNEL_4) || \
1651 ((__CHANNEL__) == TIM_CHANNEL_ALL))
1653 #define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1654 ((__CHANNEL__) == TIM_CHANNEL_2))
1656 #define IS_TIM_PERIOD(__HANDLE__, __PERIOD__) ((IS_TIM_32B_COUNTER_INSTANCE(((__HANDLE__)->Instance)) == 0U) ? \
1657 (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : \
1658 ((__PERIOD__) > 0U))
1660 #define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1661 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1662 ((__CHANNEL__) == TIM_CHANNEL_3))
1664 #define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
1665 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
1666 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
1667 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
1668 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
1669 ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
1670 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
1671 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
1672 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
1673 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3))
1675 #define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \
1676 ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
1677 ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \
1678 ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \
1679 ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE))
1681 #define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \
1682 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \
1683 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \
1684 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8))
1686 #define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1688 #define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
1689 ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
1691 #define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \
1692 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \
1693 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \
1694 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8))
1696 #define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1698 #define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \
1699 ((__STATE__) == TIM_OSSR_DISABLE))
1701 #define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \
1702 ((__STATE__) == TIM_OSSI_DISABLE))
1704 #define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \
1705 ((__LEVEL__) == TIM_LOCKLEVEL_1) || \
1706 ((__LEVEL__) == TIM_LOCKLEVEL_2) || \
1707 ((__LEVEL__) == TIM_LOCKLEVEL_3))
1709 #define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL)
1711 #define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \
1712 ((__STATE__) == TIM_BREAK_DISABLE))
1714 #define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \
1715 ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH))
1717 #define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \
1718 ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE))
1720 #define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET) || \
1721 ((__SOURCE__) == TIM_TRGO_ENABLE) || \
1722 ((__SOURCE__) == TIM_TRGO_UPDATE) || \
1723 ((__SOURCE__) == TIM_TRGO_OC1) || \
1724 ((__SOURCE__) == TIM_TRGO_OC1REF) || \
1725 ((__SOURCE__) == TIM_TRGO_OC2REF) || \
1726 ((__SOURCE__) == TIM_TRGO_OC3REF) || \
1727 ((__SOURCE__) == TIM_TRGO_OC4REF))
1729 #define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \
1730 ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE))
1732 #define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \
1733 ((__MODE__) == TIM_SLAVEMODE_RESET) || \
1734 ((__MODE__) == TIM_SLAVEMODE_GATED) || \
1735 ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \
1736 ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1))
1738 #define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \
1739 ((__MODE__) == TIM_OCMODE_PWM2))
1741 #define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \
1742 ((__MODE__) == TIM_OCMODE_ACTIVE) || \
1743 ((__MODE__) == TIM_OCMODE_INACTIVE) || \
1744 ((__MODE__) == TIM_OCMODE_TOGGLE) || \
1745 ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \
1746 ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE))
1748 #define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
1749 ((__SELECTION__) == TIM_TS_ITR1) || \
1750 ((__SELECTION__) == TIM_TS_ITR2) || \
1751 ((__SELECTION__) == TIM_TS_ITR3) || \
1752 ((__SELECTION__) == TIM_TS_TI1F_ED) || \
1753 ((__SELECTION__) == TIM_TS_TI1FP1) || \
1754 ((__SELECTION__) == TIM_TS_TI2FP2) || \
1755 ((__SELECTION__) == TIM_TS_ETRF))
1757 #define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
1758 ((__SELECTION__) == TIM_TS_ITR1) || \
1759 ((__SELECTION__) == TIM_TS_ITR2) || \
1760 ((__SELECTION__) == TIM_TS_ITR3) || \
1761 ((__SELECTION__) == TIM_TS_NONE))
1763 #define IS_TIM_TRIGGERPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED ) || \
1764 ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
1765 ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING ) || \
1766 ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING ) || \
1767 ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE ))
1769 #define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \
1770 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \
1771 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \
1772 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8))
1774 #define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1776 #define IS_TIM_TI1SELECTION(__TI1SELECTION__) (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \
1777 ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION))
1779 #define IS_TIM_DMA_LENGTH(__LENGTH__) (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER) || \
1780 ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS) || \
1781 ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS) || \
1782 ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS) || \
1783 ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS) || \
1784 ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS) || \
1785 ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS) || \
1786 ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS) || \
1787 ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS) || \
1788 ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
1789 ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
1790 ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
1791 ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
1792 ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
1793 ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
1794 ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
1795 ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
1796 ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS))
1798 #define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U))
1800 #define IS_TIM_IC_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1802 #define IS_TIM_DEADTIME(__DEADTIME__) ((__DEADTIME__) <= 0xFFU)
1804 #define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER)
1806 #define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
1807 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
1808 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
1809 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
1810 ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
1812 #define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
1813 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
1814 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
1815 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
1816 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
1818 #define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1819 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
1820 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
1821 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
1822 ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U))))
1824 #define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
1825 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
1826 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
1827 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\
1828 ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP)))
1830 #define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
1831 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
1832 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
1833 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
1834 (__HANDLE__)->ChannelState[3])
1836 #define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
1837 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
1838 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
1839 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
1840 ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)))
1842 #define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
1843 (__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__); \
1844 (__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__); \
1845 (__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__); \
1846 (__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__); \
1849 #define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\
1850 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\
1851 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\
1852 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\
1853 (__HANDLE__)->ChannelNState[3])
1855 #define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
1856 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\
1857 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\
1858 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\
1859 ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__)))
1861 #define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
1862 (__HANDLE__)->ChannelNState[0] = \
1863 (__CHANNEL_STATE__); \
1864 (__HANDLE__)->ChannelNState[1] = \
1865 (__CHANNEL_STATE__); \
1866 (__HANDLE__)->ChannelNState[2] = \
1867 (__CHANNEL_STATE__); \
1868 (__HANDLE__)->ChannelNState[3] = \
1869 (__CHANNEL_STATE__); \
2011 uint32_t *pData2, uint16_t Length);
2039 uint32_t OutputChannel, uint32_t InputChannel);
2048 uint32_t BurstRequestSrc,
const uint32_t *BurstBuffer,
2049 uint32_t BurstLength);
2051 uint32_t BurstRequestSrc,
const uint32_t *BurstBuffer,
2052 uint32_t BurstLength, uint32_t DataLength);
2055 uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength);
2057 uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
2058 uint32_t BurstLength, uint32_t DataLength);
2083 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2123 void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
2126 uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
2132 void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
2134 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
TIM_Base_InitTypeDef Init
__IO HAL_TIM_DMABurstStateTypeDef DMABurstState
HAL_TIM_ActiveChannel Channel
__IO HAL_TIM_StateTypeDef State
ADC handle Structure definition.
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim)
Return the TIM One Pulse Mode handle state.
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Input Capture handle state.
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel)
Return actual state of the TIM channel.
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Base handle state.
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim)
Return the TIM PWM handle state.
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim)
Return actual state of a DMA burst operation.
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim)
Return the TIM OC handle state.
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Time base Unit according to the specified parameters in the TIM_HandleTypeDef and...
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length)
Starts the TIM Base generation in DMA mode.
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)
Stops the TIM Base generation.
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Base peripheral.
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
Starts the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)
Starts the TIM Base generation.
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
Starts the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation.
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare according to the specified parameters in the TIM_HandleTypeDef and...
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation.
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
Initializes the TIM PWM Time Base according to the specified parameters in the TIM_HandleTypeDef and ...
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
Starts the TIM PWM signal generation in DMA mode.
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM PWM MSP.
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM PWM MSP.
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM PWM signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement.
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture Time base according to the specified parameters in the TIM_HandleTy...
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in DMA mode.
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement.
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement in interrupt mode.
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
Starts the TIM Input Capture measurement in DMA mode.
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode)
Initializes the TIM One Pulse Time Base according to the specified parameters in the TIM_HandleTypeDe...
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM One Pulse MSP.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation in interrupt mode.
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM One Pulse MSP.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM One Pulse.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in DMA mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length)
Starts the TIM Encoder Interface in DMA mode.
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface in interrupt mode.
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Encoder interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig)
Initializes the TIM Encoder Interface and initialize the associated handle.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in interrupt mode.
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
This function handles TIM interrupts requests.
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Input Capture Channels according to the specified parameters in the TIM_IC_InitTy...
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
Configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM PWM channels according to the specified parameters in the TIM_OC_InitTypeDef.
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the memory to the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stop the DMA burst reading.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode in interrupt mode.
uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel)
Read the captured value from Capture Compare unit.
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection)
Selects the signal connected to the TI1 input: direct from CH1_input or a XOR combination between CH1...
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stops the TIM DMA Burst mode.
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Output Compare Channels according to the specified parameters in the TIM_OC_InitT...
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig)
Configures the clock source to be used.
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource)
Generate a software event.
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, const TIM_ClearInputConfigTypeDef *sClearInputConfig, uint32_t Channel)
Configures the OCRef clear feature.
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, uint32_t OutputChannel, uint32_t InputChannel)
Initializes the TIM One Pulse Channels according to the specified parameters in the TIM_OnePulse_Init...
HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID)
Unregister a TIM callback TIM callback is redirected to the weak predefined callback.
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection half complete callback in non-blocking mode.
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim)
Input Capture half complete callback in non-blocking mode.
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
Output Compare callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished half complete callback in non-blocking mode.
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
Timer error callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished callback in non-blocking mode.
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection callback in non-blocking mode.
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim)
Period elapsed half complete callback in non-blocking mode.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
Period elapsed callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID, pTIM_CallbackTypeDef pCallback)
Register a User TIM callback to be used instead of the weak predefined callback.
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
Input Capture callback in non-blocking mode.
uint32_t AutoReloadPreload
uint32_t ClearInputPolarity
uint32_t OffStateIDLEMode
uint32_t ClearInputPrescaler
uint32_t TriggerPrescaler
uint32_t ClearInputFilter
uint32_t ClearInputSource
uint32_t MasterOutputTrigger
uint32_t RepetitionCounter
HAL_TIM_ChannelStateTypeDef
TIM Channel States definition.
void(* pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim)
HAL TIM Callback pointer definition.
HAL_TIM_DMABurstStateTypeDef
DMA Burst States definition.
HAL_TIM_ActiveChannel
HAL Active channel structures definition.
HAL_TIM_CallbackIDTypeDef
HAL TIM Callback ID enumeration definition.
HAL_TIM_StateTypeDef
HAL State structures definition.
struct __TIM_HandleTypeDef else typedef struct endif TIM_HandleTypeDef
TIM Time Base Handle Structure definition.
@ HAL_TIM_CHANNEL_STATE_READY
@ HAL_TIM_CHANNEL_STATE_RESET
@ HAL_TIM_CHANNEL_STATE_BUSY
@ HAL_DMA_BURST_STATE_BUSY
@ HAL_DMA_BURST_STATE_READY
@ HAL_DMA_BURST_STATE_RESET
@ HAL_TIM_ACTIVE_CHANNEL_1
@ HAL_TIM_ACTIVE_CHANNEL_CLEARED
@ HAL_TIM_ACTIVE_CHANNEL_4
@ HAL_TIM_ACTIVE_CHANNEL_3
@ HAL_TIM_ACTIVE_CHANNEL_2
@ HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID
@ HAL_TIM_ONE_PULSE_MSPINIT_CB_ID
@ HAL_TIM_BASE_MSPDEINIT_CB_ID
@ HAL_TIM_COMMUTATION_CB_ID
@ HAL_TIM_OC_MSPINIT_CB_ID
@ HAL_TIM_OC_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_PULSE_FINISHED_CB_ID
@ HAL_TIM_ENCODER_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID
@ HAL_TIM_ENCODER_MSPINIT_CB_ID
@ HAL_TIM_BASE_MSPINIT_CB_ID
@ HAL_TIM_COMMUTATION_HALF_CB_ID
@ HAL_TIM_IC_CAPTURE_CB_ID
@ HAL_TIM_IC_CAPTURE_HALF_CB_ID
@ HAL_TIM_OC_DELAY_ELAPSED_CB_ID
@ HAL_TIM_PWM_MSPINIT_CB_ID
@ HAL_TIM_IC_MSPINIT_CB_ID
@ HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_MSPDEINIT_CB_ID
@ HAL_TIM_PERIOD_ELAPSED_CB_ID
@ HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID
@ HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID
@ HAL_TIM_IC_MSPDEINIT_CB_ID
@ HAL_TIM_TRIGGER_HALF_CB_ID
TIM Time base Configuration Structure definition.
TIM Break input(s) and Dead time configuration Structure definition.
Clock Configuration Handle Structure definition.
TIM Encoder Configuration Structure definition.
TIM Input Capture Configuration Structure definition.
TIM Master configuration Structure definition.
TIM Output Compare Configuration Structure definition.
TIM One Pulse Mode Configuration Structure definition.
TIM Slave configuration Structure definition.
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
Configures the TIMx External Trigger (ETR).
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture half complete callback.
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 2 configuration.
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture complete callback.
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI1 as Input.
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse half complete callback.
void TIM_DMAError(DMA_HandleTypeDef *hdma)
TIM DMA error callback.
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure)
Time Base configuration.
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
Reset interrupt callbacks to the legacy weak callbacks.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_LockTypeDef
HAL Lock structures definition
Header file of TIM HAL Extended module.
DMA handle Structure definition.