20#ifndef STM32F4xx_HAL_TIM_H
21#define STM32F4xx_HAL_TIM_H
334#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
335typedef 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)
388 HAL_TIM_BASE_MSPINIT_CB_ID = 0x00U
389 , HAL_TIM_BASE_MSPDEINIT_CB_ID = 0x01U
390 , HAL_TIM_IC_MSPINIT_CB_ID = 0x02U
391 , HAL_TIM_IC_MSPDEINIT_CB_ID = 0x03U
392 , HAL_TIM_OC_MSPINIT_CB_ID = 0x04U
393 , HAL_TIM_OC_MSPDEINIT_CB_ID = 0x05U
394 , HAL_TIM_PWM_MSPINIT_CB_ID = 0x06U
395 , HAL_TIM_PWM_MSPDEINIT_CB_ID = 0x07U
396 , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID = 0x08U
397 , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID = 0x09U
398 , HAL_TIM_ENCODER_MSPINIT_CB_ID = 0x0AU
399 , HAL_TIM_ENCODER_MSPDEINIT_CB_ID = 0x0BU
400 , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID = 0x0CU
401 , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID = 0x0DU
402 , HAL_TIM_PERIOD_ELAPSED_CB_ID = 0x0EU
403 , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID = 0x0FU
404 , HAL_TIM_TRIGGER_CB_ID = 0x10U
405 , HAL_TIM_TRIGGER_HALF_CB_ID = 0x11U
406 , HAL_TIM_IC_CAPTURE_CB_ID = 0x12U
407 , HAL_TIM_IC_CAPTURE_HALF_CB_ID = 0x13U
408 , HAL_TIM_OC_DELAY_ELAPSED_CB_ID = 0x14U
409 , HAL_TIM_PWM_PULSE_FINISHED_CB_ID = 0x15U
410 , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U
411 , HAL_TIM_ERROR_CB_ID = 0x17U
412 , HAL_TIM_COMMUTATION_CB_ID = 0x18U
413 , HAL_TIM_COMMUTATION_HALF_CB_ID = 0x19U
414 , HAL_TIM_BREAK_CB_ID = 0x1AU
415} HAL_TIM_CallbackIDTypeDef;
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)
2085 pTIM_CallbackTypeDef pCallback);
2123void 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);
2132void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
2134#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
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...
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.
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
Input Capture callback in non-blocking mode.
HAL_TIM_ChannelStateTypeDef
TIM Channel States definition.
HAL_TIM_DMABurstStateTypeDef
DMA Burst States definition.
HAL_TIM_ActiveChannel
HAL Active channel structures definition.
HAL_TIM_StateTypeDef
HAL State structures 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
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.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_StatusTypeDef
HAL Status structures definition
HAL_LockTypeDef
HAL Lock structures definition
Header file of TIM HAL Extended module.
TIM Time base Configuration Structure definition.
uint32_t AutoReloadPreload
uint32_t RepetitionCounter
TIM Break input(s) and Dead time configuration Structure definition.
uint32_t OffStateIDLEMode
Clock Configuration Handle Structure definition.
TIM Encoder Configuration Structure definition.
TIM Time Base Handle Structure definition.
__IO HAL_TIM_StateTypeDef State
TIM_Base_InitTypeDef Init
__IO HAL_TIM_DMABurstStateTypeDef DMABurstState
HAL_TIM_ActiveChannel Channel
TIM Input Capture Configuration Structure definition.
TIM Master configuration Structure definition.
uint32_t MasterOutputTrigger
TIM Output Compare Configuration Structure definition.
TIM One Pulse Mode Configuration Structure definition.
TIM Slave configuration Structure definition.
uint32_t TriggerPrescaler
DMA handle Structure definition.