File indexing completed on 2025-05-11 08:23:36
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_TIM_H
0021 #define STM32H7xx_HAL_TIM_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 typedef struct
0048 {
0049 uint32_t Prescaler;
0050
0051
0052 uint32_t CounterMode;
0053
0054
0055 uint32_t Period;
0056
0057
0058
0059 uint32_t ClockDivision;
0060
0061
0062 uint32_t RepetitionCounter;
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073 uint32_t AutoReloadPreload;
0074
0075 } TIM_Base_InitTypeDef;
0076
0077
0078
0079
0080 typedef struct
0081 {
0082 uint32_t OCMode;
0083
0084
0085 uint32_t Pulse;
0086
0087
0088 uint32_t OCPolarity;
0089
0090
0091 uint32_t OCNPolarity;
0092
0093
0094
0095 uint32_t OCFastMode;
0096
0097
0098
0099
0100 uint32_t OCIdleState;
0101
0102
0103
0104 uint32_t OCNIdleState;
0105
0106
0107 } TIM_OC_InitTypeDef;
0108
0109
0110
0111
0112 typedef struct
0113 {
0114 uint32_t OCMode;
0115
0116
0117 uint32_t Pulse;
0118
0119
0120 uint32_t OCPolarity;
0121
0122
0123 uint32_t OCNPolarity;
0124
0125
0126
0127 uint32_t OCIdleState;
0128
0129
0130
0131 uint32_t OCNIdleState;
0132
0133
0134
0135 uint32_t ICPolarity;
0136
0137
0138 uint32_t ICSelection;
0139
0140
0141 uint32_t ICFilter;
0142
0143 } TIM_OnePulse_InitTypeDef;
0144
0145
0146
0147
0148 typedef struct
0149 {
0150 uint32_t ICPolarity;
0151
0152
0153 uint32_t ICSelection;
0154
0155
0156 uint32_t ICPrescaler;
0157
0158
0159 uint32_t ICFilter;
0160
0161 } TIM_IC_InitTypeDef;
0162
0163
0164
0165
0166 typedef struct
0167 {
0168 uint32_t EncoderMode;
0169
0170
0171 uint32_t IC1Polarity;
0172
0173
0174 uint32_t IC1Selection;
0175
0176
0177 uint32_t IC1Prescaler;
0178
0179
0180 uint32_t IC1Filter;
0181
0182
0183 uint32_t IC2Polarity;
0184
0185
0186 uint32_t IC2Selection;
0187
0188
0189 uint32_t IC2Prescaler;
0190
0191
0192 uint32_t IC2Filter;
0193
0194 } TIM_Encoder_InitTypeDef;
0195
0196
0197
0198
0199 typedef struct
0200 {
0201 uint32_t ClockSource;
0202
0203 uint32_t ClockPolarity;
0204
0205 uint32_t ClockPrescaler;
0206
0207 uint32_t ClockFilter;
0208
0209 } TIM_ClockConfigTypeDef;
0210
0211
0212
0213
0214 typedef struct
0215 {
0216 uint32_t ClearInputState;
0217
0218 uint32_t ClearInputSource;
0219
0220 uint32_t ClearInputPolarity;
0221
0222 uint32_t ClearInputPrescaler;
0223
0224
0225 uint32_t ClearInputFilter;
0226
0227 } TIM_ClearInputConfigTypeDef;
0228
0229
0230
0231
0232
0233
0234 typedef struct
0235 {
0236 uint32_t MasterOutputTrigger;
0237
0238 uint32_t MasterOutputTrigger2;
0239
0240 uint32_t MasterSlaveMode;
0241
0242
0243
0244
0245
0246
0247 } TIM_MasterConfigTypeDef;
0248
0249
0250
0251
0252 typedef struct
0253 {
0254 uint32_t SlaveMode;
0255
0256 uint32_t InputTrigger;
0257
0258 uint32_t TriggerPolarity;
0259
0260 uint32_t TriggerPrescaler;
0261
0262 uint32_t TriggerFilter;
0263
0264
0265 } TIM_SlaveConfigTypeDef;
0266
0267
0268
0269
0270
0271
0272 typedef struct
0273 {
0274 uint32_t OffStateRunMode;
0275
0276 uint32_t OffStateIDLEMode;
0277
0278 uint32_t LockLevel;
0279
0280 uint32_t DeadTime;
0281
0282 uint32_t BreakState;
0283
0284 uint32_t BreakPolarity;
0285
0286 uint32_t BreakFilter;
0287
0288 #if defined(TIM_BDTR_BKBID)
0289 uint32_t BreakAFMode;
0290
0291 #endif
0292 uint32_t Break2State;
0293
0294 uint32_t Break2Polarity;
0295
0296 uint32_t Break2Filter;
0297
0298 #if defined(TIM_BDTR_BKBID)
0299 uint32_t Break2AFMode;
0300
0301 #endif
0302 uint32_t AutomaticOutput;
0303
0304 } TIM_BreakDeadTimeConfigTypeDef;
0305
0306
0307
0308
0309 typedef enum
0310 {
0311 HAL_TIM_STATE_RESET = 0x00U,
0312 HAL_TIM_STATE_READY = 0x01U,
0313 HAL_TIM_STATE_BUSY = 0x02U,
0314 HAL_TIM_STATE_TIMEOUT = 0x03U,
0315 HAL_TIM_STATE_ERROR = 0x04U
0316 } HAL_TIM_StateTypeDef;
0317
0318
0319
0320
0321 typedef enum
0322 {
0323 HAL_TIM_CHANNEL_STATE_RESET = 0x00U,
0324 HAL_TIM_CHANNEL_STATE_READY = 0x01U,
0325 HAL_TIM_CHANNEL_STATE_BUSY = 0x02U,
0326 } HAL_TIM_ChannelStateTypeDef;
0327
0328
0329
0330
0331 typedef enum
0332 {
0333 HAL_DMA_BURST_STATE_RESET = 0x00U,
0334 HAL_DMA_BURST_STATE_READY = 0x01U,
0335 HAL_DMA_BURST_STATE_BUSY = 0x02U,
0336 } HAL_TIM_DMABurstStateTypeDef;
0337
0338
0339
0340
0341 typedef enum
0342 {
0343 HAL_TIM_ACTIVE_CHANNEL_1 = 0x01U,
0344 HAL_TIM_ACTIVE_CHANNEL_2 = 0x02U,
0345 HAL_TIM_ACTIVE_CHANNEL_3 = 0x04U,
0346 HAL_TIM_ACTIVE_CHANNEL_4 = 0x08U,
0347 HAL_TIM_ACTIVE_CHANNEL_5 = 0x10U,
0348 HAL_TIM_ACTIVE_CHANNEL_6 = 0x20U,
0349 HAL_TIM_ACTIVE_CHANNEL_CLEARED = 0x00U
0350 } HAL_TIM_ActiveChannel;
0351
0352
0353
0354
0355 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
0356 typedef struct __TIM_HandleTypeDef
0357 #else
0358 typedef struct
0359 #endif
0360 {
0361 TIM_TypeDef *Instance;
0362 TIM_Base_InitTypeDef Init;
0363 HAL_TIM_ActiveChannel Channel;
0364 DMA_HandleTypeDef *hdma[7];
0365
0366 HAL_LockTypeDef Lock;
0367 __IO HAL_TIM_StateTypeDef State;
0368 __IO HAL_TIM_ChannelStateTypeDef ChannelState[6];
0369 __IO HAL_TIM_ChannelStateTypeDef ChannelNState[4];
0370 __IO HAL_TIM_DMABurstStateTypeDef DMABurstState;
0371
0372 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
0373 void (* Base_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0374 void (* Base_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0375 void (* IC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0376 void (* IC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0377 void (* OC_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0378 void (* OC_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0379 void (* PWM_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0380 void (* PWM_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0381 void (* OnePulse_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0382 void (* OnePulse_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0383 void (* Encoder_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0384 void (* Encoder_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0385 void (* HallSensor_MspInitCallback)(struct __TIM_HandleTypeDef *htim);
0386 void (* HallSensor_MspDeInitCallback)(struct __TIM_HandleTypeDef *htim);
0387 void (* PeriodElapsedCallback)(struct __TIM_HandleTypeDef *htim);
0388 void (* PeriodElapsedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
0389 void (* TriggerCallback)(struct __TIM_HandleTypeDef *htim);
0390 void (* TriggerHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
0391 void (* IC_CaptureCallback)(struct __TIM_HandleTypeDef *htim);
0392 void (* IC_CaptureHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
0393 void (* OC_DelayElapsedCallback)(struct __TIM_HandleTypeDef *htim);
0394 void (* PWM_PulseFinishedCallback)(struct __TIM_HandleTypeDef *htim);
0395 void (* PWM_PulseFinishedHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
0396 void (* ErrorCallback)(struct __TIM_HandleTypeDef *htim);
0397 void (* CommutationCallback)(struct __TIM_HandleTypeDef *htim);
0398 void (* CommutationHalfCpltCallback)(struct __TIM_HandleTypeDef *htim);
0399 void (* BreakCallback)(struct __TIM_HandleTypeDef *htim);
0400 void (* Break2Callback)(struct __TIM_HandleTypeDef *htim);
0401 #endif
0402 } TIM_HandleTypeDef;
0403
0404 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
0405
0406
0407
0408 typedef enum
0409 {
0410 HAL_TIM_BASE_MSPINIT_CB_ID = 0x00U
0411 , HAL_TIM_BASE_MSPDEINIT_CB_ID = 0x01U
0412 , HAL_TIM_IC_MSPINIT_CB_ID = 0x02U
0413 , HAL_TIM_IC_MSPDEINIT_CB_ID = 0x03U
0414 , HAL_TIM_OC_MSPINIT_CB_ID = 0x04U
0415 , HAL_TIM_OC_MSPDEINIT_CB_ID = 0x05U
0416 , HAL_TIM_PWM_MSPINIT_CB_ID = 0x06U
0417 , HAL_TIM_PWM_MSPDEINIT_CB_ID = 0x07U
0418 , HAL_TIM_ONE_PULSE_MSPINIT_CB_ID = 0x08U
0419 , HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID = 0x09U
0420 , HAL_TIM_ENCODER_MSPINIT_CB_ID = 0x0AU
0421 , HAL_TIM_ENCODER_MSPDEINIT_CB_ID = 0x0BU
0422 , HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID = 0x0CU
0423 , HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID = 0x0DU
0424 , HAL_TIM_PERIOD_ELAPSED_CB_ID = 0x0EU
0425 , HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID = 0x0FU
0426 , HAL_TIM_TRIGGER_CB_ID = 0x10U
0427 , HAL_TIM_TRIGGER_HALF_CB_ID = 0x11U
0428 , HAL_TIM_IC_CAPTURE_CB_ID = 0x12U
0429 , HAL_TIM_IC_CAPTURE_HALF_CB_ID = 0x13U
0430 , HAL_TIM_OC_DELAY_ELAPSED_CB_ID = 0x14U
0431 , HAL_TIM_PWM_PULSE_FINISHED_CB_ID = 0x15U
0432 , HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID = 0x16U
0433 , HAL_TIM_ERROR_CB_ID = 0x17U
0434 , HAL_TIM_COMMUTATION_CB_ID = 0x18U
0435 , HAL_TIM_COMMUTATION_HALF_CB_ID = 0x19U
0436 , HAL_TIM_BREAK_CB_ID = 0x1AU
0437 , HAL_TIM_BREAK2_CB_ID = 0x1BU
0438 } HAL_TIM_CallbackIDTypeDef;
0439
0440
0441
0442
0443 typedef void (*pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim);
0444
0445 #endif
0446
0447
0448
0449
0450
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461
0462 #define TIM_CLEARINPUTSOURCE_NONE 0x00000000U
0463 #define TIM_CLEARINPUTSOURCE_ETR 0x00000001U
0464
0465
0466
0467
0468
0469
0470
0471
0472 #define TIM_DMABASE_CR1 0x00000000U
0473 #define TIM_DMABASE_CR2 0x00000001U
0474 #define TIM_DMABASE_SMCR 0x00000002U
0475 #define TIM_DMABASE_DIER 0x00000003U
0476 #define TIM_DMABASE_SR 0x00000004U
0477 #define TIM_DMABASE_EGR 0x00000005U
0478 #define TIM_DMABASE_CCMR1 0x00000006U
0479 #define TIM_DMABASE_CCMR2 0x00000007U
0480 #define TIM_DMABASE_CCER 0x00000008U
0481 #define TIM_DMABASE_CNT 0x00000009U
0482 #define TIM_DMABASE_PSC 0x0000000AU
0483 #define TIM_DMABASE_ARR 0x0000000BU
0484 #define TIM_DMABASE_RCR 0x0000000CU
0485 #define TIM_DMABASE_CCR1 0x0000000DU
0486 #define TIM_DMABASE_CCR2 0x0000000EU
0487 #define TIM_DMABASE_CCR3 0x0000000FU
0488 #define TIM_DMABASE_CCR4 0x00000010U
0489 #define TIM_DMABASE_BDTR 0x00000011U
0490 #define TIM_DMABASE_DCR 0x00000012U
0491 #define TIM_DMABASE_DMAR 0x00000013U
0492 #define TIM_DMABASE_CCMR3 0x00000015U
0493 #define TIM_DMABASE_CCR5 0x00000016U
0494 #define TIM_DMABASE_CCR6 0x00000017U
0495 #if defined(TIM_BREAK_INPUT_SUPPORT)
0496 #define TIM_DMABASE_AF1 0x00000018U
0497 #define TIM_DMABASE_AF2 0x00000019U
0498 #endif
0499 #define TIM_DMABASE_TISEL 0x0000001AU
0500
0501
0502
0503
0504
0505
0506
0507
0508 #define TIM_EVENTSOURCE_UPDATE TIM_EGR_UG
0509 #define TIM_EVENTSOURCE_CC1 TIM_EGR_CC1G
0510 #define TIM_EVENTSOURCE_CC2 TIM_EGR_CC2G
0511 #define TIM_EVENTSOURCE_CC3 TIM_EGR_CC3G
0512 #define TIM_EVENTSOURCE_CC4 TIM_EGR_CC4G
0513 #define TIM_EVENTSOURCE_COM TIM_EGR_COMG
0514 #define TIM_EVENTSOURCE_TRIGGER TIM_EGR_TG
0515 #define TIM_EVENTSOURCE_BREAK TIM_EGR_BG
0516 #define TIM_EVENTSOURCE_BREAK2 TIM_EGR_B2G
0517
0518
0519
0520
0521
0522
0523
0524
0525 #define TIM_INPUTCHANNELPOLARITY_RISING 0x00000000U
0526 #define TIM_INPUTCHANNELPOLARITY_FALLING TIM_CCER_CC1P
0527 #define TIM_INPUTCHANNELPOLARITY_BOTHEDGE (TIM_CCER_CC1P | TIM_CCER_CC1NP)
0528
0529
0530
0531
0532
0533
0534
0535
0536 #define TIM_ETRPOLARITY_INVERTED TIM_SMCR_ETP
0537 #define TIM_ETRPOLARITY_NONINVERTED 0x00000000U
0538
0539
0540
0541
0542
0543
0544
0545
0546 #define TIM_ETRPRESCALER_DIV1 0x00000000U
0547 #define TIM_ETRPRESCALER_DIV2 TIM_SMCR_ETPS_0
0548 #define TIM_ETRPRESCALER_DIV4 TIM_SMCR_ETPS_1
0549 #define TIM_ETRPRESCALER_DIV8 TIM_SMCR_ETPS
0550
0551
0552
0553
0554
0555
0556
0557
0558 #define TIM_COUNTERMODE_UP 0x00000000U
0559 #define TIM_COUNTERMODE_DOWN TIM_CR1_DIR
0560 #define TIM_COUNTERMODE_CENTERALIGNED1 TIM_CR1_CMS_0
0561 #define TIM_COUNTERMODE_CENTERALIGNED2 TIM_CR1_CMS_1
0562 #define TIM_COUNTERMODE_CENTERALIGNED3 TIM_CR1_CMS
0563
0564
0565
0566
0567
0568
0569
0570
0571 #define TIM_UIFREMAP_DISABLE 0x00000000U
0572 #define TIM_UIFREMAP_ENABLE TIM_CR1_UIFREMAP
0573
0574
0575
0576
0577
0578
0579
0580
0581 #define TIM_CLOCKDIVISION_DIV1 0x00000000U
0582 #define TIM_CLOCKDIVISION_DIV2 TIM_CR1_CKD_0
0583 #define TIM_CLOCKDIVISION_DIV4 TIM_CR1_CKD_1
0584
0585
0586
0587
0588
0589
0590
0591
0592 #define TIM_OUTPUTSTATE_DISABLE 0x00000000U
0593 #define TIM_OUTPUTSTATE_ENABLE TIM_CCER_CC1E
0594
0595
0596
0597
0598
0599
0600
0601
0602 #define TIM_AUTORELOAD_PRELOAD_DISABLE 0x00000000U
0603 #define TIM_AUTORELOAD_PRELOAD_ENABLE TIM_CR1_ARPE
0604
0605
0606
0607
0608
0609
0610
0611
0612
0613 #define TIM_OCFAST_DISABLE 0x00000000U
0614 #define TIM_OCFAST_ENABLE TIM_CCMR1_OC1FE
0615
0616
0617
0618
0619
0620
0621
0622
0623 #define TIM_OUTPUTNSTATE_DISABLE 0x00000000U
0624 #define TIM_OUTPUTNSTATE_ENABLE TIM_CCER_CC1NE
0625
0626
0627
0628
0629
0630
0631
0632
0633 #define TIM_OCPOLARITY_HIGH 0x00000000U
0634 #define TIM_OCPOLARITY_LOW TIM_CCER_CC1P
0635
0636
0637
0638
0639
0640
0641
0642
0643 #define TIM_OCNPOLARITY_HIGH 0x00000000U
0644 #define TIM_OCNPOLARITY_LOW TIM_CCER_CC1NP
0645
0646
0647
0648
0649
0650
0651
0652
0653 #define TIM_OCIDLESTATE_SET TIM_CR2_OIS1
0654 #define TIM_OCIDLESTATE_RESET 0x00000000U
0655
0656
0657
0658
0659
0660
0661
0662
0663 #define TIM_OCNIDLESTATE_SET TIM_CR2_OIS1N
0664 #define TIM_OCNIDLESTATE_RESET 0x00000000U
0665
0666
0667
0668
0669
0670
0671
0672
0673 #define TIM_ICPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
0674 #define TIM_ICPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
0675 #define TIM_ICPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
0676
0677
0678
0679
0680
0681
0682
0683
0684 #define TIM_ENCODERINPUTPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
0685 #define TIM_ENCODERINPUTPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
0686
0687
0688
0689
0690
0691
0692
0693
0694 #define TIM_ICSELECTION_DIRECTTI TIM_CCMR1_CC1S_0
0695 #define TIM_ICSELECTION_INDIRECTTI TIM_CCMR1_CC1S_1
0696 #define TIM_ICSELECTION_TRC TIM_CCMR1_CC1S
0697
0698
0699
0700
0701
0702
0703
0704
0705 #define TIM_ICPSC_DIV1 0x00000000U
0706 #define TIM_ICPSC_DIV2 TIM_CCMR1_IC1PSC_0
0707 #define TIM_ICPSC_DIV4 TIM_CCMR1_IC1PSC_1
0708 #define TIM_ICPSC_DIV8 TIM_CCMR1_IC1PSC
0709
0710
0711
0712
0713
0714
0715
0716
0717 #define TIM_OPMODE_SINGLE TIM_CR1_OPM
0718 #define TIM_OPMODE_REPETITIVE 0x00000000U
0719
0720
0721
0722
0723
0724
0725
0726
0727 #define TIM_ENCODERMODE_TI1 TIM_SMCR_SMS_0
0728 #define TIM_ENCODERMODE_TI2 TIM_SMCR_SMS_1
0729 #define TIM_ENCODERMODE_TI12 (TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
0730
0731
0732
0733
0734
0735
0736
0737
0738 #define TIM_IT_UPDATE TIM_DIER_UIE
0739 #define TIM_IT_CC1 TIM_DIER_CC1IE
0740 #define TIM_IT_CC2 TIM_DIER_CC2IE
0741 #define TIM_IT_CC3 TIM_DIER_CC3IE
0742 #define TIM_IT_CC4 TIM_DIER_CC4IE
0743 #define TIM_IT_COM TIM_DIER_COMIE
0744 #define TIM_IT_TRIGGER TIM_DIER_TIE
0745 #define TIM_IT_BREAK TIM_DIER_BIE
0746
0747
0748
0749
0750
0751
0752
0753
0754 #define TIM_COMMUTATION_TRGI TIM_CR2_CCUS
0755 #define TIM_COMMUTATION_SOFTWARE 0x00000000U
0756
0757
0758
0759
0760
0761
0762
0763
0764 #define TIM_DMA_UPDATE TIM_DIER_UDE
0765 #define TIM_DMA_CC1 TIM_DIER_CC1DE
0766 #define TIM_DMA_CC2 TIM_DIER_CC2DE
0767 #define TIM_DMA_CC3 TIM_DIER_CC3DE
0768 #define TIM_DMA_CC4 TIM_DIER_CC4DE
0769 #define TIM_DMA_COM TIM_DIER_COMDE
0770 #define TIM_DMA_TRIGGER TIM_DIER_TDE
0771
0772
0773
0774
0775
0776
0777
0778
0779 #define TIM_CCDMAREQUEST_CC 0x00000000U
0780 #define TIM_CCDMAREQUEST_UPDATE TIM_CR2_CCDS
0781
0782
0783
0784
0785
0786
0787
0788
0789 #define TIM_FLAG_UPDATE TIM_SR_UIF
0790 #define TIM_FLAG_CC1 TIM_SR_CC1IF
0791 #define TIM_FLAG_CC2 TIM_SR_CC2IF
0792 #define TIM_FLAG_CC3 TIM_SR_CC3IF
0793 #define TIM_FLAG_CC4 TIM_SR_CC4IF
0794 #define TIM_FLAG_CC5 TIM_SR_CC5IF
0795 #define TIM_FLAG_CC6 TIM_SR_CC6IF
0796 #define TIM_FLAG_COM TIM_SR_COMIF
0797 #define TIM_FLAG_TRIGGER TIM_SR_TIF
0798 #define TIM_FLAG_BREAK TIM_SR_BIF
0799 #define TIM_FLAG_BREAK2 TIM_SR_B2IF
0800 #define TIM_FLAG_SYSTEM_BREAK TIM_SR_SBIF
0801 #define TIM_FLAG_CC1OF TIM_SR_CC1OF
0802 #define TIM_FLAG_CC2OF TIM_SR_CC2OF
0803 #define TIM_FLAG_CC3OF TIM_SR_CC3OF
0804 #define TIM_FLAG_CC4OF TIM_SR_CC4OF
0805
0806
0807
0808
0809
0810
0811
0812
0813 #define TIM_CHANNEL_1 0x00000000U
0814 #define TIM_CHANNEL_2 0x00000004U
0815 #define TIM_CHANNEL_3 0x00000008U
0816 #define TIM_CHANNEL_4 0x0000000CU
0817 #define TIM_CHANNEL_5 0x00000010U
0818 #define TIM_CHANNEL_6 0x00000014U
0819 #define TIM_CHANNEL_ALL 0x0000003CU
0820
0821
0822
0823
0824
0825
0826
0827
0828 #define TIM_CLOCKSOURCE_INTERNAL TIM_SMCR_ETPS_0
0829 #define TIM_CLOCKSOURCE_ETRMODE1 TIM_TS_ETRF
0830 #define TIM_CLOCKSOURCE_ETRMODE2 TIM_SMCR_ETPS_1
0831 #define TIM_CLOCKSOURCE_TI1ED TIM_TS_TI1F_ED
0832 #define TIM_CLOCKSOURCE_TI1 TIM_TS_TI1FP1
0833 #define TIM_CLOCKSOURCE_TI2 TIM_TS_TI2FP2
0834 #define TIM_CLOCKSOURCE_ITR0 TIM_TS_ITR0
0835 #define TIM_CLOCKSOURCE_ITR1 TIM_TS_ITR1
0836 #define TIM_CLOCKSOURCE_ITR2 TIM_TS_ITR2
0837 #define TIM_CLOCKSOURCE_ITR3 TIM_TS_ITR3
0838 #define TIM_CLOCKSOURCE_ITR4 TIM_TS_ITR4
0839 #define TIM_CLOCKSOURCE_ITR5 TIM_TS_ITR5
0840 #define TIM_CLOCKSOURCE_ITR6 TIM_TS_ITR6
0841 #define TIM_CLOCKSOURCE_ITR7 TIM_TS_ITR7
0842 #define TIM_CLOCKSOURCE_ITR8 TIM_TS_ITR8
0843
0844
0845
0846
0847
0848
0849
0850
0851 #define TIM_CLOCKPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
0852 #define TIM_CLOCKPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
0853 #define TIM_CLOCKPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
0854 #define TIM_CLOCKPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
0855 #define TIM_CLOCKPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
0856
0857
0858
0859
0860
0861
0862
0863
0864 #define TIM_CLOCKPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
0865 #define TIM_CLOCKPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
0866 #define TIM_CLOCKPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
0867 #define TIM_CLOCKPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
0868
0869
0870
0871
0872
0873
0874
0875
0876 #define TIM_CLEARINPUTPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
0877 #define TIM_CLEARINPUTPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
0878
0879
0880
0881
0882
0883
0884
0885
0886 #define TIM_CLEARINPUTPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
0887 #define TIM_CLEARINPUTPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
0888 #define TIM_CLEARINPUTPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
0889 #define TIM_CLEARINPUTPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
0890
0891
0892
0893
0894
0895
0896
0897
0898 #define TIM_OSSR_ENABLE TIM_BDTR_OSSR
0899 #define TIM_OSSR_DISABLE 0x00000000U
0900
0901
0902
0903
0904
0905
0906
0907
0908 #define TIM_OSSI_ENABLE TIM_BDTR_OSSI
0909 #define TIM_OSSI_DISABLE 0x00000000U
0910
0911
0912
0913
0914
0915
0916
0917 #define TIM_LOCKLEVEL_OFF 0x00000000U
0918 #define TIM_LOCKLEVEL_1 TIM_BDTR_LOCK_0
0919 #define TIM_LOCKLEVEL_2 TIM_BDTR_LOCK_1
0920 #define TIM_LOCKLEVEL_3 TIM_BDTR_LOCK
0921
0922
0923
0924
0925
0926
0927
0928
0929 #define TIM_BREAK_ENABLE TIM_BDTR_BKE
0930 #define TIM_BREAK_DISABLE 0x00000000U
0931
0932
0933
0934
0935
0936
0937
0938
0939 #define TIM_BREAKPOLARITY_LOW 0x00000000U
0940 #define TIM_BREAKPOLARITY_HIGH TIM_BDTR_BKP
0941
0942
0943
0944 #if defined(TIM_BDTR_BKBID)
0945
0946
0947
0948
0949
0950 #define TIM_BREAK_AFMODE_INPUT 0x00000000U
0951 #define TIM_BREAK_AFMODE_BIDIRECTIONAL TIM_BDTR_BKBID
0952
0953
0954
0955 #endif
0956
0957
0958
0959
0960
0961 #define TIM_BREAK2_DISABLE 0x00000000U
0962 #define TIM_BREAK2_ENABLE TIM_BDTR_BK2E
0963
0964
0965
0966
0967
0968
0969
0970
0971 #define TIM_BREAK2POLARITY_LOW 0x00000000U
0972 #define TIM_BREAK2POLARITY_HIGH TIM_BDTR_BK2P
0973
0974
0975
0976 #if defined(TIM_BDTR_BKBID)
0977
0978
0979
0980
0981
0982 #define TIM_BREAK2_AFMODE_INPUT 0x00000000U
0983 #define TIM_BREAK2_AFMODE_BIDIRECTIONAL TIM_BDTR_BK2BID
0984
0985
0986
0987 #endif
0988
0989
0990
0991
0992
0993 #define TIM_AUTOMATICOUTPUT_DISABLE 0x00000000U
0994 #define TIM_AUTOMATICOUTPUT_ENABLE TIM_BDTR_AOE
0995
0996
0997
0998
0999
1000
1001
1002
1003 #define TIM_GROUPCH5_NONE 0x00000000U
1004 #define TIM_GROUPCH5_OC1REFC TIM_CCR5_GC5C1
1005 #define TIM_GROUPCH5_OC2REFC TIM_CCR5_GC5C2
1006 #define TIM_GROUPCH5_OC3REFC TIM_CCR5_GC5C3
1007
1008
1009
1010
1011
1012
1013
1014
1015 #define TIM_TRGO_RESET 0x00000000U
1016 #define TIM_TRGO_ENABLE TIM_CR2_MMS_0
1017 #define TIM_TRGO_UPDATE TIM_CR2_MMS_1
1018 #define TIM_TRGO_OC1 (TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
1019 #define TIM_TRGO_OC1REF TIM_CR2_MMS_2
1020 #define TIM_TRGO_OC2REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_0)
1021 #define TIM_TRGO_OC3REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1)
1022 #define TIM_TRGO_OC4REF (TIM_CR2_MMS_2 | TIM_CR2_MMS_1 | TIM_CR2_MMS_0)
1023
1024
1025
1026
1027
1028
1029
1030
1031 #define TIM_TRGO2_RESET 0x00000000U
1032 #define TIM_TRGO2_ENABLE TIM_CR2_MMS2_0
1033 #define TIM_TRGO2_UPDATE TIM_CR2_MMS2_1
1034 #define TIM_TRGO2_OC1 (TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
1035 #define TIM_TRGO2_OC1REF TIM_CR2_MMS2_2
1036 #define TIM_TRGO2_OC2REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0)
1037 #define TIM_TRGO2_OC3REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1)
1038 #define TIM_TRGO2_OC4REF (TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
1039 #define TIM_TRGO2_OC5REF TIM_CR2_MMS2_3
1040 #define TIM_TRGO2_OC6REF (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_0)
1041 #define TIM_TRGO2_OC4REF_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1)
1042 #define TIM_TRGO2_OC6REF_RISINGFALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
1043 #define TIM_TRGO2_OC4REF_RISING_OC6REF_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2)
1044 #define TIM_TRGO2_OC4REF_RISING_OC6REF_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_0)
1045 #define TIM_TRGO2_OC5REF_RISING_OC6REF_RISING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 |TIM_CR2_MMS2_1)
1046 #define TIM_TRGO2_OC5REF_RISING_OC6REF_FALLING (TIM_CR2_MMS2_3 | TIM_CR2_MMS2_2 | TIM_CR2_MMS2_1 | TIM_CR2_MMS2_0)
1047
1048
1049
1050
1051
1052
1053
1054
1055 #define TIM_MASTERSLAVEMODE_ENABLE TIM_SMCR_MSM
1056 #define TIM_MASTERSLAVEMODE_DISABLE 0x00000000U
1057
1058
1059
1060
1061
1062
1063
1064
1065 #define TIM_SLAVEMODE_DISABLE 0x00000000U
1066 #define TIM_SLAVEMODE_RESET TIM_SMCR_SMS_2
1067 #define TIM_SLAVEMODE_GATED (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_0)
1068 #define TIM_SLAVEMODE_TRIGGER (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1)
1069 #define TIM_SLAVEMODE_EXTERNAL1 (TIM_SMCR_SMS_2 | TIM_SMCR_SMS_1 | TIM_SMCR_SMS_0)
1070 #define TIM_SLAVEMODE_COMBINED_RESETTRIGGER TIM_SMCR_SMS_3
1071
1072
1073
1074
1075
1076
1077
1078
1079 #define TIM_OCMODE_TIMING 0x00000000U
1080 #define TIM_OCMODE_ACTIVE TIM_CCMR1_OC1M_0
1081 #define TIM_OCMODE_INACTIVE TIM_CCMR1_OC1M_1
1082 #define TIM_OCMODE_TOGGLE (TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
1083 #define TIM_OCMODE_PWM1 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1)
1084 #define TIM_OCMODE_PWM2 (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_0)
1085 #define TIM_OCMODE_FORCED_ACTIVE (TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_0)
1086 #define TIM_OCMODE_FORCED_INACTIVE TIM_CCMR1_OC1M_2
1087 #define TIM_OCMODE_RETRIGERRABLE_OPM1 TIM_CCMR1_OC1M_3
1088 #define TIM_OCMODE_RETRIGERRABLE_OPM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0)
1089 #define TIM_OCMODE_COMBINED_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_2)
1090 #define TIM_OCMODE_COMBINED_PWM2 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_0 | TIM_CCMR1_OC1M_2)
1091 #define TIM_OCMODE_ASYMMETRIC_PWM1 (TIM_CCMR1_OC1M_3 | TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2)
1092 #define TIM_OCMODE_ASYMMETRIC_PWM2 TIM_CCMR1_OC1M
1093
1094
1095
1096
1097
1098
1099
1100
1101 #define TIM_TS_ITR0 0x00000000U
1102 #define TIM_TS_ITR1 TIM_SMCR_TS_0
1103 #define TIM_TS_ITR2 TIM_SMCR_TS_1
1104 #define TIM_TS_ITR3 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1)
1105 #define TIM_TS_ITR4 (TIM_SMCR_TS_3)
1106 #define TIM_TS_ITR5 (TIM_SMCR_TS_0 | TIM_SMCR_TS_3)
1107 #define TIM_TS_ITR6 (TIM_SMCR_TS_1 | TIM_SMCR_TS_3)
1108 #define TIM_TS_ITR7 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_3)
1109 #define TIM_TS_ITR8 (TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
1110 #define TIM_TS_ITR9 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
1111 #define TIM_TS_ITR10 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
1112 #define TIM_TS_ITR11 (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2 | TIM_SMCR_TS_3)
1113 #define TIM_TS_ITR12 (TIM_SMCR_TS_4)
1114 #define TIM_TS_ITR13 (TIM_SMCR_TS_0 | TIM_SMCR_TS_4)
1115 #define TIM_TS_TI1F_ED TIM_SMCR_TS_2
1116 #define TIM_TS_TI1FP1 (TIM_SMCR_TS_0 | TIM_SMCR_TS_2)
1117 #define TIM_TS_TI2FP2 (TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
1118 #define TIM_TS_ETRF (TIM_SMCR_TS_0 | TIM_SMCR_TS_1 | TIM_SMCR_TS_2)
1119 #define TIM_TS_NONE 0x0000FFFFU
1120
1121
1122
1123
1124
1125
1126
1127
1128 #define TIM_TRIGGERPOLARITY_INVERTED TIM_ETRPOLARITY_INVERTED
1129 #define TIM_TRIGGERPOLARITY_NONINVERTED TIM_ETRPOLARITY_NONINVERTED
1130 #define TIM_TRIGGERPOLARITY_RISING TIM_INPUTCHANNELPOLARITY_RISING
1131 #define TIM_TRIGGERPOLARITY_FALLING TIM_INPUTCHANNELPOLARITY_FALLING
1132 #define TIM_TRIGGERPOLARITY_BOTHEDGE TIM_INPUTCHANNELPOLARITY_BOTHEDGE
1133
1134
1135
1136
1137
1138
1139
1140
1141 #define TIM_TRIGGERPRESCALER_DIV1 TIM_ETRPRESCALER_DIV1
1142 #define TIM_TRIGGERPRESCALER_DIV2 TIM_ETRPRESCALER_DIV2
1143 #define TIM_TRIGGERPRESCALER_DIV4 TIM_ETRPRESCALER_DIV4
1144 #define TIM_TRIGGERPRESCALER_DIV8 TIM_ETRPRESCALER_DIV8
1145
1146
1147
1148
1149
1150
1151
1152
1153 #define TIM_TI1SELECTION_CH1 0x00000000U
1154 #define TIM_TI1SELECTION_XORCOMBINATION TIM_CR2_TI1S
1155
1156
1157
1158
1159
1160
1161
1162
1163 #define TIM_DMABURSTLENGTH_1TRANSFER 0x00000000U
1164 #define TIM_DMABURSTLENGTH_2TRANSFERS 0x00000100U
1165 #define TIM_DMABURSTLENGTH_3TRANSFERS 0x00000200U
1166 #define TIM_DMABURSTLENGTH_4TRANSFERS 0x00000300U
1167 #define TIM_DMABURSTLENGTH_5TRANSFERS 0x00000400U
1168 #define TIM_DMABURSTLENGTH_6TRANSFERS 0x00000500U
1169 #define TIM_DMABURSTLENGTH_7TRANSFERS 0x00000600U
1170 #define TIM_DMABURSTLENGTH_8TRANSFERS 0x00000700U
1171 #define TIM_DMABURSTLENGTH_9TRANSFERS 0x00000800U
1172 #define TIM_DMABURSTLENGTH_10TRANSFERS 0x00000900U
1173 #define TIM_DMABURSTLENGTH_11TRANSFERS 0x00000A00U
1174 #define TIM_DMABURSTLENGTH_12TRANSFERS 0x00000B00U
1175 #define TIM_DMABURSTLENGTH_13TRANSFERS 0x00000C00U
1176 #define TIM_DMABURSTLENGTH_14TRANSFERS 0x00000D00U
1177 #define TIM_DMABURSTLENGTH_15TRANSFERS 0x00000E00U
1178 #define TIM_DMABURSTLENGTH_16TRANSFERS 0x00000F00U
1179 #define TIM_DMABURSTLENGTH_17TRANSFERS 0x00001000U
1180 #define TIM_DMABURSTLENGTH_18TRANSFERS 0x00001100U
1181
1182
1183
1184
1185
1186
1187
1188
1189 #define TIM_DMA_ID_UPDATE ((uint16_t) 0x0000)
1190 #define TIM_DMA_ID_CC1 ((uint16_t) 0x0001)
1191 #define TIM_DMA_ID_CC2 ((uint16_t) 0x0002)
1192 #define TIM_DMA_ID_CC3 ((uint16_t) 0x0003)
1193 #define TIM_DMA_ID_CC4 ((uint16_t) 0x0004)
1194 #define TIM_DMA_ID_COMMUTATION ((uint16_t) 0x0005)
1195 #define TIM_DMA_ID_TRIGGER ((uint16_t) 0x0006)
1196
1197
1198
1199
1200
1201
1202
1203
1204 #define TIM_CCx_ENABLE 0x00000001U
1205 #define TIM_CCx_DISABLE 0x00000000U
1206 #define TIM_CCxN_ENABLE 0x00000004U
1207 #define TIM_CCxN_DISABLE 0x00000000U
1208
1209
1210
1211
1212
1213
1214
1215
1216 #define TIM_BREAK_SYSTEM_ECC SYSCFG_CFGR2_ECCL
1217 #define TIM_BREAK_SYSTEM_PVD SYSCFG_CFGR2_PVDL
1218 #define TIM_BREAK_SYSTEM_SRAM_PARITY_ERROR SYSCFG_CFGR2_SPL
1219 #define TIM_BREAK_SYSTEM_LOCKUP SYSCFG_CFGR2_CLL
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1240 #define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1241 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1242 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1243 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1244 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1245 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1246 (__HANDLE__)->ChannelState[4] = HAL_TIM_CHANNEL_STATE_RESET; \
1247 (__HANDLE__)->ChannelState[5] = HAL_TIM_CHANNEL_STATE_RESET; \
1248 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1249 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1250 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1251 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1252 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1253 (__HANDLE__)->Base_MspInitCallback = NULL; \
1254 (__HANDLE__)->Base_MspDeInitCallback = NULL; \
1255 (__HANDLE__)->IC_MspInitCallback = NULL; \
1256 (__HANDLE__)->IC_MspDeInitCallback = NULL; \
1257 (__HANDLE__)->OC_MspInitCallback = NULL; \
1258 (__HANDLE__)->OC_MspDeInitCallback = NULL; \
1259 (__HANDLE__)->PWM_MspInitCallback = NULL; \
1260 (__HANDLE__)->PWM_MspDeInitCallback = NULL; \
1261 (__HANDLE__)->OnePulse_MspInitCallback = NULL; \
1262 (__HANDLE__)->OnePulse_MspDeInitCallback = NULL; \
1263 (__HANDLE__)->Encoder_MspInitCallback = NULL; \
1264 (__HANDLE__)->Encoder_MspDeInitCallback = NULL; \
1265 (__HANDLE__)->HallSensor_MspInitCallback = NULL; \
1266 (__HANDLE__)->HallSensor_MspDeInitCallback = NULL; \
1267 } while(0)
1268 #else
1269 #define __HAL_TIM_RESET_HANDLE_STATE(__HANDLE__) do { \
1270 (__HANDLE__)->State = HAL_TIM_STATE_RESET; \
1271 (__HANDLE__)->ChannelState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1272 (__HANDLE__)->ChannelState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1273 (__HANDLE__)->ChannelState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1274 (__HANDLE__)->ChannelState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1275 (__HANDLE__)->ChannelState[4] = HAL_TIM_CHANNEL_STATE_RESET; \
1276 (__HANDLE__)->ChannelState[5] = HAL_TIM_CHANNEL_STATE_RESET; \
1277 (__HANDLE__)->ChannelNState[0] = HAL_TIM_CHANNEL_STATE_RESET; \
1278 (__HANDLE__)->ChannelNState[1] = HAL_TIM_CHANNEL_STATE_RESET; \
1279 (__HANDLE__)->ChannelNState[2] = HAL_TIM_CHANNEL_STATE_RESET; \
1280 (__HANDLE__)->ChannelNState[3] = HAL_TIM_CHANNEL_STATE_RESET; \
1281 (__HANDLE__)->DMABurstState = HAL_DMA_BURST_STATE_RESET; \
1282 } while(0)
1283 #endif
1284
1285
1286
1287
1288
1289
1290 #define __HAL_TIM_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|=(TIM_CR1_CEN))
1291
1292
1293
1294
1295
1296
1297 #define __HAL_TIM_MOE_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->BDTR|=(TIM_BDTR_MOE))
1298
1299
1300
1301
1302
1303
1304 #define __HAL_TIM_DISABLE(__HANDLE__) \
1305 do { \
1306 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1307 { \
1308 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1309 { \
1310 (__HANDLE__)->Instance->CR1 &= ~(TIM_CR1_CEN); \
1311 } \
1312 } \
1313 } while(0)
1314
1315
1316
1317
1318
1319
1320
1321
1322 #define __HAL_TIM_MOE_DISABLE(__HANDLE__) \
1323 do { \
1324 if (((__HANDLE__)->Instance->CCER & TIM_CCER_CCxE_MASK) == 0UL) \
1325 { \
1326 if(((__HANDLE__)->Instance->CCER & TIM_CCER_CCxNE_MASK) == 0UL) \
1327 { \
1328 (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE); \
1329 } \
1330 } \
1331 } while(0)
1332
1333
1334
1335
1336
1337
1338
1339 #define __HAL_TIM_MOE_DISABLE_UNCONDITIONALLY(__HANDLE__) (__HANDLE__)->Instance->BDTR &= ~(TIM_BDTR_MOE)
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355 #define __HAL_TIM_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER |= (__INTERRUPT__))
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371 #define __HAL_TIM_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->DIER &= ~(__INTERRUPT__))
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386 #define __HAL_TIM_ENABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER |= (__DMA__))
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401 #define __HAL_TIM_DISABLE_DMA(__HANDLE__, __DMA__) ((__HANDLE__)->Instance->DIER &= ~(__DMA__))
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425 #define __HAL_TIM_GET_FLAG(__HANDLE__, __FLAG__) (((__HANDLE__)->Instance->SR &(__FLAG__)) == (__FLAG__))
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449 #define __HAL_TIM_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->SR = ~(__FLAG__))
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466 #define __HAL_TIM_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((((__HANDLE__)->Instance->DIER & (__INTERRUPT__)) \
1467 == (__INTERRUPT__)) ? SET : RESET)
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483 #define __HAL_TIM_CLEAR_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->SR = ~(__INTERRUPT__))
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493 #define __HAL_TIM_UIFREMAP_ENABLE(__HANDLE__) (((__HANDLE__)->Instance->CR1 |= TIM_CR1_UIFREMAP))
1494
1495
1496
1497
1498
1499
1500
1501 #define __HAL_TIM_UIFREMAP_DISABLE(__HANDLE__) (((__HANDLE__)->Instance->CR1 &= ~TIM_CR1_UIFREMAP))
1502
1503
1504
1505
1506
1507
1508
1509 #define __HAL_TIM_GET_UIFCPY(__COUNTER__) (((__COUNTER__) & (TIM_CNT_UIFCPY)) == (TIM_CNT_UIFCPY))
1510
1511
1512
1513
1514
1515
1516
1517
1518 #define __HAL_TIM_IS_TIM_COUNTING_DOWN(__HANDLE__) (((__HANDLE__)->Instance->CR1 &(TIM_CR1_DIR)) == (TIM_CR1_DIR))
1519
1520
1521
1522
1523
1524
1525
1526 #define __HAL_TIM_SET_PRESCALER(__HANDLE__, __PRESC__) ((__HANDLE__)->Instance->PSC = (__PRESC__))
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537 #define __HAL_TIM_SET_COUNTER(__HANDLE__, __COUNTER__) ((__HANDLE__)->Instance->CNT = (__COUNTER__))
1538
1539
1540
1541
1542
1543
1544 #define __HAL_TIM_GET_COUNTER(__HANDLE__) ((__HANDLE__)->Instance->CNT)
1545
1546
1547
1548
1549
1550
1551
1552 #define __HAL_TIM_SET_AUTORELOAD(__HANDLE__, __AUTORELOAD__) \
1553 do{ \
1554 (__HANDLE__)->Instance->ARR = (__AUTORELOAD__); \
1555 (__HANDLE__)->Init.Period = (__AUTORELOAD__); \
1556 } while(0)
1557
1558
1559
1560
1561
1562
1563 #define __HAL_TIM_GET_AUTORELOAD(__HANDLE__) ((__HANDLE__)->Instance->ARR)
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575 #define __HAL_TIM_SET_CLOCKDIVISION(__HANDLE__, __CKD__) \
1576 do{ \
1577 (__HANDLE__)->Instance->CR1 &= (~TIM_CR1_CKD); \
1578 (__HANDLE__)->Instance->CR1 |= (__CKD__); \
1579 (__HANDLE__)->Init.ClockDivision = (__CKD__); \
1580 } while(0)
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590 #define __HAL_TIM_GET_CLOCKDIVISION(__HANDLE__) ((__HANDLE__)->Instance->CR1 & TIM_CR1_CKD)
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610 #define __HAL_TIM_SET_ICPRESCALER(__HANDLE__, __CHANNEL__, __ICPSC__) \
1611 do{ \
1612 TIM_RESET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__)); \
1613 TIM_SET_ICPRESCALERVALUE((__HANDLE__), (__CHANNEL__), (__ICPSC__)); \
1614 } while(0)
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631 #define __HAL_TIM_GET_ICPRESCALER(__HANDLE__, __CHANNEL__) \
1632 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC1PSC) :\
1633 ((__CHANNEL__) == TIM_CHANNEL_2) ? (((__HANDLE__)->Instance->CCMR1 & TIM_CCMR1_IC2PSC) >> 8U) :\
1634 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC3PSC) :\
1635 (((__HANDLE__)->Instance->CCMR2 & TIM_CCMR2_IC4PSC)) >> 8U)
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651 #define __HAL_TIM_SET_COMPARE(__HANDLE__, __CHANNEL__, __COMPARE__) \
1652 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1 = (__COMPARE__)) :\
1653 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2 = (__COMPARE__)) :\
1654 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3 = (__COMPARE__)) :\
1655 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCR4 = (__COMPARE__)) :\
1656 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCR5 = (__COMPARE__)) :\
1657 ((__HANDLE__)->Instance->CCR6 = (__COMPARE__)))
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672 #define __HAL_TIM_GET_COMPARE(__HANDLE__, __CHANNEL__) \
1673 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCR1) :\
1674 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCR2) :\
1675 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCR3) :\
1676 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCR4) :\
1677 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCR5) :\
1678 ((__HANDLE__)->Instance->CCR6))
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693 #define __HAL_TIM_ENABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1694 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1PE) :\
1695 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2PE) :\
1696 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3PE) :\
1697 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4PE) :\
1698 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC5PE) :\
1699 ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC6PE))
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714 #define __HAL_TIM_DISABLE_OCxPRELOAD(__HANDLE__, __CHANNEL__) \
1715 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1PE) :\
1716 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2PE) :\
1717 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3PE) :\
1718 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4PE) :\
1719 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC5PE) :\
1720 ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC6PE))
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739 #define __HAL_TIM_ENABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1740 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC1FE) :\
1741 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= TIM_CCMR1_OC2FE) :\
1742 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC3FE) :\
1743 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 |= TIM_CCMR2_OC4FE) :\
1744 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC5FE) :\
1745 ((__HANDLE__)->Instance->CCMR3 |= TIM_CCMR3_OC6FE))
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764 #define __HAL_TIM_DISABLE_OCxFAST(__HANDLE__, __CHANNEL__) \
1765 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE) :\
1766 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE) :\
1767 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE) :\
1768 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE) :\
1769 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE) :\
1770 ((__HANDLE__)->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE))
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780 #define __HAL_TIM_URS_ENABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1|= TIM_CR1_URS)
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793 #define __HAL_TIM_URS_DISABLE(__HANDLE__) ((__HANDLE__)->Instance->CR1&=~TIM_CR1_URS)
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810 #define __HAL_TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
1811 do{ \
1812 TIM_RESET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__)); \
1813 TIM_SET_CAPTUREPOLARITY((__HANDLE__), (__CHANNEL__), (__POLARITY__)); \
1814 }while(0)
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824 #define __HAL_TIM_SELECT_CCDMAREQUEST(__HANDLE__, __CCDMA__) \
1825 MODIFY_REG((__HANDLE__)->Instance->CR2, TIM_CR2_CCDS, (__CCDMA__))
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839 #define TIM_CCER_CCxE_MASK ((uint32_t)(TIM_CCER_CC1E | TIM_CCER_CC2E | TIM_CCER_CC3E | TIM_CCER_CC4E))
1840 #define TIM_CCER_CCxNE_MASK ((uint32_t)(TIM_CCER_CC1NE | TIM_CCER_CC2NE | TIM_CCER_CC3NE))
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851 #define IS_TIM_CLEARINPUT_SOURCE(__MODE__) (((__MODE__) == TIM_CLEARINPUTSOURCE_NONE) || \
1852 ((__MODE__) == TIM_CLEARINPUTSOURCE_ETR))
1853
1854 #define IS_TIM_DMA_BASE(__BASE__) (((__BASE__) == TIM_DMABASE_CR1) || \
1855 ((__BASE__) == TIM_DMABASE_CR2) || \
1856 ((__BASE__) == TIM_DMABASE_SMCR) || \
1857 ((__BASE__) == TIM_DMABASE_DIER) || \
1858 ((__BASE__) == TIM_DMABASE_SR) || \
1859 ((__BASE__) == TIM_DMABASE_EGR) || \
1860 ((__BASE__) == TIM_DMABASE_CCMR1) || \
1861 ((__BASE__) == TIM_DMABASE_CCMR2) || \
1862 ((__BASE__) == TIM_DMABASE_CCER) || \
1863 ((__BASE__) == TIM_DMABASE_CNT) || \
1864 ((__BASE__) == TIM_DMABASE_PSC) || \
1865 ((__BASE__) == TIM_DMABASE_ARR) || \
1866 ((__BASE__) == TIM_DMABASE_RCR) || \
1867 ((__BASE__) == TIM_DMABASE_CCR1) || \
1868 ((__BASE__) == TIM_DMABASE_CCR2) || \
1869 ((__BASE__) == TIM_DMABASE_CCR3) || \
1870 ((__BASE__) == TIM_DMABASE_CCR4) || \
1871 ((__BASE__) == TIM_DMABASE_BDTR) || \
1872 ((__BASE__) == TIM_DMABASE_CCMR3) || \
1873 ((__BASE__) == TIM_DMABASE_CCR5) || \
1874 ((__BASE__) == TIM_DMABASE_CCR6) || \
1875 ((__BASE__) == TIM_DMABASE_AF1) || \
1876 ((__BASE__) == TIM_DMABASE_AF2) || \
1877 ((__BASE__) == TIM_DMABASE_TISEL))
1878
1879
1880 #define IS_TIM_EVENT_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFFFE00U) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1881
1882 #define IS_TIM_COUNTER_MODE(__MODE__) (((__MODE__) == TIM_COUNTERMODE_UP) || \
1883 ((__MODE__) == TIM_COUNTERMODE_DOWN) || \
1884 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED1) || \
1885 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED2) || \
1886 ((__MODE__) == TIM_COUNTERMODE_CENTERALIGNED3))
1887
1888 #define IS_TIM_UIFREMAP_MODE(__MODE__) (((__MODE__) == TIM_UIFREMAP_DISABLE) || \
1889 ((__MODE__) == TIM_UIFREMAP_ENABLE))
1890
1891 #define IS_TIM_CLOCKDIVISION_DIV(__DIV__) (((__DIV__) == TIM_CLOCKDIVISION_DIV1) || \
1892 ((__DIV__) == TIM_CLOCKDIVISION_DIV2) || \
1893 ((__DIV__) == TIM_CLOCKDIVISION_DIV4))
1894
1895 #define IS_TIM_AUTORELOAD_PRELOAD(PRELOAD) (((PRELOAD) == TIM_AUTORELOAD_PRELOAD_DISABLE) || \
1896 ((PRELOAD) == TIM_AUTORELOAD_PRELOAD_ENABLE))
1897
1898 #define IS_TIM_FAST_STATE(__STATE__) (((__STATE__) == TIM_OCFAST_DISABLE) || \
1899 ((__STATE__) == TIM_OCFAST_ENABLE))
1900
1901 #define IS_TIM_OC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCPOLARITY_HIGH) || \
1902 ((__POLARITY__) == TIM_OCPOLARITY_LOW))
1903
1904 #define IS_TIM_OCN_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_OCNPOLARITY_HIGH) || \
1905 ((__POLARITY__) == TIM_OCNPOLARITY_LOW))
1906
1907 #define IS_TIM_OCIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCIDLESTATE_SET) || \
1908 ((__STATE__) == TIM_OCIDLESTATE_RESET))
1909
1910 #define IS_TIM_OCNIDLE_STATE(__STATE__) (((__STATE__) == TIM_OCNIDLESTATE_SET) || \
1911 ((__STATE__) == TIM_OCNIDLESTATE_RESET))
1912
1913 #define IS_TIM_ENCODERINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_RISING) || \
1914 ((__POLARITY__) == TIM_ENCODERINPUTPOLARITY_FALLING))
1915
1916 #define IS_TIM_IC_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_ICPOLARITY_RISING) || \
1917 ((__POLARITY__) == TIM_ICPOLARITY_FALLING) || \
1918 ((__POLARITY__) == TIM_ICPOLARITY_BOTHEDGE))
1919
1920 #define IS_TIM_IC_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_ICSELECTION_DIRECTTI) || \
1921 ((__SELECTION__) == TIM_ICSELECTION_INDIRECTTI) || \
1922 ((__SELECTION__) == TIM_ICSELECTION_TRC))
1923
1924 #define IS_TIM_IC_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_ICPSC_DIV1) || \
1925 ((__PRESCALER__) == TIM_ICPSC_DIV2) || \
1926 ((__PRESCALER__) == TIM_ICPSC_DIV4) || \
1927 ((__PRESCALER__) == TIM_ICPSC_DIV8))
1928
1929 #define IS_TIM_CCX_CHANNEL(__INSTANCE__, __CHANNEL__) (IS_TIM_CCX_INSTANCE(__INSTANCE__, __CHANNEL__) && \
1930 ((__CHANNEL__) != (TIM_CHANNEL_5)) && \
1931 ((__CHANNEL__) != (TIM_CHANNEL_6)))
1932
1933 #define IS_TIM_OPM_MODE(__MODE__) (((__MODE__) == TIM_OPMODE_SINGLE) || \
1934 ((__MODE__) == TIM_OPMODE_REPETITIVE))
1935
1936 #define IS_TIM_ENCODER_MODE(__MODE__) (((__MODE__) == TIM_ENCODERMODE_TI1) || \
1937 ((__MODE__) == TIM_ENCODERMODE_TI2) || \
1938 ((__MODE__) == TIM_ENCODERMODE_TI12))
1939
1940 #define IS_TIM_DMA_SOURCE(__SOURCE__) ((((__SOURCE__) & 0xFFFF80FFU) == 0x00000000U) && ((__SOURCE__) != 0x00000000U))
1941
1942 #define IS_TIM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1943 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1944 ((__CHANNEL__) == TIM_CHANNEL_3) || \
1945 ((__CHANNEL__) == TIM_CHANNEL_4) || \
1946 ((__CHANNEL__) == TIM_CHANNEL_5) || \
1947 ((__CHANNEL__) == TIM_CHANNEL_6) || \
1948 ((__CHANNEL__) == TIM_CHANNEL_ALL))
1949
1950 #define IS_TIM_OPM_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1951 ((__CHANNEL__) == TIM_CHANNEL_2))
1952
1953 #define IS_TIM_PERIOD(__HANDLE__, __PERIOD__) ((IS_TIM_32B_COUNTER_INSTANCE(((__HANDLE__)->Instance)) == 0U) ? \
1954 (((__PERIOD__) > 0U) && ((__PERIOD__) <= 0x0000FFFFU)) : \
1955 ((__PERIOD__) > 0U))
1956
1957 #define IS_TIM_COMPLEMENTARY_CHANNELS(__CHANNEL__) (((__CHANNEL__) == TIM_CHANNEL_1) || \
1958 ((__CHANNEL__) == TIM_CHANNEL_2) || \
1959 ((__CHANNEL__) == TIM_CHANNEL_3))
1960
1961 #define IS_TIM_CLOCKSOURCE(__CLOCK__) (((__CLOCK__) == TIM_CLOCKSOURCE_INTERNAL) || \
1962 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE1) || \
1963 ((__CLOCK__) == TIM_CLOCKSOURCE_ETRMODE2) || \
1964 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1ED) || \
1965 ((__CLOCK__) == TIM_CLOCKSOURCE_TI1) || \
1966 ((__CLOCK__) == TIM_CLOCKSOURCE_TI2) || \
1967 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR0) || \
1968 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR1) || \
1969 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR2) || \
1970 ((__CLOCK__) == TIM_CLOCKSOURCE_ITR3))
1971
1972 #define IS_TIM_CLOCKPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLOCKPOLARITY_INVERTED) || \
1973 ((__POLARITY__) == TIM_CLOCKPOLARITY_NONINVERTED) || \
1974 ((__POLARITY__) == TIM_CLOCKPOLARITY_RISING) || \
1975 ((__POLARITY__) == TIM_CLOCKPOLARITY_FALLING) || \
1976 ((__POLARITY__) == TIM_CLOCKPOLARITY_BOTHEDGE))
1977
1978 #define IS_TIM_CLOCKPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV1) || \
1979 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV2) || \
1980 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV4) || \
1981 ((__PRESCALER__) == TIM_CLOCKPRESCALER_DIV8))
1982
1983 #define IS_TIM_CLOCKFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1984
1985 #define IS_TIM_CLEARINPUT_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_CLEARINPUTPOLARITY_INVERTED) || \
1986 ((__POLARITY__) == TIM_CLEARINPUTPOLARITY_NONINVERTED))
1987
1988 #define IS_TIM_CLEARINPUT_PRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV1) || \
1989 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV2) || \
1990 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV4) || \
1991 ((__PRESCALER__) == TIM_CLEARINPUTPRESCALER_DIV8))
1992
1993 #define IS_TIM_CLEARINPUT_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
1994
1995 #define IS_TIM_OSSR_STATE(__STATE__) (((__STATE__) == TIM_OSSR_ENABLE) || \
1996 ((__STATE__) == TIM_OSSR_DISABLE))
1997
1998 #define IS_TIM_OSSI_STATE(__STATE__) (((__STATE__) == TIM_OSSI_ENABLE) || \
1999 ((__STATE__) == TIM_OSSI_DISABLE))
2000
2001 #define IS_TIM_LOCK_LEVEL(__LEVEL__) (((__LEVEL__) == TIM_LOCKLEVEL_OFF) || \
2002 ((__LEVEL__) == TIM_LOCKLEVEL_1) || \
2003 ((__LEVEL__) == TIM_LOCKLEVEL_2) || \
2004 ((__LEVEL__) == TIM_LOCKLEVEL_3))
2005
2006 #define IS_TIM_BREAK_FILTER(__BRKFILTER__) ((__BRKFILTER__) <= 0xFUL)
2007
2008 #define IS_TIM_BREAK_STATE(__STATE__) (((__STATE__) == TIM_BREAK_ENABLE) || \
2009 ((__STATE__) == TIM_BREAK_DISABLE))
2010
2011 #define IS_TIM_BREAK_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAKPOLARITY_LOW) || \
2012 ((__POLARITY__) == TIM_BREAKPOLARITY_HIGH))
2013 #if defined(TIM_BDTR_BKBID)
2014
2015 #define IS_TIM_BREAK_AFMODE(__AFMODE__) (((__AFMODE__) == TIM_BREAK_AFMODE_INPUT) || \
2016 ((__AFMODE__) == TIM_BREAK_AFMODE_BIDIRECTIONAL))
2017
2018 #endif
2019
2020 #define IS_TIM_BREAK2_STATE(__STATE__) (((__STATE__) == TIM_BREAK2_ENABLE) || \
2021 ((__STATE__) == TIM_BREAK2_DISABLE))
2022
2023 #define IS_TIM_BREAK2_POLARITY(__POLARITY__) (((__POLARITY__) == TIM_BREAK2POLARITY_LOW) || \
2024 ((__POLARITY__) == TIM_BREAK2POLARITY_HIGH))
2025 #if defined(TIM_BDTR_BKBID)
2026
2027 #define IS_TIM_BREAK2_AFMODE(__AFMODE__) (((__AFMODE__) == TIM_BREAK2_AFMODE_INPUT) || \
2028 ((__AFMODE__) == TIM_BREAK2_AFMODE_BIDIRECTIONAL))
2029
2030 #endif
2031
2032 #define IS_TIM_AUTOMATIC_OUTPUT_STATE(__STATE__) (((__STATE__) == TIM_AUTOMATICOUTPUT_ENABLE) || \
2033 ((__STATE__) == TIM_AUTOMATICOUTPUT_DISABLE))
2034
2035 #define IS_TIM_GROUPCH5(__OCREF__) ((((__OCREF__) & 0x1FFFFFFFU) == 0x00000000U))
2036
2037 #define IS_TIM_TRGO_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO_RESET) || \
2038 ((__SOURCE__) == TIM_TRGO_ENABLE) || \
2039 ((__SOURCE__) == TIM_TRGO_UPDATE) || \
2040 ((__SOURCE__) == TIM_TRGO_OC1) || \
2041 ((__SOURCE__) == TIM_TRGO_OC1REF) || \
2042 ((__SOURCE__) == TIM_TRGO_OC2REF) || \
2043 ((__SOURCE__) == TIM_TRGO_OC3REF) || \
2044 ((__SOURCE__) == TIM_TRGO_OC4REF))
2045
2046 #define IS_TIM_TRGO2_SOURCE(__SOURCE__) (((__SOURCE__) == TIM_TRGO2_RESET) || \
2047 ((__SOURCE__) == TIM_TRGO2_ENABLE) || \
2048 ((__SOURCE__) == TIM_TRGO2_UPDATE) || \
2049 ((__SOURCE__) == TIM_TRGO2_OC1) || \
2050 ((__SOURCE__) == TIM_TRGO2_OC1REF) || \
2051 ((__SOURCE__) == TIM_TRGO2_OC2REF) || \
2052 ((__SOURCE__) == TIM_TRGO2_OC3REF) || \
2053 ((__SOURCE__) == TIM_TRGO2_OC3REF) || \
2054 ((__SOURCE__) == TIM_TRGO2_OC4REF) || \
2055 ((__SOURCE__) == TIM_TRGO2_OC5REF) || \
2056 ((__SOURCE__) == TIM_TRGO2_OC6REF) || \
2057 ((__SOURCE__) == TIM_TRGO2_OC4REF_RISINGFALLING) || \
2058 ((__SOURCE__) == TIM_TRGO2_OC6REF_RISINGFALLING) || \
2059 ((__SOURCE__) == TIM_TRGO2_OC4REF_RISING_OC6REF_RISING) || \
2060 ((__SOURCE__) == TIM_TRGO2_OC4REF_RISING_OC6REF_FALLING) || \
2061 ((__SOURCE__) == TIM_TRGO2_OC5REF_RISING_OC6REF_RISING) || \
2062 ((__SOURCE__) == TIM_TRGO2_OC5REF_RISING_OC6REF_FALLING))
2063
2064 #define IS_TIM_MSM_STATE(__STATE__) (((__STATE__) == TIM_MASTERSLAVEMODE_ENABLE) || \
2065 ((__STATE__) == TIM_MASTERSLAVEMODE_DISABLE))
2066
2067 #define IS_TIM_SLAVE_MODE(__MODE__) (((__MODE__) == TIM_SLAVEMODE_DISABLE) || \
2068 ((__MODE__) == TIM_SLAVEMODE_RESET) || \
2069 ((__MODE__) == TIM_SLAVEMODE_GATED) || \
2070 ((__MODE__) == TIM_SLAVEMODE_TRIGGER) || \
2071 ((__MODE__) == TIM_SLAVEMODE_EXTERNAL1) || \
2072 ((__MODE__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER))
2073
2074 #define IS_TIM_PWM_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_PWM1) || \
2075 ((__MODE__) == TIM_OCMODE_PWM2) || \
2076 ((__MODE__) == TIM_OCMODE_COMBINED_PWM1) || \
2077 ((__MODE__) == TIM_OCMODE_COMBINED_PWM2) || \
2078 ((__MODE__) == TIM_OCMODE_ASYMMETRIC_PWM1) || \
2079 ((__MODE__) == TIM_OCMODE_ASYMMETRIC_PWM2))
2080
2081 #define IS_TIM_OC_MODE(__MODE__) (((__MODE__) == TIM_OCMODE_TIMING) || \
2082 ((__MODE__) == TIM_OCMODE_ACTIVE) || \
2083 ((__MODE__) == TIM_OCMODE_INACTIVE) || \
2084 ((__MODE__) == TIM_OCMODE_TOGGLE) || \
2085 ((__MODE__) == TIM_OCMODE_FORCED_ACTIVE) || \
2086 ((__MODE__) == TIM_OCMODE_FORCED_INACTIVE) || \
2087 ((__MODE__) == TIM_OCMODE_RETRIGERRABLE_OPM1) || \
2088 ((__MODE__) == TIM_OCMODE_RETRIGERRABLE_OPM2))
2089
2090 #define IS_TIM_TRIGGER_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
2091 ((__SELECTION__) == TIM_TS_ITR1) || \
2092 ((__SELECTION__) == TIM_TS_ITR2) || \
2093 ((__SELECTION__) == TIM_TS_ITR3) || \
2094 ((__SELECTION__) == TIM_TS_ITR4) || \
2095 ((__SELECTION__) == TIM_TS_ITR5) || \
2096 ((__SELECTION__) == TIM_TS_ITR6) || \
2097 ((__SELECTION__) == TIM_TS_ITR7) || \
2098 ((__SELECTION__) == TIM_TS_ITR8) || \
2099 ((__SELECTION__) == TIM_TS_ITR12) || \
2100 ((__SELECTION__) == TIM_TS_ITR13) || \
2101 ((__SELECTION__) == TIM_TS_TI1F_ED) || \
2102 ((__SELECTION__) == TIM_TS_TI1FP1) || \
2103 ((__SELECTION__) == TIM_TS_TI2FP2) || \
2104 ((__SELECTION__) == TIM_TS_ETRF))
2105
2106 #define IS_TIM_INTERNAL_TRIGGEREVENT_SELECTION(__SELECTION__) (((__SELECTION__) == TIM_TS_ITR0) || \
2107 ((__SELECTION__) == TIM_TS_ITR1) || \
2108 ((__SELECTION__) == TIM_TS_ITR2) || \
2109 ((__SELECTION__) == TIM_TS_ITR3) || \
2110 ((__SELECTION__) == TIM_TS_ITR4) || \
2111 ((__SELECTION__) == TIM_TS_ITR5) || \
2112 ((__SELECTION__) == TIM_TS_ITR6) || \
2113 ((__SELECTION__) == TIM_TS_ITR7) || \
2114 ((__SELECTION__) == TIM_TS_ITR8) || \
2115 ((__SELECTION__) == TIM_TS_ITR12) || \
2116 ((__SELECTION__) == TIM_TS_ITR13) || \
2117 ((__SELECTION__) == TIM_TS_NONE))
2118
2119 #define IS_TIM_TRIGGERPOLARITY(__POLARITY__) (((__POLARITY__) == TIM_TRIGGERPOLARITY_INVERTED ) || \
2120 ((__POLARITY__) == TIM_TRIGGERPOLARITY_NONINVERTED) || \
2121 ((__POLARITY__) == TIM_TRIGGERPOLARITY_RISING ) || \
2122 ((__POLARITY__) == TIM_TRIGGERPOLARITY_FALLING ) || \
2123 ((__POLARITY__) == TIM_TRIGGERPOLARITY_BOTHEDGE ))
2124
2125 #define IS_TIM_TRIGGERPRESCALER(__PRESCALER__) (((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV1) || \
2126 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV2) || \
2127 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV4) || \
2128 ((__PRESCALER__) == TIM_TRIGGERPRESCALER_DIV8))
2129
2130 #define IS_TIM_TRIGGERFILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
2131
2132 #define IS_TIM_TI1SELECTION(__TI1SELECTION__) (((__TI1SELECTION__) == TIM_TI1SELECTION_CH1) || \
2133 ((__TI1SELECTION__) == TIM_TI1SELECTION_XORCOMBINATION))
2134
2135 #define IS_TIM_DMA_LENGTH(__LENGTH__) (((__LENGTH__) == TIM_DMABURSTLENGTH_1TRANSFER) || \
2136 ((__LENGTH__) == TIM_DMABURSTLENGTH_2TRANSFERS) || \
2137 ((__LENGTH__) == TIM_DMABURSTLENGTH_3TRANSFERS) || \
2138 ((__LENGTH__) == TIM_DMABURSTLENGTH_4TRANSFERS) || \
2139 ((__LENGTH__) == TIM_DMABURSTLENGTH_5TRANSFERS) || \
2140 ((__LENGTH__) == TIM_DMABURSTLENGTH_6TRANSFERS) || \
2141 ((__LENGTH__) == TIM_DMABURSTLENGTH_7TRANSFERS) || \
2142 ((__LENGTH__) == TIM_DMABURSTLENGTH_8TRANSFERS) || \
2143 ((__LENGTH__) == TIM_DMABURSTLENGTH_9TRANSFERS) || \
2144 ((__LENGTH__) == TIM_DMABURSTLENGTH_10TRANSFERS) || \
2145 ((__LENGTH__) == TIM_DMABURSTLENGTH_11TRANSFERS) || \
2146 ((__LENGTH__) == TIM_DMABURSTLENGTH_12TRANSFERS) || \
2147 ((__LENGTH__) == TIM_DMABURSTLENGTH_13TRANSFERS) || \
2148 ((__LENGTH__) == TIM_DMABURSTLENGTH_14TRANSFERS) || \
2149 ((__LENGTH__) == TIM_DMABURSTLENGTH_15TRANSFERS) || \
2150 ((__LENGTH__) == TIM_DMABURSTLENGTH_16TRANSFERS) || \
2151 ((__LENGTH__) == TIM_DMABURSTLENGTH_17TRANSFERS) || \
2152 ((__LENGTH__) == TIM_DMABURSTLENGTH_18TRANSFERS))
2153
2154 #define IS_TIM_DMA_DATA_LENGTH(LENGTH) (((LENGTH) >= 0x1U) && ((LENGTH) < 0x10000U))
2155
2156 #define IS_TIM_IC_FILTER(__ICFILTER__) ((__ICFILTER__) <= 0xFU)
2157
2158 #define IS_TIM_DEADTIME(__DEADTIME__) ((__DEADTIME__) <= 0xFFU)
2159
2160 #define IS_TIM_BREAK_SYSTEM(__CONFIG__) (((__CONFIG__) == TIM_BREAK_SYSTEM_ECC) || \
2161 ((__CONFIG__) == TIM_BREAK_SYSTEM_PVD) || \
2162 ((__CONFIG__) == TIM_BREAK_SYSTEM_SRAM_PARITY_ERROR) || \
2163 ((__CONFIG__) == TIM_BREAK_SYSTEM_LOCKUP))
2164
2165 #define IS_TIM_SLAVEMODE_TRIGGER_ENABLED(__TRIGGER__) (((__TRIGGER__) == TIM_SLAVEMODE_TRIGGER) || \
2166 ((__TRIGGER__) == TIM_SLAVEMODE_COMBINED_RESETTRIGGER))
2167
2168 #define TIM_SET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__, __ICPSC__) \
2169 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 |= (__ICPSC__)) :\
2170 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 |= ((__ICPSC__) << 8U)) :\
2171 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 |= (__ICPSC__)) :\
2172 ((__HANDLE__)->Instance->CCMR2 |= ((__ICPSC__) << 8U)))
2173
2174 #define TIM_RESET_ICPRESCALERVALUE(__HANDLE__, __CHANNEL__) \
2175 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC) :\
2176 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC) :\
2177 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC) :\
2178 ((__HANDLE__)->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC))
2179
2180 #define TIM_SET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__, __POLARITY__) \
2181 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER |= (__POLARITY__)) :\
2182 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 4U)) :\
2183 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER |= ((__POLARITY__) << 8U)) :\
2184 ((__HANDLE__)->Instance->CCER |= (((__POLARITY__) << 12U))))
2185
2186 #define TIM_RESET_CAPTUREPOLARITY(__HANDLE__, __CHANNEL__) \
2187 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP)) :\
2188 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP)) :\
2189 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP)) :\
2190 ((__HANDLE__)->Instance->CCER &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP)))
2191
2192 #define TIM_CHANNEL_STATE_GET(__HANDLE__, __CHANNEL__)\
2193 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelState[0] :\
2194 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelState[1] :\
2195 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelState[2] :\
2196 ((__CHANNEL__) == TIM_CHANNEL_4) ? (__HANDLE__)->ChannelState[3] :\
2197 ((__CHANNEL__) == TIM_CHANNEL_5) ? (__HANDLE__)->ChannelState[4] :\
2198 (__HANDLE__)->ChannelState[5])
2199
2200 #define TIM_CHANNEL_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
2201 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelState[0] = (__CHANNEL_STATE__)) :\
2202 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelState[1] = (__CHANNEL_STATE__)) :\
2203 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelState[2] = (__CHANNEL_STATE__)) :\
2204 ((__CHANNEL__) == TIM_CHANNEL_4) ? ((__HANDLE__)->ChannelState[3] = (__CHANNEL_STATE__)) :\
2205 ((__CHANNEL__) == TIM_CHANNEL_5) ? ((__HANDLE__)->ChannelState[4] = (__CHANNEL_STATE__)) :\
2206 ((__HANDLE__)->ChannelState[5] = (__CHANNEL_STATE__)))
2207
2208 #define TIM_CHANNEL_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
2209 (__HANDLE__)->ChannelState[0] = \
2210 (__CHANNEL_STATE__); \
2211 (__HANDLE__)->ChannelState[1] = \
2212 (__CHANNEL_STATE__); \
2213 (__HANDLE__)->ChannelState[2] = \
2214 (__CHANNEL_STATE__); \
2215 (__HANDLE__)->ChannelState[3] = \
2216 (__CHANNEL_STATE__); \
2217 (__HANDLE__)->ChannelState[4] = \
2218 (__CHANNEL_STATE__); \
2219 (__HANDLE__)->ChannelState[5] = \
2220 (__CHANNEL_STATE__); \
2221 } while(0)
2222
2223 #define TIM_CHANNEL_N_STATE_GET(__HANDLE__, __CHANNEL__)\
2224 (((__CHANNEL__) == TIM_CHANNEL_1) ? (__HANDLE__)->ChannelNState[0] :\
2225 ((__CHANNEL__) == TIM_CHANNEL_2) ? (__HANDLE__)->ChannelNState[1] :\
2226 ((__CHANNEL__) == TIM_CHANNEL_3) ? (__HANDLE__)->ChannelNState[2] :\
2227 (__HANDLE__)->ChannelNState[3])
2228
2229 #define TIM_CHANNEL_N_STATE_SET(__HANDLE__, __CHANNEL__, __CHANNEL_STATE__) \
2230 (((__CHANNEL__) == TIM_CHANNEL_1) ? ((__HANDLE__)->ChannelNState[0] = (__CHANNEL_STATE__)) :\
2231 ((__CHANNEL__) == TIM_CHANNEL_2) ? ((__HANDLE__)->ChannelNState[1] = (__CHANNEL_STATE__)) :\
2232 ((__CHANNEL__) == TIM_CHANNEL_3) ? ((__HANDLE__)->ChannelNState[2] = (__CHANNEL_STATE__)) :\
2233 ((__HANDLE__)->ChannelNState[3] = (__CHANNEL_STATE__)))
2234
2235 #define TIM_CHANNEL_N_STATE_SET_ALL(__HANDLE__, __CHANNEL_STATE__) do { \
2236 (__HANDLE__)->ChannelNState[0] = \
2237 (__CHANNEL_STATE__); \
2238 (__HANDLE__)->ChannelNState[1] = \
2239 (__CHANNEL_STATE__); \
2240 (__HANDLE__)->ChannelNState[2] = \
2241 (__CHANNEL_STATE__); \
2242 (__HANDLE__)->ChannelNState[3] = \
2243 (__CHANNEL_STATE__); \
2244 } while(0)
2245
2246
2247
2248
2249
2250
2251
2252 #include "stm32h7xx_hal_tim_ex.h"
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264 HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim);
2265 HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim);
2266 void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);
2267 void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim);
2268
2269 HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim);
2270 HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim);
2271
2272 HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
2273 HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim);
2274
2275 HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length);
2276 HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim);
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286 HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim);
2287 HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim);
2288 void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim);
2289 void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim);
2290
2291 HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
2292 HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
2293
2294 HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2295 HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2296
2297 HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
2298 uint16_t Length);
2299 HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309 HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim);
2310 HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim);
2311 void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim);
2312 void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim);
2313
2314 HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
2315 HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
2316
2317 HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2318 HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2319
2320 HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData,
2321 uint16_t Length);
2322 HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332 HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim);
2333 HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim);
2334 void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim);
2335 void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim);
2336
2337 HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
2338 HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
2339
2340 HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2341 HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2342
2343 HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length);
2344 HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354 HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode);
2355 HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim);
2356 void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim);
2357 void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim);
2358
2359 HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
2360 HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
2361
2362 HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
2363 HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel);
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373 HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig);
2374 HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim);
2375 void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim);
2376 void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim);
2377
2378 HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
2379 HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel);
2380
2381 HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2382 HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel);
2383
2384 HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1,
2385 uint32_t *pData2, uint16_t Length);
2386 HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel);
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396 void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim);
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407 HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig,
2408 uint32_t Channel);
2409 HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig,
2410 uint32_t Channel);
2411 HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig,
2412 uint32_t Channel);
2413 HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig,
2414 uint32_t OutputChannel, uint32_t InputChannel);
2415 HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim,
2416 const TIM_ClearInputConfigTypeDef *sClearInputConfig,
2417 uint32_t Channel);
2418 HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig);
2419 HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection);
2420 HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig);
2421 HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig);
2422 HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2423 uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2424 uint32_t BurstLength);
2425 HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2426 uint32_t BurstRequestSrc, const uint32_t *BurstBuffer,
2427 uint32_t BurstLength, uint32_t DataLength);
2428 HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
2429 HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2430 uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength);
2431 HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress,
2432 uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
2433 uint32_t BurstLength, uint32_t DataLength);
2434 HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc);
2435 HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource);
2436 uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel);
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447 void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
2448 void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim);
2449 void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim);
2450 void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim);
2451 void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim);
2452 void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim);
2453 void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim);
2454 void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim);
2455 void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim);
2456 void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim);
2457
2458
2459 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2460 HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID,
2461 pTIM_CallbackTypeDef pCallback);
2462 HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID);
2463 #endif
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475 HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim);
2476 HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim);
2477 HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim);
2478 HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim);
2479 HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim);
2480 HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim);
2481
2482
2483 HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim);
2484 HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel);
2485 HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim);
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500 void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure);
2501 void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter);
2502 void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config);
2503 void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler,
2504 uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter);
2505
2506 void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma);
2507 void TIM_DMAError(DMA_HandleTypeDef *hdma);
2508 void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma);
2509 void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma);
2510 void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState);
2511
2512 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2513 void TIM_ResetCallback(TIM_HandleTypeDef *htim);
2514 #endif
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529 #ifdef __cplusplus
2530 }
2531 #endif
2532
2533 #endif