STM32F4xx HAL Driver master
STM32CubeF4 HAL / LL Drivers API Reference
Loading...
Searching...
No Matches
stm32f4xx_hal_tim.h
Go to the documentation of this file.
1
18
19/* Define to prevent recursive inclusion -------------------------------------*/
20#ifndef STM32F4xx_HAL_TIM_H
21#define STM32F4xx_HAL_TIM_H
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* Includes ------------------------------------------------------------------*/
28#include "stm32f4xx_hal_def.h"
29
33
37
38/* Exported types ------------------------------------------------------------*/
42
46typedef struct
47{
48 uint32_t Prescaler;
50
51 uint32_t CounterMode;
53
54 uint32_t Period;
57
58 uint32_t ClockDivision;
60
71
75
79typedef struct
80{
81 uint32_t OCMode;
83
84 uint32_t Pulse;
86
87 uint32_t OCPolarity;
89
90 uint32_t OCNPolarity;
93
94 uint32_t OCFastMode;
97
98
99 uint32_t OCIdleState;
102
103 uint32_t OCNIdleState;
107
111typedef struct
112{
113 uint32_t OCMode;
115
116 uint32_t Pulse;
118
119 uint32_t OCPolarity;
121
122 uint32_t OCNPolarity;
125
126 uint32_t OCIdleState;
129
130 uint32_t OCNIdleState;
133
134 uint32_t ICPolarity;
136
137 uint32_t ICSelection;
139
140 uint32_t ICFilter;
143
147typedef struct
148{
149 uint32_t ICPolarity;
151
152 uint32_t ICSelection;
154
155 uint32_t ICPrescaler;
157
158 uint32_t ICFilter;
161
165typedef struct
166{
167 uint32_t EncoderMode;
169
170 uint32_t IC1Polarity;
172
173 uint32_t IC1Selection;
175
176 uint32_t IC1Prescaler;
178
179 uint32_t IC1Filter;
181
182 uint32_t IC2Polarity;
184
185 uint32_t IC2Selection;
187
188 uint32_t IC2Prescaler;
190
191 uint32_t IC2Filter;
194
198typedef struct
199{
200 uint32_t ClockSource;
202 uint32_t ClockPolarity;
204 uint32_t ClockPrescaler;
206 uint32_t ClockFilter;
209
227
231typedef struct
232{
243
247typedef struct
248{
249 uint32_t SlaveMode;
251 uint32_t InputTrigger;
257 uint32_t TriggerFilter;
259
261
267typedef struct
268{
270
272
273 uint32_t LockLevel;
274
275 uint32_t DeadTime;
276
277 uint32_t BreakState;
278
279 uint32_t BreakPolarity;
280
281 uint32_t BreakFilter;
282
283
285
287
299
309
319
331
335#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
336typedef struct __TIM_HandleTypeDef
337#else
338typedef struct
339#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
340{
341 TIM_TypeDef *Instance;
351
352#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
353 void (* Base_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
354 void (* Base_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
355 void (* IC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
356 void (* IC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
357 void (* OC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
358 void (* OC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
359 void (* PWM_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
360 void (* PWM_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
361 void (* OnePulse_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
362 void (* OnePulse_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
363 void (* Encoder_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
364 void (* Encoder_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
365 void (* HallSensor_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
366 void (* HallSensor_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
367 void (* PeriodElapsedCallback)(struct __TIM_HandleTypeDef *htim);
368 void (* PeriodElapsedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
369 void (* TriggerCallback)(struct __TIM_HandleTypeDef *htim);
370 void (* TriggerHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
371 void (* IC_CaptureCallback)(struct __TIM_HandleTypeDef *htim);
372 void (* IC_CaptureHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
373 void (* OC_DelayElapsedCallback)(struct __TIM_HandleTypeDef *htim);
374 void (* PWM_PulseFinishedCallback)(struct __TIM_HandleTypeDef *htim);
375 void (* PWM_PulseFinishedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
376 void (* ErrorCallback)(struct __TIM_HandleTypeDef *htim);
377 void (* CommutationCallback)(struct __TIM_HandleTypeDef *htim);
378 void (* CommutationHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
379 void (* BreakCallback)(struct __TIM_HandleTypeDef *htim);
380#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
382
383#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
387typedef enum
388{
389 HAL_TIM_BASE_MSPINIT_CB_ID = 0x00U
390 , HAL_TIM_BASE_MSPDEINIT_CB_ID = 0x01U
391 , HAL_TIM_IC_MSPINIT_CB_ID = 0x02U
392 , HAL_TIM_IC_MSPDEINIT_CB_ID = 0x03U
393 , HAL_TIM_OC_MSPINIT_CB_ID = 0x04U
394 , HAL_TIM_OC_MSPDEINIT_CB_ID = 0x05U
395 , HAL_TIM_PWM_MSPINIT_CB_ID = 0x06U
396 , HAL_TIM_PWM_MSPDEINIT_CB_ID = 0x07U
397 , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID = 0x08U
398 , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID = 0x09U
399 , HAL_TIM_ENCODER_MSPINIT_CB_ID = 0x0AU
400 , HAL_TIM_ENCODER_MSPDEINIT_CB_ID = 0x0BU
401 , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID = 0x0CU
402 , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID = 0x0DU
403 , HAL_TIM_PERIOD_ELAPSED_CB_ID = 0x0EU
404 , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID = 0x0FU
405 , HAL_TIM_TRIGGER_CB_ID = 0x10U
406 , HAL_TIM_TRIGGER_HALF_CB_ID = 0x11U
407 , HAL_TIM_IC_CAPTURE_CB_ID = 0x12U
408 , HAL_TIM_IC_CAPTURE_HALF_CB_ID = 0x13U
409 , HAL_TIM_OC_DELAY_ELAPSED_CB_ID = 0x14U
410 , HAL_TIM_PWM_PULSE_FINISHED_CB_ID = 0x15U
411 , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U
412 , HAL_TIM_ERROR_CB_ID = 0x17U
413 , HAL_TIM_COMMUTATION_CB_ID = 0x18U
414 , HAL_TIM_COMMUTATION_HALF_CB_ID = 0x19U
415 , HAL_TIM_BREAK_CB_ID = 0x1AU
416} HAL_TIM_CallbackIDTypeDef;
417
421typedef void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim);
422
423#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
424
428/* End of exported types -----------------------------------------------------*/
429
430/* Exported constants --------------------------------------------------------*/
434
438#define TIM_CLEARINPUTSOURCE_NONE 0x00000000U
439#define TIM_CLEARINPUTSOURCE_ETR 0x00000001U
443
447#define TIM_DMABASE_CR1 0x00000000U
448#define TIM_DMABASE_CR2 0x00000001U
449#define TIM_DMABASE_SMCR 0x00000002U
450#define TIM_DMABASE_DIER 0x00000003U
451#define TIM_DMABASE_SR 0x00000004U
452#define TIM_DMABASE_EGR 0x00000005U
453#define TIM_DMABASE_CCMR1 0x00000006U
454#define TIM_DMABASE_CCMR2 0x00000007U
455#define TIM_DMABASE_CCER 0x00000008U
456#define TIM_DMABASE_CNT 0x00000009U
457#define TIM_DMABASE_PSC 0x0000000AU
458#define TIM_DMABASE_ARR 0x0000000BU
459#define TIM_DMABASE_RCR 0x0000000CU
460#define TIM_DMABASE_CCR1 0x0000000DU
461#define TIM_DMABASE_CCR2 0x0000000EU
462#define TIM_DMABASE_CCR3 0x0000000FU
463#define TIM_DMABASE_CCR4 0x00000010U
464#define TIM_DMABASE_BDTR 0x00000011U
465#define TIM_DMABASE_DCR 0x00000012U
466#define TIM_DMABASE_DMAR 0x00000013U
470
474#define TIM_EVENTSOURCE_UPDATE TIM_EGR_UG
475#define TIM_EVENTSOURCE_CC1 TIM_EGR_CC1G
476#define TIM_EVENTSOURCE_CC2 TIM_EGR_CC2G
477#define TIM_EVENTSOURCE_CC3 TIM_EGR_CC3G
478#define TIM_EVENTSOURCE_CC4 TIM_EGR_CC4G
479#define TIM_EVENTSOURCE_COM TIM_EGR_COMG
480#define TIM_EVENTSOURCE_TRIGGER TIM_EGR_TG
481#define TIM_EVENTSOURCE_BREAK TIM_EGR_BG
485
489#define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U
490#define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P
491#define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
495
499#define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP
500#define TIM_ETRPOLARITY_NONINVERTED 0x00000000U
504
508#define TIM_ETRPRESCALER_DIV1 0x00000000U
509#define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0
510#define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1
511#define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS
515
519#define TIM_COUNTERMODE_UP 0x00000000U
520#define TIM_COUNTERMODE_DOWN TIM_CR1_DIR
521#define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0
522#define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1
523#define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS
527
531#define TIM_CLOCKDIVISION_DIV1 0x00000000U
532#define TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
533#define TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
537
541#define TIM_OUTPUTSTATE_DISABLE 0x00000000U
542#define TIM_OUTPUTSTATE_ENABLE TIM_CCER_CC1E
546
550#define TIM_AUTORELOAD_PRELOAD_DISABLE 0x00000000U
551#define TIM_AUTORELOAD_PRELOAD_ENABLE TIM_CR1_ARPE
552
556
560#define TIM_OCFAST_DISABLE 0x00000000U
561#define TIM_OCFAST_ENABLE TIM_CCMR1_OC1FE
565
569#define TIM_OUTPUTNSTATE_DISABLE 0x00000000U
570#define TIM_OUTPUTNSTATE_ENABLE TIM_CCER_CC1NE
574
578#define TIM_OCPOLARITY_HIGH 0x00000000U
579#define TIM_OCPOLARITY_LOW TIM_CCER_CC1P
583
587#define TIM_OCNPOLARITY_HIGH 0x00000000U
588#define TIM_OCNPOLARITY_LOW TIM_CCER_CC1NP
592
596#define TIM_OCIDLESTATE_SET TIM_CR2_OIS1
597#define TIM_OCIDLESTATE_RESET 0x00000000U
601
605#define TIM_OCNIDLESTATE_SET TIM_CR2_OIS1N
606#define TIM_OCNIDLESTATE_RESET 0x00000000U
610
614#define TIM_ICPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
615#define TIM_ICPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
616#define TIM_ICPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
620
624#define TIM_ENCODERINPUTPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
625#define TIM_ENCODERINPUTPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
629
633#define TIM_ICSELECTION_DIRECTTI TIM_CCMR1_CC1S_0
634#define TIM_ICSELECTION_INDIRECTTI TIM_CCMR1_CC1S_1
635#define TIM_ICSELECTION_TRC TIM_CCMR1_CC1S
639
643#define TIM_ICPSC_DIV1 0x00000000U
644#define TIM_ICPSC_DIV2 TIM_CCMR1_IC1PSC_0
645#define TIM_ICPSC_DIV4 TIM_CCMR1_IC1PSC_1
646#define TIM_ICPSC_DIV8 TIM_CCMR1_IC1PSC
650
654#define TIM_OPMODE_SINGLE TIM_CR1_OPM
655#define TIM_OPMODE_REPETITIVE 0x00000000U
659
663#define TIM_ENCODERMODE_TI1 TIM_SMCR_SMS_0
664#define TIM_ENCODERMODE_TI2 TIM_SMCR_SMS_1
665#define TIM_ENCODERMODE_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
669
673#define TIM_IT_UPDATE TIM_DIER_UIE
674#define TIM_IT_CC1 TIM_DIER_CC1IE
675#define TIM_IT_CC2 TIM_DIER_CC2IE
676#define TIM_IT_CC3 TIM_DIER_CC3IE
677#define TIM_IT_CC4 TIM_DIER_CC4IE
678#define TIM_IT_COM TIM_DIER_COMIE
679#define TIM_IT_TRIGGER TIM_DIER_TIE
680#define TIM_IT_BREAK TIM_DIER_BIE
684
688#define TIM_COMMUTATION_TRGI TIM_CR2_CCUS
689#define TIM_COMMUTATION_SOFTWARE 0x00000000U
693
697#define TIM_DMA_UPDATE TIM_DIER_UDE
698#define TIM_DMA_CC1 TIM_DIER_CC1DE
699#define TIM_DMA_CC2 TIM_DIER_CC2DE
700#define TIM_DMA_CC3 TIM_DIER_CC3DE
701#define TIM_DMA_CC4 TIM_DIER_CC4DE
702#define TIM_DMA_COM TIM_DIER_COMDE
703#define TIM_DMA_TRIGGER TIM_DIER_TDE
707
711#define TIM_CCDMAREQUEST_CC 0x00000000U
712#define TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
716
720#define TIM_FLAG_UPDATE TIM_SR_UIF
721#define TIM_FLAG_CC1 TIM_SR_CC1IF
722#define TIM_FLAG_CC2 TIM_SR_CC2IF
723#define TIM_FLAG_CC3 TIM_SR_CC3IF
724#define TIM_FLAG_CC4 TIM_SR_CC4IF
725#define TIM_FLAG_COM TIM_SR_COMIF
726#define TIM_FLAG_TRIGGER TIM_SR_TIF
727#define TIM_FLAG_BREAK TIM_SR_BIF
728#define TIM_FLAG_CC1OF TIM_SR_CC1OF
729#define TIM_FLAG_CC2OF TIM_SR_CC2OF
730#define TIM_FLAG_CC3OF TIM_SR_CC3OF
731#define TIM_FLAG_CC4OF TIM_SR_CC4OF
735
739#define TIM_CHANNEL_1 0x00000000U
740#define TIM_CHANNEL_2 0x00000004U
741#define TIM_CHANNEL_3 0x00000008U
742#define TIM_CHANNEL_4 0x0000000CU
743#define TIM_CHANNEL_ALL 0x0000003CU
747
751#define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0
752#define TIM_CLOCKSOURCE_ETRMODE1 TIM_TS_ETRF
753#define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1
754#define TIM_CLOCKSOURCE_TI1ED TIM_TS_TI1F_ED
755#define TIM_CLOCKSOURCE_TI1 TIM_TS_TI1FP1
756#define TIM_CLOCKSOURCE_TI2 TIM_TS_TI2FP2
757#define TIM_CLOCKSOURCE_ITR0 TIM_TS_ITR0
758#define TIM_CLOCKSOURCE_ITR1 TIM_TS_ITR1
759#define TIM_CLOCKSOURCE_ITR2 TIM_TS_ITR2
760#define TIM_CLOCKSOURCE_ITR3 TIM_TS_ITR3
764
768#define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
769#define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
770#define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
771#define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
772#define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
776
780#define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
781#define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
782#define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
783#define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
787
791#define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
792#define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
796
800#define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
801#define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
802#define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
803#define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
807
811#define TIM_OSSR_ENABLE TIM_BDTR_OSSR
812#define TIM_OSSR_DISABLE 0x00000000U
816
820#define TIM_OSSI_ENABLE TIM_BDTR_OSSI
821#define TIM_OSSI_DISABLE 0x00000000U
828#define TIM_LOCKLEVEL_OFF 0x00000000U
829#define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
830#define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
831#define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
835
839#define TIM_BREAK_ENABLE TIM_BDTR_BKE
840#define TIM_BREAK_DISABLE 0x00000000U
844
848#define TIM_BREAKPOLARITY_LOW 0x00000000U
849#define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP
853
857#define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
858#define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
862
866#define TIM_TRGO_RESET 0x00000000U
867#define TIM_TRGO_ENABLE TIM_CR2_MMS_0
868#define TIM_TRGO_UPDATE TIM_CR2_MMS_1
869#define TIM_TRGO_OC1 (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
870#define TIM_TRGO_OC1REF TIM_CR2_MMS_2
871#define TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
872#define TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
873#define TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
877
881#define TIM_MASTERSLAVEMODE_ENABLE TIM_SMCR_MSM
882#define TIM_MASTERSLAVEMODE_DISABLE 0x00000000U
886
890#define TIM_SLAVEMODE_DISABLE 0x00000000U
891#define TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
892#define TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
893#define TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
894#define TIM_SLAVEMODE_EXTERNAL1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
898
902#define TIM_OCMODE_TIMING 0x00000000U
903#define TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
904#define TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
905#define TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
906#define TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
907#define TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
908#define TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
909#define TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
913
917#define TIM_TS_ITR0 0x00000000U
918#define TIM_TS_ITR1 TIM_SMCR_TS_0
919#define TIM_TS_ITR2 TIM_SMCR_TS_1
920#define TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
921#define TIM_TS_TI1F_ED TIM_SMCR_TS_2
922#define TIM_TS_TI1FP1 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)
923#define TIM_TS_TI2FP2 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
924#define TIM_TS_ETRF (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
925#define TIM_TS_NONE 0x0000FFFFU
929
933#define TIM_TRIGGERPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
934#define TIM_TRIGGERPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
935#define TIM_TRIGGERPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
936#define TIM_TRIGGERPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
937#define TIM_TRIGGERPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
941
945#define TIM_TRIGGERPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
946#define TIM_TRIGGERPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
947#define TIM_TRIGGERPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
948#define TIM_TRIGGERPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
952
956#define TIM_TI1SELECTION_CH1 0x00000000U
957#define TIM_TI1SELECTION_XORCOMBINATION TIM_CR2_TI1S
961
965#define TIM_DMABURSTLENGTH_1TRANSFER 0x00000000U
966#define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U
967#define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U
968#define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U
969#define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U
970#define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U
971#define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U
972#define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U
973#define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U
974#define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U
975#define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U
976#define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U
977#define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U
978#define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U
979#define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U
980#define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U
981#define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U
982#define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U
986
990#define TIM_DMA_ID_UPDATE ((uint16_t) 0x0000)
991#define TIM_DMA_ID_CC1 ((uint16_t) 0x0001)
992#define TIM_DMA_ID_CC2 ((uint16_t) 0x0002)
993#define TIM_DMA_ID_CC3 ((uint16_t) 0x0003)
994#define TIM_DMA_ID_CC4 ((uint16_t) 0x0004)
995#define TIM_DMA_ID_COMMUTATION ((uint16_t) 0x0005)
996#define TIM_DMA_ID_TRIGGER ((uint16_t) 0x0006)
1000
1004#define TIM_CCx_ENABLE 0x00000001U
1005#define TIM_CCx_DISABLE 0x00000000U
1006#define TIM_CCxN_ENABLE 0x00000004U
1007#define TIM_CCxN_DISABLE 0x00000000U
1011
1015/* End of exported constants -------------------------------------------------*/
1016
1017/* Exported macros -----------------------------------------------------------*/
1021
1026#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1027#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1028 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1029 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1030 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1031 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1032 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1033 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1034 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1035 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1036 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1037 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1038 (__HANDLE__)->Base_MspInitCallback = NULL; \
1039 (__HANDLE__)->Base_MspDeInitCallback = NULL; \
1040 (__HANDLE__)->IC_MspInitCallback = NULL; \
1041 (__HANDLE__)->IC_MspDeInitCallback = NULL; \
1042 (__HANDLE__)->OC_MspInitCallback = NULL; \
1043 (__HANDLE__)->OC_MspDeInitCallback = NULL; \
1044 (__HANDLE__)->PWM_MspInitCallback = NULL; \
1045 (__HANDLE__)->PWM_MspDeInitCallback = NULL; \
1046 (__HANDLE__)->OnePulse_MspInitCallback = NULL; \
1047 (__HANDLE__)->OnePulse_MspDeInitCallback = NULL; \
1048 (__HANDLE__)->Encoder_MspInitCallback = NULL; \
1049 (__HANDLE__)->Encoder_MspDeInitCallback = NULL; \
1050 (__HANDLE__)->HallSensor_MspInitCallback = NULL; \
1051 (__HANDLE__)->HallSensor_MspDeInitCallback = NULL; \
1052 } while(0)
1053#else
1054#define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1055 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1056 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1057 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1058 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1059 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1060 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1061 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1062 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1063 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1064 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1065 } while(0)
1066#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
1067
1073#define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1074
1080#define __HAL_TIM_MOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1081
1087#define __HAL_TIM_DISABLE(__HANDLE__) \
1088 do { \
1089 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1090 { \
1091 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1092 { \
1093 (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1094 } \
1095 } \
1096 } while(0)
1097
1105#define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1106 do { \
1107 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1108 { \
1109 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1110 { \
1111 (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1112 } \
1113 } \
1114 } while(0)
1115
1122#define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__) (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1123
1138#define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1139
1154#define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1155
1169#define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER |= (__DMA__))
1170
1184#define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1185
1204#define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1205
1224#define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1225
1241#define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \
1242 == (__INTERRUPT__)) ? SET : RESET)
1243
1258#define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1259
1267#define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
1268
1275#define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) ((__HANDLE__)->Instance->PSC = (__PRESC__))
1276
1283#define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1284
1290#define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
1291
1298#define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1299 do{ \
1300 (__HANDLE__)->Instance->ARR = (__AUTORELOAD__); \
1301 (__HANDLE__)->Init.Period = (__AUTORELOAD__); \
1302 } while(0)
1303
1309#define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) ((__HANDLE__)->Instance->ARR)
1310
1321#define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1322 do{ \
1323 (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD); \
1324 (__HANDLE__)->Instance->CR1 |= (__CKD__); \
1325 (__HANDLE__)->Init.ClockDivision = (__CKD__); \
1326 } while(0)
1327
1336#define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__) ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
1337
1356#define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1357 do{ \
1358 TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__)); \
1359 TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1360 } while(0)
1361
1377#define __HAL_TIM_GET_ICPRESCALER(__HANDLE__, __CHANNEL__) \
1378 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC1PSC) :\
1379 ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1380 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1381 (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1382
1395#define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
1396 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
1397 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
1398 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
1399 ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)))
1400
1412#define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
1413 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
1414 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
1415 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
1416 ((__HANDLE__)->Instance->CCR4))
1417
1429#define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1430 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
1431 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
1432 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
1433 ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE))
1434
1446#define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1447 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
1448 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
1449 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
1450 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE))
1451
1467#define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1468 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
1469 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
1470 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
1471 ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE))
1472
1488#define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1489 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
1490 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
1491 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
1492 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE))
1493
1502#define __HAL_TIM_URS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS)
1503
1515#define __HAL_TIM_URS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS)
1516
1532#define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1533 do{ \
1534 TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__)); \
1535 TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1536 }while(0)
1537
1546#define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__) \
1547 MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__))
1548
1552/* End of exported macros ----------------------------------------------------*/
1553
1554/* Private constants ---------------------------------------------------------*/
1558/* The counter of a timer instance is disabled only if all the CCx and CCxN
1559 channels have been disabled */
1560#define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
1561#define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
1565/* End of private constants --------------------------------------------------*/
1566
1567/* Private macros ------------------------------------------------------------*/
1571#define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \
1572 ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR))
1573
1574#define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \
1575 ((__BASE__) == TIM_DMABASE_CR2) || \
1576 ((__BASE__) == TIM_DMABASE_SMCR) || \
1577 ((__BASE__) == TIM_DMABASE_DIER) || \
1578 ((__BASE__) == TIM_DMABASE_SR) || \
1579 ((__BASE__) == TIM_DMABASE_EGR) || \
1580 ((__BASE__) == TIM_DMABASE_CCMR1) || \
1581 ((__BASE__) == TIM_DMABASE_CCMR2) || \
1582 ((__BASE__) == TIM_DMABASE_CCER) || \
1583 ((__BASE__) == TIM_DMABASE_CNT) || \
1584 ((__BASE__) == TIM_DMABASE_PSC) || \
1585 ((__BASE__) == TIM_DMABASE_ARR) || \
1586 ((__BASE__) == TIM_DMABASE_RCR) || \
1587 ((__BASE__) == TIM_DMABASE_CCR1) || \
1588 ((__BASE__) == TIM_DMABASE_CCR2) || \
1589 ((__BASE__) == TIM_DMABASE_CCR3) || \
1590 ((__BASE__) == TIM_DMABASE_CCR4) || \
1591 ((__BASE__) == TIM_DMABASE_BDTR))
1592
1593#define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFF00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1594
1595#define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \
1596 ((__MODE__) == TIM_COUNTERMODE_DOWN) || \
1597 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \
1598 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \
1599 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3))
1600
1601#define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \
1602 ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \
1603 ((__DIV__) == TIM_CLOCKDIVISION_DIV4))
1604
1605#define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
1606 ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
1607
1608#define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \
1609 ((__STATE__) == TIM_OCFAST_ENABLE))
1610
1611#define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \
1612 ((__POLARITY__) == TIM_OCPOLARITY_LOW))
1613
1614#define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \
1615 ((__POLARITY__) == TIM_OCNPOLARITY_LOW))
1616
1617#define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \
1618 ((__STATE__) == TIM_OCIDLESTATE_RESET))
1619
1620#define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \
1621 ((__STATE__) == TIM_OCNIDLESTATE_RESET))
1622
1623#define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \
1624 ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING))
1625
1626#define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \
1627 ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \
1628 ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
1629
1630#define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \
1631 ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \
1632 ((__SELECTION__) == TIM_ICSELECTION_TRC))
1633
1634#define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \
1635 ((__PRESCALER__) == TIM_ICPSC_DIV2) || \
1636 ((__PRESCALER__) == TIM_ICPSC_DIV4) || \
1637 ((__PRESCALER__) == TIM_ICPSC_DIV8))
1638
1639#define IS_TIM_OPM_MODE(__MODE__) (((__MODE__) == TIM_OPMODE_SINGLE) || \
1640 ((__MODE__) == TIM_OPMODE_REPETITIVE))
1641
1642#define IS_TIM_ENCODER_MODE(__MODE__) (((__MODE__) == TIM_ENCODERMODE_TI1) || \
1643 ((__MODE__) == TIM_ENCODERMODE_TI2) || \
1644 ((__MODE__) == TIM_ENCODERMODE_TI12))
1645
1646#define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1647
1648#define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1649 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1650 ((__CHANNEL__) == TIM_CHANNEL_3) || \
1651 ((__CHANNEL__) == TIM_CHANNEL_4) || \
1652 ((__CHANNEL__) == TIM_CHANNEL_ALL))
1653
1654#define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1655 ((__CHANNEL__) == TIM_CHANNEL_2))
1656
1657#define IS_TIM_PERIOD(__HANDLE__, __PERIOD__) ((IS_TIM_32B_COUNTER_INSTANCE(((__HANDLE__)->Instance)) == 0U) ? \
1658 (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : \
1659 ((__PERIOD__) > 0U))
1660
1661#define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1662 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1663 ((__CHANNEL__) == TIM_CHANNEL_3))
1664
1665#define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
1666 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
1667 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
1668 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
1669 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
1670 ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
1671 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
1672 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
1673 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
1674 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3))
1675
1676#define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \
1677 ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
1678 ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \
1679 ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \
1680 ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE))
1681
1682#define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \
1683 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \
1684 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \
1685 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8))
1686
1687#define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1688
1689#define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
1690 ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
1691
1692#define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \
1693 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \
1694 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \
1695 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8))
1696
1697#define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1698
1699#define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \
1700 ((__STATE__) == TIM_OSSR_DISABLE))
1701
1702#define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \
1703 ((__STATE__) == TIM_OSSI_DISABLE))
1704
1705#define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \
1706 ((__LEVEL__) == TIM_LOCKLEVEL_1) || \
1707 ((__LEVEL__) == TIM_LOCKLEVEL_2) || \
1708 ((__LEVEL__) == TIM_LOCKLEVEL_3))
1709
1710#define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL)
1711
1712#define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \
1713 ((__STATE__) == TIM_BREAK_DISABLE))
1714
1715#define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \
1716 ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH))
1717
1718#define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \
1719 ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE))
1720
1721#define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET) || \
1722 ((__SOURCE__) == TIM_TRGO_ENABLE) || \
1723 ((__SOURCE__) == TIM_TRGO_UPDATE) || \
1724 ((__SOURCE__) == TIM_TRGO_OC1) || \
1725 ((__SOURCE__) == TIM_TRGO_OC1REF) || \
1726 ((__SOURCE__) == TIM_TRGO_OC2REF) || \
1727 ((__SOURCE__) == TIM_TRGO_OC3REF) || \
1728 ((__SOURCE__) == TIM_TRGO_OC4REF))
1729
1730#define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \
1731 ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE))
1732
1733#define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \
1734 ((__MODE__) == TIM_SLAVEMODE_RESET) || \
1735 ((__MODE__) == TIM_SLAVEMODE_GATED) || \
1736 ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \
1737 ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1))
1738
1739#define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \
1740 ((__MODE__) == TIM_OCMODE_PWM2))
1741
1742#define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \
1743 ((__MODE__) == TIM_OCMODE_ACTIVE) || \
1744 ((__MODE__) == TIM_OCMODE_INACTIVE) || \
1745 ((__MODE__) == TIM_OCMODE_TOGGLE) || \
1746 ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \
1747 ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE))
1748
1749#define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
1750 ((__SELECTION__) == TIM_TS_ITR1) || \
1751 ((__SELECTION__) == TIM_TS_ITR2) || \
1752 ((__SELECTION__) == TIM_TS_ITR3) || \
1753 ((__SELECTION__) == TIM_TS_TI1F_ED) || \
1754 ((__SELECTION__) == TIM_TS_TI1FP1) || \
1755 ((__SELECTION__) == TIM_TS_TI2FP2) || \
1756 ((__SELECTION__) == TIM_TS_ETRF))
1757
1758#define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
1759 ((__SELECTION__) == TIM_TS_ITR1) || \
1760 ((__SELECTION__) == TIM_TS_ITR2) || \
1761 ((__SELECTION__) == TIM_TS_ITR3) || \
1762 ((__SELECTION__) == TIM_TS_NONE))
1763
1764#define IS_TIM_TRIGGERPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED ) || \
1765 ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
1766 ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING ) || \
1767 ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING ) || \
1768 ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE ))
1769
1770#define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \
1771 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \
1772 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \
1773 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8))
1774
1775#define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1776
1777#define IS_TIM_TI1SELECTION(__TI1SELECTION__) (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \
1778 ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION))
1779
1780#define IS_TIM_DMA_LENGTH(__LENGTH__) (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER) || \
1781 ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS) || \
1782 ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS) || \
1783 ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS) || \
1784 ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS) || \
1785 ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS) || \
1786 ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS) || \
1787 ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS) || \
1788 ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS) || \
1789 ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
1790 ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
1791 ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
1792 ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
1793 ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
1794 ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
1795 ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
1796 ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
1797 ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS))
1798
1799#define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U))
1800
1801#define IS_TIM_IC_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1802
1803#define IS_TIM_DEADTIME(__DEADTIME__) ((__DEADTIME__) <= 0xFFU)
1804
1805#define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) ((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER)
1806
1807#define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
1808 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
1809 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
1810 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
1811 ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
1812
1813#define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
1814 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
1815 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
1816 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
1817 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
1818
1819#define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1820 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
1821 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
1822 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
1823 ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U))))
1824
1825#define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
1826 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
1827 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
1828 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\
1829 ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP)))
1830
1831#define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
1832 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
1833 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
1834 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
1835 (__HANDLE__)->ChannelState[3])
1836
1837#define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
1838 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
1839 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
1840 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
1841 ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)))
1842
1843#define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__)\
1844 do {\
1845 (__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__);\
1846 (__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__);\
1847 (__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__);\
1848 (__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__);\
1849 } while(0)
1850
1851#define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\
1852 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\
1853 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\
1854 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\
1855 (__HANDLE__)->ChannelNState[3])
1856
1857#define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
1858 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\
1859 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\
1860 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\
1861 ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__)))
1862
1863#define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__)\
1864 do {\
1865 (__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__); \
1866 (__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__); \
1867 (__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__); \
1868 (__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__); \
1869 } while(0)
1870
1874/* End of private macros -----------------------------------------------------*/
1875
1876/* Include TIM HAL Extended module */
1877#include "stm32f4xx_hal_tim_ex.h"
1878
1879/* Exported functions --------------------------------------------------------*/
1883
1888/* Time Base functions ********************************************************/
1893/* Blocking mode: Polling */
1896/* Non-Blocking mode: Interrupt */
1899/* Non-Blocking mode: DMA */
1900HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length);
1905
1910/* Timer Output Compare functions *********************************************/
1915/* Blocking mode: Polling */
1918/* Non-Blocking mode: Interrupt */
1921/* Non-Blocking mode: DMA */
1922HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
1923 uint16_t Length);
1928
1933/* Timer PWM functions ********************************************************/
1938/* Blocking mode: Polling */
1941/* Non-Blocking mode: Interrupt */
1944/* Non-Blocking mode: DMA */
1945HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
1946 uint16_t Length);
1951
1956/* Timer Input Capture functions **********************************************/
1961/* Blocking mode: Polling */
1964/* Non-Blocking mode: Interrupt */
1967/* Non-Blocking mode: DMA */
1968HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
1973
1978/* Timer One Pulse functions **************************************************/
1983/* Blocking mode: Polling */
1986/* Non-Blocking mode: Interrupt */
1992
1997/* Timer Encoder functions ****************************************************/
2002/* Blocking mode: Polling */
2005/* Non-Blocking mode: Interrupt */
2008/* Non-Blocking mode: DMA */
2009HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1,
2010 uint32_t *pData2, uint16_t Length);
2015
2020/* Interrupt Handler functions ***********************************************/
2025
2030/* Control functions *********************************************************/
2032 uint32_t Channel);
2034 uint32_t Channel);
2036 uint32_t Channel);
2038 uint32_t OutputChannel, uint32_t InputChannel);
2040 const TIM_ClearInputConfigTypeDef *sClearInputConfig,
2041 uint32_t Channel);
2047 uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2048 uint32_t BurstLength);
2050 uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2051 uint32_t BurstLength, uint32_t DataLength);
2054 uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength);
2056 uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
2057 uint32_t BurstLength, uint32_t DataLength);
2060uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel);
2064
2069/* Callback in non blocking modes (Interrupt and DMA) *************************/
2080
2081/* Callbacks Register/UnRegister functions ***********************************/
2082#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2083HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID,
2084 pTIM_CallbackTypeDef pCallback);
2085HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID);
2086#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
2087
2091
2096/* Peripheral State functions ************************************************/
2103
2104/* Peripheral Channel state functions ************************************************/
2111
2115/* End of exported functions -------------------------------------------------*/
2116
2117/* Private functions----------------------------------------------------------*/
2121void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure);
2122void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
2123void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config);
2124void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
2125 uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
2126
2131void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
2132
2133#if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2134void TIM_ResetCallback(TIM_HandleTypeDef *htim);
2135#endif /* USE_HAL_TIM_REGISTER_CALLBACKS */
2136
2140/* End of private functions --------------------------------------------------*/
2141
2145
2149
2150#ifdef __cplusplus
2151}
2152#endif
2153
2154#endif /* STM32F4xx_HAL_TIM_H */
struct __DMA_HandleTypeDef DMA_HandleTypeDef
DMA handle Structure definition.
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim)
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim)
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim)
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim)
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length)
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode)
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length)
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig)
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, uint32_t Channel)
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)
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength)
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection)
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig)
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource)
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, const TIM_ClearInputConfigTypeDef *sClearInputConfig, uint32_t Channel)
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, uint32_t OutputChannel, uint32_t InputChannel)
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
Period elapsed callback in non blocking mode.
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
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
@ HAL_TIM_STATE_TIMEOUT
@ HAL_TIM_STATE_BUSY
@ HAL_TIM_STATE_RESET
@ HAL_TIM_STATE_ERROR
@ HAL_TIM_STATE_READY
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma)
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config)
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma)
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
void TIM_DMAError(DMA_HandleTypeDef *hdma)
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure)
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.
TIM Break input(s) and Dead time configuration Structure definition.
TIM Clear Input Configuration Handle Structure definition.
Clock Configuration Handle Structure definition.
TIM Encoder Configuration Structure definition.
TIM Time Base Handle Structure definition.
DMA_HandleTypeDef * hdma[7]
HAL_LockTypeDef Lock
volatile HAL_TIM_StateTypeDef State
volatile HAL_TIM_ChannelStateTypeDef ChannelState[4]
volatile HAL_TIM_DMABurstStateTypeDef DMABurstState
TIM_Base_InitTypeDef Init
volatile HAL_TIM_ChannelStateTypeDef ChannelNState[4]
HAL_TIM_ActiveChannel Channel
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.