198 #ifdef HAL_TIM_MODULE_ENABLED 214 static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
215 uint32_t TIM_ICFilter);
217 static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
218 uint32_t TIM_ICFilter);
219 static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
220 uint32_t TIM_ICFilter);
278 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
279 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
280 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
287 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 291 if (htim->Base_MspInitCallback == NULL)
296 htim->Base_MspInitCallback(htim);
328 __HAL_TIM_DISABLE(htim);
330 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 331 if (htim->Base_MspDeInitCallback == NULL)
336 htim->Base_MspDeInitCallback(htim);
398 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
399 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
401 __HAL_TIM_ENABLE(htim);
425 __HAL_TIM_DISABLE(htim);
447 __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
450 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
451 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
453 __HAL_TIM_ENABLE(htim);
470 __HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE);
473 __HAL_TIM_DISABLE(htim);
499 if ((pData == NULL) && (Length > 0U))
518 htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback =
TIM_DMAError ;
521 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)pData, (uint32_t)&htim->Instance->ARR, Length) !=
HAL_OK)
527 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE);
530 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
531 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
533 __HAL_TIM_ENABLE(htim);
551 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_UPDATE);
556 __HAL_TIM_DISABLE(htim);
610 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
611 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
612 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
619 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 623 if (htim->OC_MspInitCallback == NULL)
628 htim->OC_MspInitCallback(htim);
660 __HAL_TIM_DISABLE(htim);
662 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 663 if (htim->OC_MspDeInitCallback == NULL)
668 htim->OC_MspDeInitCallback(htim);
731 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
736 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
739 __HAL_TIM_MOE_ENABLE(htim);
743 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
744 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
746 __HAL_TIM_ENABLE(htim);
769 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
774 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
777 __HAL_TIM_MOE_DISABLE(htim);
781 __HAL_TIM_DISABLE(htim);
803 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
810 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
817 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
824 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
831 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
842 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
845 __HAL_TIM_MOE_ENABLE(htim);
849 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
850 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
852 __HAL_TIM_ENABLE(htim);
873 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
880 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
887 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
894 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
901 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
912 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
915 __HAL_TIM_MOE_DISABLE(htim);
919 __HAL_TIM_DISABLE(htim);
943 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
951 if ((pData == NULL) && (Length > 0U))
974 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
977 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, Length) !=
HAL_OK)
983 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
994 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
997 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, Length) !=
HAL_OK)
1003 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1014 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
1017 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, Length) !=
HAL_OK)
1022 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1033 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
1036 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, Length) !=
HAL_OK)
1041 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1052 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1055 __HAL_TIM_MOE_ENABLE(htim);
1059 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1060 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1062 __HAL_TIM_ENABLE(htim);
1083 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1090 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
1098 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
1106 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
1114 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
1126 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1129 __HAL_TIM_MOE_DISABLE(htim);
1133 __HAL_TIM_DISABLE(htim);
1187 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
1188 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
1189 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
1196 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 1200 if (htim->PWM_MspInitCallback == NULL)
1205 htim->PWM_MspInitCallback(htim);
1237 __HAL_TIM_DISABLE(htim);
1239 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 1240 if (htim->PWM_MspDeInitCallback == NULL)
1245 htim->PWM_MspDeInitCallback(htim);
1308 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1313 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1316 __HAL_TIM_MOE_ENABLE(htim);
1320 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1321 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1323 __HAL_TIM_ENABLE(htim);
1346 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1351 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1354 __HAL_TIM_MOE_DISABLE(htim);
1358 __HAL_TIM_DISABLE(htim);
1382 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1389 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
1396 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
1403 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
1410 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
1421 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1424 __HAL_TIM_MOE_ENABLE(htim);
1428 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1429 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1431 __HAL_TIM_ENABLE(htim);
1452 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1459 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
1466 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
1473 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
1480 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
1491 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1494 __HAL_TIM_MOE_DISABLE(htim);
1498 __HAL_TIM_DISABLE(htim);
1522 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1530 if ((pData == NULL) && (Length > 0U))
1553 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
1556 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1, Length) !=
HAL_OK)
1562 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
1573 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
1576 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2, Length) !=
HAL_OK)
1581 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1592 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
1595 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3, Length) !=
HAL_OK)
1600 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1611 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
1614 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4, Length) !=
HAL_OK)
1619 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1630 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1633 __HAL_TIM_MOE_ENABLE(htim);
1637 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1638 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1640 __HAL_TIM_ENABLE(htim);
1661 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1668 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
1676 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
1684 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
1692 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
1704 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1707 __HAL_TIM_MOE_DISABLE(htim);
1711 __HAL_TIM_DISABLE(htim);
1765 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
1766 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
1767 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
1774 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 1778 if (htim->IC_MspInitCallback == NULL)
1783 htim->IC_MspInitCallback(htim);
1815 __HAL_TIM_DISABLE(htim);
1817 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 1818 if (htim->IC_MspDeInitCallback == NULL)
1823 htim->IC_MspDeInitCallback(htim);
1884 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1890 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1891 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1893 __HAL_TIM_ENABLE(htim);
1914 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1920 __HAL_TIM_DISABLE(htim);
1942 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1949 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
1956 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
1963 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
1970 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
1981 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1982 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1984 __HAL_TIM_ENABLE(htim);
2005 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2012 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
2019 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
2026 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
2033 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
2045 __HAL_TIM_DISABLE(htim);
2069 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2078 if ((pData == NULL) && (Length > 0U))
2101 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
2104 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData, Length) !=
HAL_OK)
2109 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
2120 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
2123 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData, Length) !=
HAL_OK)
2128 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
2139 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
2142 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->CCR3, (uint32_t)pData, Length) !=
HAL_OK)
2147 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
2158 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
2161 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->CCR4, (uint32_t)pData, Length) !=
HAL_OK)
2166 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
2178 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
2179 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
2181 __HAL_TIM_ENABLE(htim);
2202 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2210 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
2218 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
2226 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
2234 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
2247 __HAL_TIM_DISABLE(htim);
2304 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
2305 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
2307 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
2314 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 2318 if (htim->OnePulse_MspInitCallback == NULL)
2323 htim->OnePulse_MspInitCallback(htim);
2337 htim->Instance->CR1 &= ~TIM_CR1_OPM;
2340 htim->Instance->CR1 |= OnePulseMode;
2361 __HAL_TIM_DISABLE(htim);
2363 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 2364 if (htim->OnePulse_MspDeInitCallback == NULL)
2369 htim->OnePulse_MspDeInitCallback(htim);
2426 UNUSED(OutputChannel);
2440 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2443 __HAL_TIM_MOE_ENABLE(htim);
2462 UNUSED(OutputChannel);
2473 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2476 __HAL_TIM_MOE_DISABLE(htim);
2480 __HAL_TIM_DISABLE(htim);
2498 UNUSED(OutputChannel);
2510 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
2513 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
2518 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2521 __HAL_TIM_MOE_ENABLE(htim);
2540 UNUSED(OutputChannel);
2543 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
2546 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
2556 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2559 __HAL_TIM_MOE_DISABLE(htim);
2563 __HAL_TIM_DISABLE(htim);
2620 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
2621 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
2622 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
2639 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 2643 if (htim->Encoder_MspInitCallback == NULL)
2648 htim->Encoder_MspInitCallback(htim);
2659 htim->Instance->SMCR &= ~(TIM_SMCR_SMS | TIM_SMCR_ECE);
2665 tmpsmcr = htim->Instance->SMCR;
2668 tmpccmr1 = htim->Instance->CCMR1;
2671 tmpccer = htim->Instance->CCER;
2677 tmpccmr1 &= ~(TIM_CCMR1_CC1S | TIM_CCMR1_CC2S);
2681 tmpccmr1 &= ~(TIM_CCMR1_IC1PSC | TIM_CCMR1_IC2PSC);
2682 tmpccmr1 &= ~(TIM_CCMR1_IC1F | TIM_CCMR1_IC2F);
2687 tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC2P);
2688 tmpccer &= ~(TIM_CCER_CC1NP | TIM_CCER_CC2NP);
2692 htim->Instance->SMCR = tmpsmcr;
2695 htim->Instance->CCMR1 = tmpccmr1;
2698 htim->Instance->CCER = tmpccer;
2720 __HAL_TIM_DISABLE(htim);
2722 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 2723 if (htim->Encoder_MspDeInitCallback == NULL)
2728 htim->Encoder_MspDeInitCallback(htim);
2811 __HAL_TIM_ENABLE(htim);
2857 __HAL_TIM_DISABLE(htim);
2885 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
2892 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
2900 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
2901 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
2907 __HAL_TIM_ENABLE(htim);
2930 if (Channel == TIM_CHANNEL_1)
2935 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
2937 else if (Channel == TIM_CHANNEL_2)
2942 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
2950 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
2951 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
2955 __HAL_TIM_DISABLE(htim);
2978 uint32_t *pData2, uint16_t Length)
2989 if ((((pData1 == NULL) || (pData2 == NULL))) && (Length > 0U))
3012 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
3015 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1, Length) !=
HAL_OK)
3020 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
3023 __HAL_TIM_ENABLE(htim);
3037 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError;
3039 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2, Length) !=
HAL_OK)
3044 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
3047 __HAL_TIM_ENABLE(htim);
3054 case TIM_CHANNEL_ALL:
3061 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
3064 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1, Length) !=
HAL_OK)
3074 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
3077 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2, Length) !=
HAL_OK)
3082 __HAL_TIM_ENABLE(htim);
3089 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
3091 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
3119 if (Channel == TIM_CHANNEL_1)
3124 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
3127 else if (Channel == TIM_CHANNEL_2)
3132 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
3141 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
3142 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
3148 __HAL_TIM_DISABLE(htim);
3181 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC1) != RESET)
3183 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC1) != RESET)
3186 __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC1);
3190 if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
3192 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3193 htim->IC_CaptureCallback(htim);
3201 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3202 htim->OC_DelayElapsedCallback(htim);
3203 htim->PWM_PulseFinishedCallback(htim);
3214 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC2) != RESET)
3216 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC2) != RESET)
3218 __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC2);
3221 if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
3223 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3224 htim->IC_CaptureCallback(htim);
3232 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3233 htim->OC_DelayElapsedCallback(htim);
3234 htim->PWM_PulseFinishedCallback(htim);
3244 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC3) != RESET)
3246 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC3) != RESET)
3248 __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC3);
3251 if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
3253 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3254 htim->IC_CaptureCallback(htim);
3262 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3263 htim->OC_DelayElapsedCallback(htim);
3264 htim->PWM_PulseFinishedCallback(htim);
3274 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_CC4) != RESET)
3276 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_CC4) != RESET)
3278 __HAL_TIM_CLEAR_IT(htim, TIM_IT_CC4);
3281 if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
3283 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3284 htim->IC_CaptureCallback(htim);
3292 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3293 htim->OC_DelayElapsedCallback(htim);
3294 htim->PWM_PulseFinishedCallback(htim);
3304 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_UPDATE) != RESET)
3306 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_UPDATE) != RESET)
3308 __HAL_TIM_CLEAR_IT(htim, TIM_IT_UPDATE);
3309 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3310 htim->PeriodElapsedCallback(htim);
3317 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK) != RESET)
3319 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
3321 __HAL_TIM_CLEAR_IT(htim, TIM_IT_BREAK);
3322 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3323 htim->BreakCallback(htim);
3330 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_BREAK2) != RESET)
3332 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_BREAK) != RESET)
3334 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK2);
3335 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3336 htim->Break2Callback(htim);
3343 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_TRIGGER) != RESET)
3345 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_TRIGGER) != RESET)
3347 __HAL_TIM_CLEAR_IT(htim, TIM_IT_TRIGGER);
3348 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3349 htim->TriggerCallback(htim);
3356 if (__HAL_TIM_GET_FLAG(htim, TIM_FLAG_COM) != RESET)
3358 if (__HAL_TIM_GET_IT_SOURCE(htim, TIM_IT_COM) != RESET)
3360 __HAL_TIM_CLEAR_IT(htim, TIM_FLAG_COM);
3361 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 3362 htim->CommutationCallback(htim);
3522 if (Channel == TIM_CHANNEL_1)
3531 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC;
3536 else if (Channel == TIM_CHANNEL_2)
3547 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC;
3550 htim->Instance->CCMR1 |= (sConfig->
ICPrescaler << 8U);
3552 else if (Channel == TIM_CHANNEL_3)
3563 htim->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC;
3579 htim->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC;
3582 htim->Instance->CCMR2 |= (sConfig->
ICPrescaler << 8U);
3633 htim->Instance->CCMR1 |= TIM_CCMR1_OC1PE;
3636 htim->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE;
3637 htim->Instance->CCMR1 |= sConfig->
OCFastMode;
3650 htim->Instance->CCMR1 |= TIM_CCMR1_OC2PE;
3653 htim->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE;
3654 htim->Instance->CCMR1 |= sConfig->
OCFastMode << 8U;
3667 htim->Instance->CCMR2 |= TIM_CCMR2_OC3PE;
3670 htim->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE;
3671 htim->Instance->CCMR2 |= sConfig->
OCFastMode;
3684 htim->Instance->CCMR2 |= TIM_CCMR2_OC4PE;
3687 htim->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE;
3688 htim->Instance->CCMR2 |= sConfig->
OCFastMode << 8U;
3701 htim->Instance->CCMR3 |= TIM_CCMR3_OC5PE;
3704 htim->Instance->CCMR3 &= ~TIM_CCMR3_OC5FE;
3705 htim->Instance->CCMR3 |= sConfig->
OCFastMode;
3718 htim->Instance->CCMR3 |= TIM_CCMR3_OC6PE;
3721 htim->Instance->CCMR3 &= ~TIM_CCMR3_OC6FE;
3722 htim->Instance->CCMR3 |= sConfig->
OCFastMode << 8U;
3753 uint32_t OutputChannel, uint32_t InputChannel)
3761 if (OutputChannel != InputChannel)
3776 switch (OutputChannel)
3796 switch (InputChannel)
3806 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC;
3809 htim->Instance->SMCR &= ~TIM_SMCR_TS;
3810 htim->Instance->SMCR |= TIM_TS_TI1FP1;
3813 htim->Instance->SMCR &= ~TIM_SMCR_SMS;
3814 htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER;
3825 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC;
3828 htim->Instance->SMCR &= ~TIM_SMCR_TS;
3829 htim->Instance->SMCR |= TIM_TS_TI2FP2;
3832 htim->Instance->SMCR &= ~TIM_SMCR_SMS;
3833 htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER;
3898 uint32_t *BurstBuffer, uint32_t BurstLength)
3901 assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
3912 if ((BurstBuffer == NULL) && (BurstLength > 0U))
3925 switch (BurstRequestSrc)
3927 case TIM_DMA_UPDATE:
3934 htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback =
TIM_DMAError ;
3937 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)BurstBuffer, (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
3950 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
3954 (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
3967 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
3971 (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
3984 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
3988 (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4001 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
4005 (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4018 htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback =
TIM_DMAError ;
4021 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)BurstBuffer,
4022 (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4028 case TIM_DMA_TRIGGER:
4035 htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback =
TIM_DMAError ;
4038 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)BurstBuffer,
4039 (uint32_t)&htim->Instance->DMAR, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4049 htim->Instance->DCR = (BurstBaseAddress | BurstLength);
4052 __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc);
4068 HAL_StatusTypeDef status =
HAL_OK;
4073 switch (BurstRequestSrc)
4075 case TIM_DMA_UPDATE:
4105 case TIM_DMA_TRIGGER:
4117 __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4169 uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
4172 assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
4183 if ((BurstBuffer == NULL) && (BurstLength > 0U))
4196 switch (BurstRequestSrc)
4198 case TIM_DMA_UPDATE:
4205 htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback =
TIM_DMAError ;
4208 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4221 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
4224 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4237 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
4240 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4253 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
4256 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4269 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
4272 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4285 htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback =
TIM_DMAError ;
4288 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4294 case TIM_DMA_TRIGGER:
4301 htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback =
TIM_DMAError ;
4304 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer, ((BurstLength) >> 8U) + 1U) !=
HAL_OK)
4315 htim->Instance->DCR = (BurstBaseAddress | BurstLength);
4318 __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc);
4334 HAL_StatusTypeDef status =
HAL_OK;
4339 switch (BurstRequestSrc)
4341 case TIM_DMA_UPDATE:
4371 case TIM_DMA_TRIGGER:
4383 __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4424 htim->Instance->EGR = EventSource;
4455 assert_param(IS_TIM_OCXREF_CLEAR_INSTANCE(htim->Instance));
4465 case TIM_CLEARINPUTSOURCE_NONE:
4468 CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_OCCS | TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP));
4471 case TIM_CLEARINPUTSOURCE_OCREFCLR:
4474 CLEAR_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS);
4478 case TIM_CLEARINPUTSOURCE_ETR:
4499 SET_BIT(htim->Instance->SMCR, TIM_SMCR_OCCS);
4514 SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE);
4519 CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE);
4528 SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE);
4533 CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE);
4542 SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE);
4547 CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE);
4556 SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE);
4561 CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE);
4570 SET_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC5CE);
4575 CLEAR_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC5CE);
4584 SET_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC6CE);
4589 CLEAR_BIT(htim->Instance->CCMR3, TIM_CCMR3_OC6CE);
4624 tmpsmcr = htim->Instance->SMCR;
4625 tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS);
4626 tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP);
4627 htim->Instance->SMCR = tmpsmcr;
4631 case TIM_CLOCKSOURCE_INTERNAL:
4637 case TIM_CLOCKSOURCE_ETRMODE1:
4640 assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance));
4654 tmpsmcr = htim->Instance->SMCR;
4655 tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1);
4657 htim->Instance->SMCR = tmpsmcr;
4661 case TIM_CLOCKSOURCE_ETRMODE2:
4664 assert_param(IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(htim->Instance));
4677 htim->Instance->SMCR |= TIM_SMCR_ECE;
4681 case TIM_CLOCKSOURCE_TI1:
4684 assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
4697 case TIM_CLOCKSOURCE_TI2:
4700 assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
4713 case TIM_CLOCKSOURCE_TI1ED:
4716 assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
4729 case TIM_CLOCKSOURCE_ITR0:
4730 case TIM_CLOCKSOURCE_ITR1:
4731 case TIM_CLOCKSOURCE_ITR2:
4732 case TIM_CLOCKSOURCE_ITR3:
4735 assert_param(IS_TIM_CLOCKSOURCE_ITRX_INSTANCE(htim->Instance));
4772 tmpcr2 = htim->Instance->CR2;
4775 tmpcr2 &= ~TIM_CR2_TI1S;
4778 tmpcr2 |= TI1_Selection;
4781 htim->Instance->CR2 = tmpcr2;
4814 __HAL_TIM_DISABLE_IT(htim, TIM_IT_TRIGGER);
4817 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER);
4855 __HAL_TIM_ENABLE_IT(htim, TIM_IT_TRIGGER);
4858 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER);
4880 uint32_t tmpreg = 0U;
4890 tmpreg = htim->Instance->CCR1;
4900 tmpreg = htim->Instance->CCR2;
4911 tmpreg = htim->Instance->CCR3;
4922 tmpreg = htim->Instance->CCR4;
5107 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5147 HAL_StatusTypeDef status =
HAL_OK;
5149 if (pCallback == NULL)
5161 htim->Base_MspInitCallback = pCallback;
5165 htim->Base_MspDeInitCallback = pCallback;
5169 htim->IC_MspInitCallback = pCallback;
5173 htim->IC_MspDeInitCallback = pCallback;
5177 htim->OC_MspInitCallback = pCallback;
5181 htim->OC_MspDeInitCallback = pCallback;
5185 htim->PWM_MspInitCallback = pCallback;
5189 htim->PWM_MspDeInitCallback = pCallback;
5193 htim->OnePulse_MspInitCallback = pCallback;
5197 htim->OnePulse_MspDeInitCallback = pCallback;
5201 htim->Encoder_MspInitCallback = pCallback;
5205 htim->Encoder_MspDeInitCallback = pCallback;
5209 htim->HallSensor_MspInitCallback = pCallback;
5213 htim->HallSensor_MspDeInitCallback = pCallback;
5217 htim->PeriodElapsedCallback = pCallback;
5221 htim->PeriodElapsedHalfCpltCallback = pCallback;
5225 htim->TriggerCallback = pCallback;
5229 htim->TriggerHalfCpltCallback = pCallback;
5233 htim->IC_CaptureCallback = pCallback;
5237 htim->IC_CaptureHalfCpltCallback = pCallback;
5241 htim->OC_DelayElapsedCallback = pCallback;
5245 htim->PWM_PulseFinishedCallback = pCallback;
5249 htim->PWM_PulseFinishedHalfCpltCallback = pCallback;
5253 htim->ErrorCallback = pCallback;
5257 htim->CommutationCallback = pCallback;
5261 htim->CommutationHalfCpltCallback = pCallback;
5265 htim->BreakCallback = pCallback;
5269 htim->Break2Callback = pCallback;
5283 htim->Base_MspInitCallback = pCallback;
5287 htim->Base_MspDeInitCallback = pCallback;
5291 htim->IC_MspInitCallback = pCallback;
5295 htim->IC_MspDeInitCallback = pCallback;
5299 htim->OC_MspInitCallback = pCallback;
5303 htim->OC_MspDeInitCallback = pCallback;
5307 htim->PWM_MspInitCallback = pCallback;
5311 htim->PWM_MspDeInitCallback = pCallback;
5315 htim->OnePulse_MspInitCallback = pCallback;
5319 htim->OnePulse_MspDeInitCallback = pCallback;
5323 htim->Encoder_MspInitCallback = pCallback;
5327 htim->Encoder_MspDeInitCallback = pCallback;
5331 htim->HallSensor_MspInitCallback = pCallback;
5335 htim->HallSensor_MspDeInitCallback = pCallback;
5394 HAL_StatusTypeDef status =
HAL_OK;
5702 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5703 htim->ErrorCallback(htim);
5720 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
5724 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
5728 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
5732 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
5741 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5742 htim->PWM_PulseFinishedCallback(htim);
5761 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
5765 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
5769 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
5773 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
5782 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5783 htim->PWM_PulseFinishedHalfCpltCallback(htim);
5802 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
5806 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
5810 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
5814 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
5823 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5824 htim->IC_CaptureCallback(htim);
5843 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
5847 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
5851 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
5855 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
5864 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5865 htim->IC_CaptureHalfCpltCallback(htim);
5884 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5885 htim->PeriodElapsedCallback(htim);
5902 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5903 htim->PeriodElapsedHalfCpltCallback(htim);
5920 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5921 htim->TriggerCallback(htim);
5938 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1) 5939 htim->TriggerHalfCpltCallback(htim);
5957 if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
5960 tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
5964 if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
5967 tmpcr1 &= ~TIM_CR1_CKD;
5977 TIMx->ARR = (uint32_t)Structure->
Period ;
5982 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
5990 TIMx->EGR = TIM_EGR_UG;
6006 TIMx->CCER &= ~TIM_CCER_CC1E;
6009 tmpccer = TIMx->CCER;
6014 tmpccmrx = TIMx->CCMR1;
6017 tmpccmrx &= ~TIM_CCMR1_OC1M;
6018 tmpccmrx &= ~TIM_CCMR1_CC1S;
6020 tmpccmrx |= OC_Config->
OCMode;
6023 tmpccer &= ~TIM_CCER_CC1P;
6027 if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_1))
6033 tmpccer &= ~TIM_CCER_CC1NP;
6037 tmpccer &= ~TIM_CCER_CC1NE;
6040 if (IS_TIM_BREAK_INSTANCE(TIMx))
6047 tmpcr2 &= ~TIM_CR2_OIS1;
6048 tmpcr2 &= ~TIM_CR2_OIS1N;
6059 TIMx->CCMR1 = tmpccmrx;
6062 TIMx->CCR1 = OC_Config->
Pulse;
6065 TIMx->CCER = tmpccer;
6081 TIMx->CCER &= ~TIM_CCER_CC2E;
6084 tmpccer = TIMx->CCER;
6089 tmpccmrx = TIMx->CCMR1;
6092 tmpccmrx &= ~TIM_CCMR1_OC2M;
6093 tmpccmrx &= ~TIM_CCMR1_CC2S;
6096 tmpccmrx |= (OC_Config->
OCMode << 8U);
6099 tmpccer &= ~TIM_CCER_CC2P;
6103 if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2))
6108 tmpccer &= ~TIM_CCER_CC2NP;
6112 tmpccer &= ~TIM_CCER_CC2NE;
6116 if (IS_TIM_BREAK_INSTANCE(TIMx))
6123 tmpcr2 &= ~TIM_CR2_OIS2;
6124 tmpcr2 &= ~TIM_CR2_OIS2N;
6135 TIMx->CCMR1 = tmpccmrx;
6138 TIMx->CCR2 = OC_Config->
Pulse;
6141 TIMx->CCER = tmpccer;
6157 TIMx->CCER &= ~TIM_CCER_CC3E;
6160 tmpccer = TIMx->CCER;
6165 tmpccmrx = TIMx->CCMR2;
6168 tmpccmrx &= ~TIM_CCMR2_OC3M;
6169 tmpccmrx &= ~TIM_CCMR2_CC3S;
6171 tmpccmrx |= OC_Config->
OCMode;
6174 tmpccer &= ~TIM_CCER_CC3P;
6178 if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3))
6183 tmpccer &= ~TIM_CCER_CC3NP;
6187 tmpccer &= ~TIM_CCER_CC3NE;
6190 if (IS_TIM_BREAK_INSTANCE(TIMx))
6197 tmpcr2 &= ~TIM_CR2_OIS3;
6198 tmpcr2 &= ~TIM_CR2_OIS3N;
6209 TIMx->CCMR2 = tmpccmrx;
6212 TIMx->CCR3 = OC_Config->
Pulse;
6215 TIMx->CCER = tmpccer;
6231 TIMx->CCER &= ~TIM_CCER_CC4E;
6234 tmpccer = TIMx->CCER;
6239 tmpccmrx = TIMx->CCMR2;
6242 tmpccmrx &= ~TIM_CCMR2_OC4M;
6243 tmpccmrx &= ~TIM_CCMR2_CC4S;
6246 tmpccmrx |= (OC_Config->
OCMode << 8U);
6249 tmpccer &= ~TIM_CCER_CC4P;
6253 if (IS_TIM_BREAK_INSTANCE(TIMx))
6259 tmpcr2 &= ~TIM_CR2_OIS4;
6269 TIMx->CCMR2 = tmpccmrx;
6272 TIMx->CCR4 = OC_Config->
Pulse;
6275 TIMx->CCER = tmpccer;
6292 TIMx->CCER &= ~TIM_CCER_CC5E;
6295 tmpccer = TIMx->CCER;
6299 tmpccmrx = TIMx->CCMR3;
6302 tmpccmrx &= ~(TIM_CCMR3_OC5M);
6304 tmpccmrx |= OC_Config->
OCMode;
6307 tmpccer &= ~TIM_CCER_CC5P;
6311 if (IS_TIM_BREAK_INSTANCE(TIMx))
6314 tmpcr2 &= ~TIM_CR2_OIS5;
6322 TIMx->CCMR3 = tmpccmrx;
6325 TIMx->CCR5 = OC_Config->
Pulse;
6328 TIMx->CCER = tmpccer;
6345 TIMx->CCER &= ~TIM_CCER_CC6E;
6348 tmpccer = TIMx->CCER;
6352 tmpccmrx = TIMx->CCMR3;
6355 tmpccmrx &= ~(TIM_CCMR3_OC6M);
6357 tmpccmrx |= (OC_Config->
OCMode << 8U);
6360 tmpccer &= (uint32_t)~TIM_CCER_CC6P;
6364 if (IS_TIM_BREAK_INSTANCE(TIMx))
6367 tmpcr2 &= ~TIM_CR2_OIS6;
6376 TIMx->CCMR3 = tmpccmrx;
6379 TIMx->CCR6 = OC_Config->
Pulse;
6382 TIMx->CCER = tmpccer;
6399 tmpsmcr = htim->Instance->SMCR;
6402 tmpsmcr &= ~TIM_SMCR_TS;
6407 tmpsmcr &= ~TIM_SMCR_SMS;
6412 htim->Instance->SMCR = tmpsmcr;
6420 assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance));
6432 case TIM_TS_TI1F_ED:
6438 if(sSlaveConfig->
SlaveMode == TIM_SLAVEMODE_GATED)
6444 tmpccer = htim->Instance->CCER;
6445 htim->Instance->CCER &= ~TIM_CCER_CC1E;
6446 tmpccmr1 = htim->Instance->CCMR1;
6449 tmpccmr1 &= ~TIM_CCMR1_IC1F;
6453 htim->Instance->CCMR1 = tmpccmr1;
6454 htim->Instance->CCER = tmpccer;
6523 uint32_t TIM_ICFilter)
6529 TIMx->CCER &= ~TIM_CCER_CC1E;
6530 tmpccmr1 = TIMx->CCMR1;
6531 tmpccer = TIMx->CCER;
6534 if (IS_TIM_CC2_INSTANCE(TIMx) != RESET)
6536 tmpccmr1 &= ~TIM_CCMR1_CC1S;
6537 tmpccmr1 |= TIM_ICSelection;
6541 tmpccmr1 |= TIM_CCMR1_CC1S_0;
6545 tmpccmr1 &= ~TIM_CCMR1_IC1F;
6546 tmpccmr1 |= ((TIM_ICFilter << 4U) & TIM_CCMR1_IC1F);
6549 tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP);
6550 tmpccer |= (TIM_ICPolarity & (TIM_CCER_CC1P | TIM_CCER_CC1NP));
6553 TIMx->CCMR1 = tmpccmr1;
6554 TIMx->CCER = tmpccer;
6575 tmpccer = TIMx->CCER;
6576 TIMx->CCER &= ~TIM_CCER_CC1E;
6577 tmpccmr1 = TIMx->CCMR1;
6580 tmpccmr1 &= ~TIM_CCMR1_IC1F;
6581 tmpccmr1 |= (TIM_ICFilter << 4U);
6584 tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP);
6585 tmpccer |= TIM_ICPolarity;
6588 TIMx->CCMR1 = tmpccmr1;
6589 TIMx->CCER = tmpccer;
6613 uint32_t TIM_ICFilter)
6619 TIMx->CCER &= ~TIM_CCER_CC2E;
6620 tmpccmr1 = TIMx->CCMR1;
6621 tmpccer = TIMx->CCER;
6624 tmpccmr1 &= ~TIM_CCMR1_CC2S;
6625 tmpccmr1 |= (TIM_ICSelection << 8U);
6628 tmpccmr1 &= ~TIM_CCMR1_IC2F;
6629 tmpccmr1 |= ((TIM_ICFilter << 12U) & TIM_CCMR1_IC2F);
6632 tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP);
6633 tmpccer |= ((TIM_ICPolarity << 4U) & (TIM_CCER_CC2P | TIM_CCER_CC2NP));
6636 TIMx->CCMR1 = tmpccmr1 ;
6637 TIMx->CCER = tmpccer;
6658 TIMx->CCER &= ~TIM_CCER_CC2E;
6659 tmpccmr1 = TIMx->CCMR1;
6660 tmpccer = TIMx->CCER;
6663 tmpccmr1 &= ~TIM_CCMR1_IC2F;
6664 tmpccmr1 |= (TIM_ICFilter << 12U);
6667 tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP);
6668 tmpccer |= (TIM_ICPolarity << 4U);
6671 TIMx->CCMR1 = tmpccmr1 ;
6672 TIMx->CCER = tmpccer;
6696 uint32_t TIM_ICFilter)
6702 TIMx->CCER &= ~TIM_CCER_CC3E;
6703 tmpccmr2 = TIMx->CCMR2;
6704 tmpccer = TIMx->CCER;
6707 tmpccmr2 &= ~TIM_CCMR2_CC3S;
6708 tmpccmr2 |= TIM_ICSelection;
6711 tmpccmr2 &= ~TIM_CCMR2_IC3F;
6712 tmpccmr2 |= ((TIM_ICFilter << 4U) & TIM_CCMR2_IC3F);
6715 tmpccer &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP);
6716 tmpccer |= ((TIM_ICPolarity << 8U) & (TIM_CCER_CC3P | TIM_CCER_CC3NP));
6719 TIMx->CCMR2 = tmpccmr2;
6720 TIMx->CCER = tmpccer;
6744 uint32_t TIM_ICFilter)
6750 TIMx->CCER &= ~TIM_CCER_CC4E;
6751 tmpccmr2 = TIMx->CCMR2;
6752 tmpccer = TIMx->CCER;
6755 tmpccmr2 &= ~TIM_CCMR2_CC4S;
6756 tmpccmr2 |= (TIM_ICSelection << 8U);
6759 tmpccmr2 &= ~TIM_CCMR2_IC4F;
6760 tmpccmr2 |= ((TIM_ICFilter << 12U) & TIM_CCMR2_IC4F);
6763 tmpccer &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP);
6764 tmpccer |= ((TIM_ICPolarity << 12U) & (TIM_CCER_CC4P | TIM_CCER_CC4NP));
6767 TIMx->CCMR2 = tmpccmr2;
6768 TIMx->CCER = tmpccer ;
6791 tmpsmcr = TIMx->SMCR;
6793 tmpsmcr &= ~TIM_SMCR_TS;
6795 tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1);
6797 TIMx->SMCR = tmpsmcr;
6817 uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
6821 tmpsmcr = TIMx->SMCR;
6824 tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP);
6827 tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U)));
6830 TIMx->SMCR = tmpsmcr;
6856 tmp = TIM_CCER_CC1E << (Channel & 0x1FU);
6862 TIMx->CCER |= (uint32_t)(ChannelState << (Channel & 0x1FU));
6865 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
Starts the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode)
Initializes the TIM One Pulse Time Base according to the specified parameters in the TIM_HandleTypeDe...
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, TIM_Encoder_InitTypeDef *sConfig)
Initializes the TIM Encoder Interface and initialize the associated handle.
void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Hall Sensor MSP.
static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 3 configuration.
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in interrupt mode.
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished half complete callback in non-blocking mode.
void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Commutation half complete callback.
uint32_t AutoReloadPreload
Clock Configuration Handle Structure definition.
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
TIM Time base Configuration Structure definition.
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
Starts the TIM Input Capture measurement in DMA mode.
static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter)
Configure the Polarity and Filter for TI1.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation.
uint32_t RepetitionCounter
HAL_TIM_CallbackIDTypeDef
HAL TIM Callback ID enumeration definition.
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in DMA mode.
void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim)
Hall Break detection callback in non-blocking mode.
DMA handle Structure definition.
if(lpuartdiv >=LPUART_BRR_MIN_VALUE)
static void TIM_OC5_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 5 configuration.
void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Hall Sensor MSP.
TIM Encoder Configuration Structure definition.
static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Period Elapse half complete callback.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI1 as Input.
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished callback in non-blocking mode.
TIM Input Capture Configuration Structure definition.
static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI3 as Input.
This file contains all the functions prototypes for the HAL module driver.
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structure)
Time Base configuration.
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
Reset interrupt callbacks to the legacy weak callbacks.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation in interrupt mode.
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM PWM MSP.
uint32_t ClearInputSource
HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID)
Unregister a TIM callback TIM callback is redirected to the weak predefined callback.
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in DMA mode.
uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Channel)
Read the captured value from Capture Compare unit.
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Input Capture MSP.
void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse complete callback.
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
Timer error callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)
Starts the TIM Base generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation.
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
This function handles TIM interrupts requests.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Time base Unit according to the specified parameters in the TIM_HandleTypeDef and...
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface in interrupt mode.
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim)
Input Capture half complete callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Output Compare Channels according to the specified parameters in the TIM_OC_InitT...
uint32_t TriggerPrescaler
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Encoder interface.
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement in interrupt mode.
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse half complete callback.
TIM Slave configuration Structure definition.
static void TIM_OC6_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 6 configuration.
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture Time base according to the specified parameters in the TIM_HandleTy...
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM PWM MSP.
HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32_t DataLength)
Start the DMA Transfer with interrupt enabled.
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM One Pulse MSP.
CLEAR_BIT(hrtc->Instance->CR, RTC_CR_WUTE)
uint32_t ClearInputPrescaler
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in DMA mode.
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
Starts the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource)
Generate a software event.
TIM One Pulse Mode Configuration Structure definition.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode in interrupt mode.
void TIM_DMAError(DMA_HandleTypeDef *hdma)
TIM DMA error callback.
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM_ClockConfigTypeDef *sClockSourceConfig)
Configures the clock source to be used.
static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter)
Configure the Polarity and Filter for TI2.
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
Initializes the TIM PWM Time Base according to the specified parameters in the TIM_HandleTypeDef and ...
static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 4 configuration.
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(TIM_HandleTypeDef *htim)
Return the TIM OC handle state.
static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Trigger half complete callback.
void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim)
Hall commutation changed callback in non-blocking mode.
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Base MSP.
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture half complete callback.
static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig)
Slave Timer configuration function.
static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource)
Selects the Input Trigger source.
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, uint32_t OutputChannel, uint32_t InputChannel)
Initializes the TIM One Pulse Channels according to the specified parameters in the TIM_OnePulse_Init...
void(* pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim)
HAL TIM Callback pointer definition.
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation.
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(TIM_HandleTypeDef *htim)
Return the TIM One Pulse Mode handle state.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in interrupt mode.
HAL_TIM_StateTypeDef
HAL State structures definition.
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in interrupt mode.
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture complete callback.
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM PWM signal generation in DMA mode.
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(TIM_HandleTypeDef *htim)
Return the TIM PWM handle state.
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
Configures the TIMx External Trigger (ETR).
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM One Pulse.
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)
Stops the TIM Base generation.
void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim)
Hall commutation changed half complete callback in non-blocking mode.
static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma)
TIM DMA Trigger callback.
static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI2 as Input.
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(TIM_HandleTypeDef *htim)
Return the TIM Input Capture handle state.
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement.
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_IC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Input Capture Channels according to the specified parameters in the TIM_IC_InitTy...
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length)
Starts the TIM Encoder Interface in DMA mode.
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in interrupt mode.
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stop the DMA burst reading.
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare MSP.
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
Output Compare callback in non-blocking mode.
TIM Output Compare Configuration Structure definition.
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length)
Starts the TIM Base generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in DMA mode.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
Period elapsed callback in non-blocking mode.
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim)
Return the TIM Base handle state.
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation in interrupt mode.
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM One Pulse MSP.
uint32_t ClearInputPolarity
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
Input Capture callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
MODIFY_REG(hrtc->Instance->CR, RTC_CR_WUCKSEL,(uint32_t) WakeUpClock)
uint32_t ClearInputFilter
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare according to the specified parameters in the TIM_HandleTypeDef and...
void HAL_TIMEx_Break2Callback(TIM_HandleTypeDef *htim)
Hall Break2 detection callback in non blocking mode.
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection half complete callback in non-blocking mode.
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 2 configuration.
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation.
static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI4 as Input.
struct __TIM_HandleTypeDef else typedef struct endif TIM_HandleTypeDef
TIM Time Base Handle Structure definition.
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stops the TIM DMA Burst mode.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, TIM_ClearInputConfigTypeDef *sClearInputConfig, uint32_t Channel)
Configures the OCRef clear feature.
static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma)
TIM DMA Period Elapse complete callback.
void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma)
TIM DMA Commutation callback.
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement.
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
Starts the TIM PWM signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Base peripheral.
static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 1 configuration.
HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID, pTIM_CallbackTypeDef pCallback)
Register a User TIM callback to be used instead of the weak predefined callback.
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim)
Period elapsed half complete callback in non-blocking mode.
assert_param(IS_RTC_WAKEUP_CLOCK(WakeUpClock))
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection)
Selects the signal connected to the TI1 input: direct from CH1_input or a XOR combination between CH1...
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM PWM channels according to the specified parameters in the TIM_OC_InitTypeDef.
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the memory to the TIM peripheral.
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Encoder Interface MSP.