197 #ifdef HAL_TIM_MODULE_ENABLED
207 static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx,
const TIM_OC_InitTypeDef *OC_Config);
208 static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx,
const TIM_OC_InitTypeDef *OC_Config);
209 static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx,
const TIM_OC_InitTypeDef *OC_Config);
210 static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter);
211 static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
212 uint32_t TIM_ICFilter);
213 static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter);
214 static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
215 uint32_t TIM_ICFilter);
216 static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
217 uint32_t TIM_ICFilter);
218 static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource);
275 assert_param(IS_TIM_INSTANCE(htim->Instance));
276 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
277 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
278 assert_param(IS_TIM_PERIOD(htim, htim->Init.Period));
279 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
284 htim->Lock = HAL_UNLOCKED;
286 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
290 if (htim->Base_MspInitCallback == NULL)
295 htim->Base_MspInitCallback(htim);
329 assert_param(IS_TIM_INSTANCE(htim->Instance));
334 __HAL_TIM_DISABLE(htim);
336 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
337 if (htim->Base_MspDeInitCallback == NULL)
342 htim->Base_MspDeInitCallback(htim);
405 assert_param(IS_TIM_INSTANCE(htim->Instance));
417 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
419 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
420 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
422 __HAL_TIM_ENABLE(htim);
427 __HAL_TIM_ENABLE(htim);
442 assert_param(IS_TIM_INSTANCE(htim->Instance));
445 __HAL_TIM_DISABLE(htim);
464 assert_param(IS_TIM_INSTANCE(htim->Instance));
476 __HAL_TIM_ENABLE_IT(htim, TIM_IT_UPDATE);
479 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
481 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
482 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
484 __HAL_TIM_ENABLE(htim);
489 __HAL_TIM_ENABLE(htim);
504 assert_param(IS_TIM_INSTANCE(htim->Instance));
507 __HAL_TIM_DISABLE_IT(htim, TIM_IT_UPDATE);
510 __HAL_TIM_DISABLE(htim);
531 assert_param(IS_TIM_DMA_INSTANCE(htim->Instance));
540 if ((pData == NULL) || (Length == 0U))
555 htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt;
556 htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt;
559 htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback =
TIM_DMAError ;
562 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)pData, (uint32_t)&htim->Instance->ARR,
570 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_UPDATE);
573 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
575 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
576 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
578 __HAL_TIM_ENABLE(htim);
583 __HAL_TIM_ENABLE(htim);
598 assert_param(IS_TIM_DMA_INSTANCE(htim->Instance));
601 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_UPDATE);
606 __HAL_TIM_DISABLE(htim);
659 assert_param(IS_TIM_INSTANCE(htim->Instance));
660 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
661 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
662 assert_param(IS_TIM_PERIOD(htim, htim->Init.Period));
663 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
668 htim->Lock = HAL_UNLOCKED;
670 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
674 if (htim->OC_MspInitCallback == NULL)
679 htim->OC_MspInitCallback(htim);
713 assert_param(IS_TIM_INSTANCE(htim->Instance));
718 __HAL_TIM_DISABLE(htim);
720 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
721 if (htim->OC_MspDeInitCallback == NULL)
726 htim->OC_MspDeInitCallback(htim);
794 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
808 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
811 __HAL_TIM_MOE_ENABLE(htim);
815 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
817 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
818 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
820 __HAL_TIM_ENABLE(htim);
825 __HAL_TIM_ENABLE(htim);
846 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
851 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
854 __HAL_TIM_MOE_DISABLE(htim);
858 __HAL_TIM_DISABLE(htim);
880 HAL_StatusTypeDef status = HAL_OK;
884 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
900 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
907 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
914 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
921 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
930 if (status == HAL_OK)
935 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
938 __HAL_TIM_MOE_ENABLE(htim);
942 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
944 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
945 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
947 __HAL_TIM_ENABLE(htim);
952 __HAL_TIM_ENABLE(htim);
973 HAL_StatusTypeDef status = HAL_OK;
976 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
983 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
990 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
997 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
1004 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
1013 if (status == HAL_OK)
1018 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1021 __HAL_TIM_MOE_DISABLE(htim);
1025 __HAL_TIM_DISABLE(htim);
1051 HAL_StatusTypeDef status = HAL_OK;
1055 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1064 if ((pData == NULL) || (Length == 0U))
1083 htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt;
1087 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
1090 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1,
1098 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
1105 htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt;
1109 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
1112 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2,
1120 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1127 htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt;
1131 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
1134 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3,
1141 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1148 htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt;
1152 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
1155 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4,
1162 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1171 if (status == HAL_OK)
1176 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1179 __HAL_TIM_MOE_ENABLE(htim);
1183 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
1185 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1186 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1188 __HAL_TIM_ENABLE(htim);
1193 __HAL_TIM_ENABLE(htim);
1214 HAL_StatusTypeDef status = HAL_OK;
1217 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1224 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
1232 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
1240 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
1248 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
1258 if (status == HAL_OK)
1263 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1266 __HAL_TIM_MOE_DISABLE(htim);
1270 __HAL_TIM_DISABLE(htim);
1324 assert_param(IS_TIM_INSTANCE(htim->Instance));
1325 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
1326 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
1327 assert_param(IS_TIM_PERIOD(htim, htim->Init.Period));
1328 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
1333 htim->Lock = HAL_UNLOCKED;
1335 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1339 if (htim->PWM_MspInitCallback == NULL)
1344 htim->PWM_MspInitCallback(htim);
1378 assert_param(IS_TIM_INSTANCE(htim->Instance));
1383 __HAL_TIM_DISABLE(htim);
1385 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
1386 if (htim->PWM_MspDeInitCallback == NULL)
1391 htim->PWM_MspDeInitCallback(htim);
1459 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1473 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1476 __HAL_TIM_MOE_ENABLE(htim);
1480 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
1482 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1483 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1485 __HAL_TIM_ENABLE(htim);
1490 __HAL_TIM_ENABLE(htim);
1511 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1516 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1519 __HAL_TIM_MOE_DISABLE(htim);
1523 __HAL_TIM_DISABLE(htim);
1545 HAL_StatusTypeDef status = HAL_OK;
1549 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1565 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
1572 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
1579 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
1586 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
1595 if (status == HAL_OK)
1600 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1603 __HAL_TIM_MOE_ENABLE(htim);
1607 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
1609 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1610 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1612 __HAL_TIM_ENABLE(htim);
1617 __HAL_TIM_ENABLE(htim);
1638 HAL_StatusTypeDef status = HAL_OK;
1641 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1648 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
1655 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
1662 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
1669 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
1678 if (status == HAL_OK)
1683 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1686 __HAL_TIM_MOE_DISABLE(htim);
1690 __HAL_TIM_DISABLE(htim);
1716 HAL_StatusTypeDef status = HAL_OK;
1720 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1729 if ((pData == NULL) || (Length == 0U))
1748 htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt;
1752 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
1755 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)pData, (uint32_t)&htim->Instance->CCR1,
1763 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
1770 htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt;
1774 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
1777 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)pData, (uint32_t)&htim->Instance->CCR2,
1784 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
1791 htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt;
1795 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
1798 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)pData, (uint32_t)&htim->Instance->CCR3,
1805 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
1812 htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt;
1816 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
1819 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)pData, (uint32_t)&htim->Instance->CCR4,
1826 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
1835 if (status == HAL_OK)
1840 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1843 __HAL_TIM_MOE_ENABLE(htim);
1847 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
1849 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
1850 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
1852 __HAL_TIM_ENABLE(htim);
1857 __HAL_TIM_ENABLE(htim);
1878 HAL_StatusTypeDef status = HAL_OK;
1881 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
1888 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
1896 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
1904 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
1912 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
1922 if (status == HAL_OK)
1927 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
1930 __HAL_TIM_MOE_DISABLE(htim);
1934 __HAL_TIM_DISABLE(htim);
1988 assert_param(IS_TIM_INSTANCE(htim->Instance));
1989 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
1990 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
1991 assert_param(IS_TIM_PERIOD(htim, htim->Init.Period));
1992 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
1997 htim->Lock = HAL_UNLOCKED;
1999 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2003 if (htim->IC_MspInitCallback == NULL)
2008 htim->IC_MspInitCallback(htim);
2042 assert_param(IS_TIM_INSTANCE(htim->Instance));
2047 __HAL_TIM_DISABLE(htim);
2049 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2050 if (htim->IC_MspDeInitCallback == NULL)
2055 htim->IC_MspDeInitCallback(htim);
2125 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2142 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
2144 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
2145 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
2147 __HAL_TIM_ENABLE(htim);
2152 __HAL_TIM_ENABLE(htim);
2173 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2179 __HAL_TIM_DISABLE(htim);
2202 HAL_StatusTypeDef status = HAL_OK;
2209 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2227 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
2234 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
2241 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC3);
2248 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC4);
2257 if (status == HAL_OK)
2263 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
2265 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
2266 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
2268 __HAL_TIM_ENABLE(htim);
2273 __HAL_TIM_ENABLE(htim);
2294 HAL_StatusTypeDef status = HAL_OK;
2297 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2304 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
2311 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
2318 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC3);
2325 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC4);
2334 if (status == HAL_OK)
2340 __HAL_TIM_DISABLE(htim);
2366 HAL_StatusTypeDef status = HAL_OK;
2373 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2374 assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance));
2385 if ((pData == NULL) || (Length == 0U))
2412 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
2415 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData,
2422 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
2433 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
2436 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData,
2443 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
2454 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
2457 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->CCR3, (uint32_t)pData,
2464 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC3);
2475 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
2478 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->CCR4, (uint32_t)pData,
2485 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC4);
2495 if (IS_TIM_SLAVE_INSTANCE(htim->Instance))
2497 tmpsmcr = htim->Instance->SMCR & TIM_SMCR_SMS;
2498 if (!IS_TIM_SLAVEMODE_TRIGGER_ENABLED(tmpsmcr))
2500 __HAL_TIM_ENABLE(htim);
2505 __HAL_TIM_ENABLE(htim);
2525 HAL_StatusTypeDef status = HAL_OK;
2528 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
2529 assert_param(IS_TIM_DMA_CC_INSTANCE(htim->Instance));
2539 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
2547 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
2555 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC3);
2563 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC4);
2573 if (status == HAL_OK)
2576 __HAL_TIM_DISABLE(htim);
2637 assert_param(IS_TIM_INSTANCE(htim->Instance));
2638 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
2639 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
2640 assert_param(IS_TIM_OPM_MODE(OnePulseMode));
2641 assert_param(IS_TIM_PERIOD(htim, htim->Init.Period));
2642 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
2647 htim->Lock = HAL_UNLOCKED;
2649 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2653 if (htim->OnePulse_MspInitCallback == NULL)
2658 htim->OnePulse_MspInitCallback(htim);
2672 htim->Instance->CR1 &= ~TIM_CR1_OPM;
2675 htim->Instance->CR1 |= OnePulseMode;
2700 assert_param(IS_TIM_INSTANCE(htim->Instance));
2705 __HAL_TIM_DISABLE(htim);
2707 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
2708 if (htim->OnePulse_MspDeInitCallback == NULL)
2713 htim->OnePulse_MspDeInitCallback(htim);
2785 UNUSED(OutputChannel);
2814 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2817 __HAL_TIM_MOE_ENABLE(htim);
2837 UNUSED(OutputChannel);
2848 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2851 __HAL_TIM_MOE_DISABLE(htim);
2855 __HAL_TIM_DISABLE(htim);
2885 UNUSED(OutputChannel);
2912 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
2915 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
2920 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2923 __HAL_TIM_MOE_ENABLE(htim);
2943 UNUSED(OutputChannel);
2946 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
2949 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
2959 if (IS_TIM_BREAK_INSTANCE(htim->Instance) != RESET)
2962 __HAL_TIM_MOE_DISABLE(htim);
2966 __HAL_TIM_DISABLE(htim);
3032 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3033 assert_param(IS_TIM_COUNTER_MODE(htim->Init.CounterMode));
3034 assert_param(IS_TIM_CLOCKDIVISION_DIV(htim->Init.ClockDivision));
3035 assert_param(IS_TIM_AUTORELOAD_PRELOAD(htim->Init.AutoReloadPreload));
3036 assert_param(IS_TIM_ENCODER_MODE(sConfig->
EncoderMode));
3037 assert_param(IS_TIM_IC_SELECTION(sConfig->
IC1Selection));
3038 assert_param(IS_TIM_IC_SELECTION(sConfig->
IC2Selection));
3039 assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->
IC1Polarity));
3040 assert_param(IS_TIM_ENCODERINPUT_POLARITY(sConfig->
IC2Polarity));
3041 assert_param(IS_TIM_IC_PRESCALER(sConfig->
IC1Prescaler));
3042 assert_param(IS_TIM_IC_PRESCALER(sConfig->
IC2Prescaler));
3043 assert_param(IS_TIM_IC_FILTER(sConfig->
IC1Filter));
3044 assert_param(IS_TIM_IC_FILTER(sConfig->
IC2Filter));
3045 assert_param(IS_TIM_PERIOD(htim, htim->Init.Period));
3050 htim->Lock = HAL_UNLOCKED;
3052 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3056 if (htim->Encoder_MspInitCallback == NULL)
3061 htim->Encoder_MspInitCallback(htim);
3072 htim->Instance->SMCR &= ~(TIM_SMCR_SMS | TIM_SMCR_ECE);
3078 tmpsmcr = htim->Instance->SMCR;
3081 tmpccmr1 = htim->Instance->CCMR1;
3084 tmpccer = htim->Instance->CCER;
3090 tmpccmr1 &= ~(TIM_CCMR1_CC1S | TIM_CCMR1_CC2S);
3094 tmpccmr1 &= ~(TIM_CCMR1_IC1PSC | TIM_CCMR1_IC2PSC);
3095 tmpccmr1 &= ~(TIM_CCMR1_IC1F | TIM_CCMR1_IC2F);
3100 tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC2P);
3101 tmpccer &= ~(TIM_CCER_CC1NP | TIM_CCER_CC2NP);
3105 htim->Instance->SMCR = tmpsmcr;
3108 htim->Instance->CCMR1 = tmpccmr1;
3111 htim->Instance->CCER = tmpccer;
3137 assert_param(IS_TIM_INSTANCE(htim->Instance));
3142 __HAL_TIM_DISABLE(htim);
3144 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3145 if (htim->Encoder_MspDeInitCallback == NULL)
3150 htim->Encoder_MspDeInitCallback(htim);
3222 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3225 if (Channel == TIM_CHANNEL_1)
3238 else if (Channel == TIM_CHANNEL_2)
3292 __HAL_TIM_ENABLE(htim);
3311 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3338 __HAL_TIM_DISABLE(htim);
3341 if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3376 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3379 if (Channel == TIM_CHANNEL_1)
3392 else if (Channel == TIM_CHANNEL_2)
3430 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
3437 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
3445 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC1);
3446 __HAL_TIM_ENABLE_IT(htim, TIM_IT_CC2);
3452 __HAL_TIM_ENABLE(htim);
3471 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3475 if (Channel == TIM_CHANNEL_1)
3480 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
3482 else if (Channel == TIM_CHANNEL_2)
3487 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
3495 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC1);
3496 __HAL_TIM_DISABLE_IT(htim, TIM_IT_CC2);
3500 __HAL_TIM_DISABLE(htim);
3503 if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3534 uint32_t *pData2, uint16_t Length)
3542 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3545 if (Channel == TIM_CHANNEL_1)
3555 if ((pData1 == NULL) || (Length == 0U))
3570 else if (Channel == TIM_CHANNEL_2)
3580 if ((pData2 == NULL) || (Length == 0U))
3609 if ((((pData1 == NULL) || (pData2 == NULL))) || (Length == 0U))
3636 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
3639 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1,
3646 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
3652 __HAL_TIM_ENABLE(htim);
3664 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError;
3666 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2,
3673 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
3679 __HAL_TIM_ENABLE(htim);
3691 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
3694 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->CCR1, (uint32_t)pData1,
3706 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
3709 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->CCR2, (uint32_t)pData2,
3717 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC1);
3719 __HAL_TIM_ENABLE_DMA(htim, TIM_DMA_CC2);
3726 __HAL_TIM_ENABLE(htim);
3749 assert_param(IS_TIM_ENCODER_INTERFACE_INSTANCE(htim->Instance));
3753 if (Channel == TIM_CHANNEL_1)
3758 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
3761 else if (Channel == TIM_CHANNEL_2)
3766 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
3775 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC1);
3776 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_CC2);
3782 __HAL_TIM_DISABLE(htim);
3785 if ((Channel == TIM_CHANNEL_1) || (Channel == TIM_CHANNEL_2))
3825 uint32_t itsource = htim->Instance->DIER;
3826 uint32_t itflag = htim->Instance->SR;
3829 if ((itflag & (TIM_FLAG_CC1)) == (TIM_FLAG_CC1))
3831 if ((itsource & (TIM_IT_CC1)) == (TIM_IT_CC1))
3834 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC1);
3838 if ((htim->Instance->CCMR1 & TIM_CCMR1_CC1S) != 0x00U)
3840 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3841 htim->IC_CaptureCallback(htim);
3849 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3850 htim->OC_DelayElapsedCallback(htim);
3851 htim->PWM_PulseFinishedCallback(htim);
3862 if ((itflag & (TIM_FLAG_CC2)) == (TIM_FLAG_CC2))
3864 if ((itsource & (TIM_IT_CC2)) == (TIM_IT_CC2))
3866 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC2);
3869 if ((htim->Instance->CCMR1 & TIM_CCMR1_CC2S) != 0x00U)
3871 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3872 htim->IC_CaptureCallback(htim);
3880 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3881 htim->OC_DelayElapsedCallback(htim);
3882 htim->PWM_PulseFinishedCallback(htim);
3892 if ((itflag & (TIM_FLAG_CC3)) == (TIM_FLAG_CC3))
3894 if ((itsource & (TIM_IT_CC3)) == (TIM_IT_CC3))
3896 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC3);
3899 if ((htim->Instance->CCMR2 & TIM_CCMR2_CC3S) != 0x00U)
3901 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3902 htim->IC_CaptureCallback(htim);
3910 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3911 htim->OC_DelayElapsedCallback(htim);
3912 htim->PWM_PulseFinishedCallback(htim);
3922 if ((itflag & (TIM_FLAG_CC4)) == (TIM_FLAG_CC4))
3924 if ((itsource & (TIM_IT_CC4)) == (TIM_IT_CC4))
3926 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_CC4);
3929 if ((htim->Instance->CCMR2 & TIM_CCMR2_CC4S) != 0x00U)
3931 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3932 htim->IC_CaptureCallback(htim);
3940 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3941 htim->OC_DelayElapsedCallback(htim);
3942 htim->PWM_PulseFinishedCallback(htim);
3952 if ((itflag & (TIM_FLAG_UPDATE)) == (TIM_FLAG_UPDATE))
3954 if ((itsource & (TIM_IT_UPDATE)) == (TIM_IT_UPDATE))
3956 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_UPDATE);
3957 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3958 htim->PeriodElapsedCallback(htim);
3965 if ((itflag & (TIM_FLAG_BREAK)) == (TIM_FLAG_BREAK))
3967 if ((itsource & (TIM_IT_BREAK)) == (TIM_IT_BREAK))
3969 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_BREAK);
3970 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3971 htim->BreakCallback(htim);
3978 if ((itflag & (TIM_FLAG_TRIGGER)) == (TIM_FLAG_TRIGGER))
3980 if ((itsource & (TIM_IT_TRIGGER)) == (TIM_IT_TRIGGER))
3982 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_TRIGGER);
3983 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3984 htim->TriggerCallback(htim);
3991 if ((itflag & (TIM_FLAG_COM)) == (TIM_FLAG_COM))
3993 if ((itsource & (TIM_IT_COM)) == (TIM_IT_COM))
3995 __HAL_TIM_CLEAR_FLAG(htim, TIM_FLAG_COM);
3996 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
3997 htim->CommutationCallback(htim);
4045 HAL_StatusTypeDef status = HAL_OK;
4048 assert_param(IS_TIM_CHANNELS(Channel));
4049 assert_param(IS_TIM_OC_MODE(sConfig->
OCMode));
4050 assert_param(IS_TIM_OC_POLARITY(sConfig->
OCPolarity));
4060 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
4063 TIM_OC1_SetConfig(htim->Instance, sConfig);
4070 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
4080 assert_param(IS_TIM_CC3_INSTANCE(htim->Instance));
4083 TIM_OC3_SetConfig(htim->Instance, sConfig);
4090 assert_param(IS_TIM_CC4_INSTANCE(htim->Instance));
4093 TIM_OC4_SetConfig(htim->Instance, sConfig);
4122 HAL_StatusTypeDef status = HAL_OK;
4125 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
4126 assert_param(IS_TIM_IC_POLARITY(sConfig->
ICPolarity));
4127 assert_param(IS_TIM_IC_SELECTION(sConfig->
ICSelection));
4128 assert_param(IS_TIM_IC_PRESCALER(sConfig->
ICPrescaler));
4129 assert_param(IS_TIM_IC_FILTER(sConfig->
ICFilter));
4134 if (Channel == TIM_CHANNEL_1)
4143 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC;
4148 else if (Channel == TIM_CHANNEL_2)
4151 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
4153 TIM_TI2_SetConfig(htim->Instance,
4159 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC;
4162 htim->Instance->CCMR1 |= (sConfig->
ICPrescaler << 8U);
4164 else if (Channel == TIM_CHANNEL_3)
4167 assert_param(IS_TIM_CC3_INSTANCE(htim->Instance));
4169 TIM_TI3_SetConfig(htim->Instance,
4175 htim->Instance->CCMR2 &= ~TIM_CCMR2_IC3PSC;
4180 else if (Channel == TIM_CHANNEL_4)
4183 assert_param(IS_TIM_CC4_INSTANCE(htim->Instance));
4185 TIM_TI4_SetConfig(htim->Instance,
4191 htim->Instance->CCMR2 &= ~TIM_CCMR2_IC4PSC;
4194 htim->Instance->CCMR2 |= (sConfig->
ICPrescaler << 8U);
4223 HAL_StatusTypeDef status = HAL_OK;
4226 assert_param(IS_TIM_CHANNELS(Channel));
4227 assert_param(IS_TIM_PWM_MODE(sConfig->
OCMode));
4228 assert_param(IS_TIM_OC_POLARITY(sConfig->
OCPolarity));
4229 assert_param(IS_TIM_FAST_STATE(sConfig->
OCFastMode));
4239 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
4242 TIM_OC1_SetConfig(htim->Instance, sConfig);
4245 htim->Instance->CCMR1 |= TIM_CCMR1_OC1PE;
4248 htim->Instance->CCMR1 &= ~TIM_CCMR1_OC1FE;
4249 htim->Instance->CCMR1 |= sConfig->
OCFastMode;
4256 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
4262 htim->Instance->CCMR1 |= TIM_CCMR1_OC2PE;
4265 htim->Instance->CCMR1 &= ~TIM_CCMR1_OC2FE;
4266 htim->Instance->CCMR1 |= sConfig->
OCFastMode << 8U;
4273 assert_param(IS_TIM_CC3_INSTANCE(htim->Instance));
4276 TIM_OC3_SetConfig(htim->Instance, sConfig);
4279 htim->Instance->CCMR2 |= TIM_CCMR2_OC3PE;
4282 htim->Instance->CCMR2 &= ~TIM_CCMR2_OC3FE;
4283 htim->Instance->CCMR2 |= sConfig->
OCFastMode;
4290 assert_param(IS_TIM_CC4_INSTANCE(htim->Instance));
4293 TIM_OC4_SetConfig(htim->Instance, sConfig);
4296 htim->Instance->CCMR2 |= TIM_CCMR2_OC4PE;
4299 htim->Instance->CCMR2 &= ~TIM_CCMR2_OC4FE;
4300 htim->Instance->CCMR2 |= sConfig->
OCFastMode << 8U;
4334 uint32_t OutputChannel, uint32_t InputChannel)
4336 HAL_StatusTypeDef status = HAL_OK;
4340 assert_param(IS_TIM_OPM_CHANNELS(OutputChannel));
4341 assert_param(IS_TIM_OPM_CHANNELS(InputChannel));
4343 if (OutputChannel != InputChannel)
4358 switch (OutputChannel)
4362 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
4364 TIM_OC1_SetConfig(htim->Instance, &temp1);
4370 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
4381 if (status == HAL_OK)
4383 switch (InputChannel)
4387 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
4393 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC1PSC;
4396 htim->Instance->SMCR &= ~TIM_SMCR_TS;
4397 htim->Instance->SMCR |= TIM_TS_TI1FP1;
4400 htim->Instance->SMCR &= ~TIM_SMCR_SMS;
4401 htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER;
4407 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
4409 TIM_TI2_SetConfig(htim->Instance, sConfig->
ICPolarity,
4413 htim->Instance->CCMR1 &= ~TIM_CCMR1_IC2PSC;
4416 htim->Instance->SMCR &= ~TIM_SMCR_TS;
4417 htim->Instance->SMCR |= TIM_TS_TI2FP2;
4420 htim->Instance->SMCR &= ~TIM_SMCR_SMS;
4421 htim->Instance->SMCR |= TIM_SLAVEMODE_TRIGGER;
4482 uint32_t BurstRequestSrc,
const uint32_t *BurstBuffer,
4483 uint32_t BurstLength)
4485 HAL_StatusTypeDef status;
4488 ((BurstLength) >> 8U) + 1U);
4535 uint32_t BurstRequestSrc,
const uint32_t *BurstBuffer,
4536 uint32_t BurstLength, uint32_t DataLength)
4538 HAL_StatusTypeDef status = HAL_OK;
4541 assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
4542 assert_param(IS_TIM_DMA_BASE(BurstBaseAddress));
4543 assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4544 assert_param(IS_TIM_DMA_LENGTH(BurstLength));
4545 assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength));
4553 if ((BurstBuffer == NULL) && (BurstLength > 0U))
4567 switch (BurstRequestSrc)
4569 case TIM_DMA_UPDATE:
4572 htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt;
4573 htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt;
4576 htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback =
TIM_DMAError ;
4580 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4590 htim->hdma[TIM_DMA_ID_CC1]->XferCpltCallback = TIM_DMADelayPulseCplt;
4594 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
4598 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4608 htim->hdma[TIM_DMA_ID_CC2]->XferCpltCallback = TIM_DMADelayPulseCplt;
4612 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
4616 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4626 htim->hdma[TIM_DMA_ID_CC3]->XferCpltCallback = TIM_DMADelayPulseCplt;
4630 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
4634 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4644 htim->hdma[TIM_DMA_ID_CC4]->XferCpltCallback = TIM_DMADelayPulseCplt;
4648 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
4652 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4666 htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback =
TIM_DMAError ;
4669 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)BurstBuffer,
4670 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4677 case TIM_DMA_TRIGGER:
4680 htim->hdma[TIM_DMA_ID_TRIGGER]->XferCpltCallback = TIM_DMATriggerCplt;
4681 htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt;
4684 htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback =
TIM_DMAError ;
4687 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)BurstBuffer,
4688 (uint32_t)&htim->Instance->DMAR, DataLength) != HAL_OK)
4700 if (status == HAL_OK)
4703 htim->Instance->DCR = (BurstBaseAddress | BurstLength);
4705 __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc);
4720 HAL_StatusTypeDef status = HAL_OK;
4723 assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4726 switch (BurstRequestSrc)
4728 case TIM_DMA_UPDATE:
4758 case TIM_DMA_TRIGGER:
4768 if (status == HAL_OK)
4771 __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
4820 uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
4822 HAL_StatusTypeDef status;
4825 ((BurstLength) >> 8U) + 1U);
4871 uint32_t BurstRequestSrc, uint32_t *BurstBuffer,
4872 uint32_t BurstLength, uint32_t DataLength)
4874 HAL_StatusTypeDef status = HAL_OK;
4877 assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
4878 assert_param(IS_TIM_DMA_BASE(BurstBaseAddress));
4879 assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
4880 assert_param(IS_TIM_DMA_LENGTH(BurstLength));
4881 assert_param(IS_TIM_DMA_DATA_LENGTH(DataLength));
4889 if ((BurstBuffer == NULL) && (BurstLength > 0U))
4902 switch (BurstRequestSrc)
4904 case TIM_DMA_UPDATE:
4907 htim->hdma[TIM_DMA_ID_UPDATE]->XferCpltCallback = TIM_DMAPeriodElapsedCplt;
4908 htim->hdma[TIM_DMA_ID_UPDATE]->XferHalfCpltCallback = TIM_DMAPeriodElapsedHalfCplt;
4911 htim->hdma[TIM_DMA_ID_UPDATE]->XferErrorCallback =
TIM_DMAError ;
4914 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_UPDATE], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4915 DataLength) != HAL_OK)
4929 htim->hdma[TIM_DMA_ID_CC1]->XferErrorCallback =
TIM_DMAError ;
4932 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC1], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4933 DataLength) != HAL_OK)
4947 htim->hdma[TIM_DMA_ID_CC2]->XferErrorCallback =
TIM_DMAError ;
4950 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC2], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4951 DataLength) != HAL_OK)
4965 htim->hdma[TIM_DMA_ID_CC3]->XferErrorCallback =
TIM_DMAError ;
4968 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC3], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4969 DataLength) != HAL_OK)
4983 htim->hdma[TIM_DMA_ID_CC4]->XferErrorCallback =
TIM_DMAError ;
4986 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_CC4], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
4987 DataLength) != HAL_OK)
5001 htim->hdma[TIM_DMA_ID_COMMUTATION]->XferErrorCallback =
TIM_DMAError ;
5004 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_COMMUTATION], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
5005 DataLength) != HAL_OK)
5012 case TIM_DMA_TRIGGER:
5015 htim->hdma[TIM_DMA_ID_TRIGGER]->XferCpltCallback = TIM_DMATriggerCplt;
5016 htim->hdma[TIM_DMA_ID_TRIGGER]->XferHalfCpltCallback = TIM_DMATriggerHalfCplt;
5019 htim->hdma[TIM_DMA_ID_TRIGGER]->XferErrorCallback =
TIM_DMAError ;
5022 if (
HAL_DMA_Start_IT(htim->hdma[TIM_DMA_ID_TRIGGER], (uint32_t)&htim->Instance->DMAR, (uint32_t)BurstBuffer,
5023 DataLength) != HAL_OK)
5035 if (status == HAL_OK)
5038 htim->Instance->DCR = (BurstBaseAddress | BurstLength);
5041 __HAL_TIM_ENABLE_DMA(htim, BurstRequestSrc);
5056 HAL_StatusTypeDef status = HAL_OK;
5059 assert_param(IS_TIM_DMA_SOURCE(BurstRequestSrc));
5062 switch (BurstRequestSrc)
5064 case TIM_DMA_UPDATE:
5094 case TIM_DMA_TRIGGER:
5104 if (status == HAL_OK)
5107 __HAL_TIM_DISABLE_DMA(htim, BurstRequestSrc);
5140 assert_param(IS_TIM_INSTANCE(htim->Instance));
5141 assert_param(IS_TIM_EVENT_SOURCE(EventSource));
5150 htim->Instance->EGR = EventSource;
5178 HAL_StatusTypeDef status = HAL_OK;
5181 assert_param(IS_TIM_OCXREF_CLEAR_INSTANCE(htim->Instance));
5182 assert_param(IS_TIM_CLEARINPUT_SOURCE(sClearInputConfig->
ClearInputSource));
5191 case TIM_CLEARINPUTSOURCE_NONE:
5194 CLEAR_BIT(htim->Instance->SMCR, (TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP));
5198 case TIM_CLEARINPUTSOURCE_ETR:
5203 assert_param(IS_TIM_CLEARINPUT_FILTER(sClearInputConfig->
ClearInputFilter));
5225 if (status == HAL_OK)
5234 SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE);
5239 CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC1CE);
5248 SET_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE);
5253 CLEAR_BIT(htim->Instance->CCMR1, TIM_CCMR1_OC2CE);
5262 SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE);
5267 CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC3CE);
5276 SET_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE);
5281 CLEAR_BIT(htim->Instance->CCMR2, TIM_CCMR2_OC4CE);
5306 HAL_StatusTypeDef status = HAL_OK;
5315 assert_param(IS_TIM_CLOCKSOURCE(sClockSourceConfig->
ClockSource));
5318 tmpsmcr = htim->Instance->SMCR;
5319 tmpsmcr &= ~(TIM_SMCR_SMS | TIM_SMCR_TS);
5320 tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP);
5321 htim->Instance->SMCR = tmpsmcr;
5325 case TIM_CLOCKSOURCE_INTERNAL:
5327 assert_param(IS_TIM_INSTANCE(htim->Instance));
5331 case TIM_CLOCKSOURCE_ETRMODE1:
5334 assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance));
5337 assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->
ClockPrescaler));
5338 assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->
ClockPolarity));
5339 assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->
ClockFilter));
5348 tmpsmcr = htim->Instance->SMCR;
5349 tmpsmcr |= (TIM_SLAVEMODE_EXTERNAL1 | TIM_CLOCKSOURCE_ETRMODE1);
5351 htim->Instance->SMCR = tmpsmcr;
5355 case TIM_CLOCKSOURCE_ETRMODE2:
5358 assert_param(IS_TIM_CLOCKSOURCE_ETRMODE2_INSTANCE(htim->Instance));
5361 assert_param(IS_TIM_CLOCKPRESCALER(sClockSourceConfig->
ClockPrescaler));
5362 assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->
ClockPolarity));
5363 assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->
ClockFilter));
5371 htim->Instance->SMCR |= TIM_SMCR_ECE;
5375 case TIM_CLOCKSOURCE_TI1:
5378 assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
5381 assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->
ClockPolarity));
5382 assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->
ClockFilter));
5384 TIM_TI1_ConfigInputStage(htim->Instance,
5387 TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1);
5391 case TIM_CLOCKSOURCE_TI2:
5394 assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
5397 assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->
ClockPolarity));
5398 assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->
ClockFilter));
5400 TIM_TI2_ConfigInputStage(htim->Instance,
5403 TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI2);
5407 case TIM_CLOCKSOURCE_TI1ED:
5410 assert_param(IS_TIM_CLOCKSOURCE_TIX_INSTANCE(htim->Instance));
5413 assert_param(IS_TIM_CLOCKPOLARITY(sClockSourceConfig->
ClockPolarity));
5414 assert_param(IS_TIM_CLOCKFILTER(sClockSourceConfig->
ClockFilter));
5416 TIM_TI1_ConfigInputStage(htim->Instance,
5419 TIM_ITRx_SetConfig(htim->Instance, TIM_CLOCKSOURCE_TI1ED);
5423 case TIM_CLOCKSOURCE_ITR0:
5424 case TIM_CLOCKSOURCE_ITR1:
5425 case TIM_CLOCKSOURCE_ITR2:
5426 case TIM_CLOCKSOURCE_ITR3:
5429 assert_param(IS_TIM_CLOCKSOURCE_ITRX_INSTANCE(htim->Instance));
5431 TIM_ITRx_SetConfig(htim->Instance, sClockSourceConfig->
ClockSource);
5463 assert_param(IS_TIM_XOR_INSTANCE(htim->Instance));
5464 assert_param(IS_TIM_TI1SELECTION(TI1_Selection));
5467 tmpcr2 = htim->Instance->CR2;
5470 tmpcr2 &= ~TIM_CR2_TI1S;
5473 tmpcr2 |= TI1_Selection;
5476 htim->Instance->CR2 = tmpcr2;
5493 assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance));
5494 assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->
SlaveMode));
5495 assert_param(IS_TIM_TRIGGER_SELECTION(sSlaveConfig->
InputTrigger));
5501 if (TIM_SlaveTimer_SetConfig(htim, sSlaveConfig) != HAL_OK)
5509 __HAL_TIM_DISABLE_IT(htim, TIM_IT_TRIGGER);
5512 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER);
5534 assert_param(IS_TIM_SLAVE_INSTANCE(htim->Instance));
5535 assert_param(IS_TIM_SLAVE_MODE(sSlaveConfig->
SlaveMode));
5536 assert_param(IS_TIM_TRIGGER_SELECTION(sSlaveConfig->
InputTrigger));
5542 if (TIM_SlaveTimer_SetConfig(htim, sSlaveConfig) != HAL_OK)
5550 __HAL_TIM_ENABLE_IT(htim, TIM_IT_TRIGGER);
5553 __HAL_TIM_DISABLE_DMA(htim, TIM_DMA_TRIGGER);
5575 uint32_t tmpreg = 0U;
5582 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
5585 tmpreg = htim->Instance->CCR1;
5592 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
5595 tmpreg = htim->Instance->CCR2;
5603 assert_param(IS_TIM_CC3_INSTANCE(htim->Instance));
5606 tmpreg = htim->Instance->CCR3;
5614 assert_param(IS_TIM_CC4_INSTANCE(htim->Instance));
5617 tmpreg = htim->Instance->CCR4;
5802 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
5841 HAL_StatusTypeDef status = HAL_OK;
5843 if (pCallback == NULL)
5853 htim->Base_MspInitCallback = pCallback;
5857 htim->Base_MspDeInitCallback = pCallback;
5861 htim->IC_MspInitCallback = pCallback;
5865 htim->IC_MspDeInitCallback = pCallback;
5869 htim->OC_MspInitCallback = pCallback;
5873 htim->OC_MspDeInitCallback = pCallback;
5877 htim->PWM_MspInitCallback = pCallback;
5881 htim->PWM_MspDeInitCallback = pCallback;
5885 htim->OnePulse_MspInitCallback = pCallback;
5889 htim->OnePulse_MspDeInitCallback = pCallback;
5893 htim->Encoder_MspInitCallback = pCallback;
5897 htim->Encoder_MspDeInitCallback = pCallback;
5901 htim->HallSensor_MspInitCallback = pCallback;
5905 htim->HallSensor_MspDeInitCallback = pCallback;
5909 htim->PeriodElapsedCallback = pCallback;
5913 htim->PeriodElapsedHalfCpltCallback = pCallback;
5917 htim->TriggerCallback = pCallback;
5921 htim->TriggerHalfCpltCallback = pCallback;
5925 htim->IC_CaptureCallback = pCallback;
5929 htim->IC_CaptureHalfCpltCallback = pCallback;
5933 htim->OC_DelayElapsedCallback = pCallback;
5937 htim->PWM_PulseFinishedCallback = pCallback;
5941 htim->PWM_PulseFinishedHalfCpltCallback = pCallback;
5945 htim->ErrorCallback = pCallback;
5949 htim->CommutationCallback = pCallback;
5953 htim->CommutationHalfCpltCallback = pCallback;
5957 htim->BreakCallback = pCallback;
5971 htim->Base_MspInitCallback = pCallback;
5975 htim->Base_MspDeInitCallback = pCallback;
5979 htim->IC_MspInitCallback = pCallback;
5983 htim->IC_MspDeInitCallback = pCallback;
5987 htim->OC_MspInitCallback = pCallback;
5991 htim->OC_MspDeInitCallback = pCallback;
5995 htim->PWM_MspInitCallback = pCallback;
5999 htim->PWM_MspDeInitCallback = pCallback;
6003 htim->OnePulse_MspInitCallback = pCallback;
6007 htim->OnePulse_MspDeInitCallback = pCallback;
6011 htim->Encoder_MspInitCallback = pCallback;
6015 htim->Encoder_MspDeInitCallback = pCallback;
6019 htim->HallSensor_MspInitCallback = pCallback;
6023 htim->HallSensor_MspDeInitCallback = pCallback;
6078 HAL_StatusTypeDef status = HAL_OK;
6401 return htim->Channel;
6422 assert_param(IS_TIM_CCX_INSTANCE(htim->Instance, Channel));
6424 channel_state = TIM_CHANNEL_STATE_GET(htim, Channel);
6426 return channel_state;
6437 assert_param(IS_TIM_DMABURST_INSTANCE(htim->Instance));
6439 return htim->DMABurstState;
6463 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6468 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6473 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6478 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6488 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6489 htim->ErrorCallback(htim);
6506 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6510 if (hdma->
Init.Mode == DMA_NORMAL)
6515 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6519 if (hdma->
Init.Mode == DMA_NORMAL)
6524 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6528 if (hdma->
Init.Mode == DMA_NORMAL)
6533 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6537 if (hdma->
Init.Mode == DMA_NORMAL)
6547 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6548 htim->PWM_PulseFinishedCallback(htim);
6565 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6569 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6573 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6577 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6586 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6587 htim->PWM_PulseFinishedHalfCpltCallback(htim);
6604 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6608 if (hdma->
Init.Mode == DMA_NORMAL)
6614 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6618 if (hdma->
Init.Mode == DMA_NORMAL)
6624 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6628 if (hdma->
Init.Mode == DMA_NORMAL)
6634 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6638 if (hdma->
Init.Mode == DMA_NORMAL)
6649 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6650 htim->IC_CaptureCallback(htim);
6667 if (hdma == htim->hdma[TIM_DMA_ID_CC1])
6671 else if (hdma == htim->hdma[TIM_DMA_ID_CC2])
6675 else if (hdma == htim->hdma[TIM_DMA_ID_CC3])
6679 else if (hdma == htim->hdma[TIM_DMA_ID_CC4])
6688 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6689 htim->IC_CaptureHalfCpltCallback(htim);
6706 if (htim->hdma[TIM_DMA_ID_UPDATE]->Init.Mode == DMA_NORMAL)
6711 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6712 htim->PeriodElapsedCallback(htim);
6727 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6728 htim->PeriodElapsedHalfCpltCallback(htim);
6743 if (htim->hdma[TIM_DMA_ID_TRIGGER]->Init.Mode == DMA_NORMAL)
6748 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6749 htim->TriggerCallback(htim);
6764 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
6765 htim->TriggerHalfCpltCallback(htim);
6783 if (IS_TIM_COUNTER_MODE_SELECT_INSTANCE(TIMx))
6786 tmpcr1 &= ~(TIM_CR1_DIR | TIM_CR1_CMS);
6790 if (IS_TIM_CLOCK_DIVISION_INSTANCE(TIMx))
6793 tmpcr1 &= ~TIM_CR1_CKD;
6803 TIMx->ARR = (uint32_t)Structure->
Period ;
6808 if (IS_TIM_REPETITION_COUNTER_INSTANCE(TIMx))
6816 TIMx->EGR = TIM_EGR_UG;
6819 if (HAL_IS_BIT_SET(TIMx->SR, TIM_FLAG_UPDATE))
6822 CLEAR_BIT(TIMx->SR, TIM_FLAG_UPDATE);
6832 static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx,
const TIM_OC_InitTypeDef *OC_Config)
6839 tmpccer = TIMx->CCER;
6842 TIMx->CCER &= ~TIM_CCER_CC1E;
6848 tmpccmrx = TIMx->CCMR1;
6851 tmpccmrx &= ~TIM_CCMR1_OC1M;
6852 tmpccmrx &= ~TIM_CCMR1_CC1S;
6854 tmpccmrx |= OC_Config->
OCMode;
6857 tmpccer &= ~TIM_CCER_CC1P;
6861 if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_1))
6864 assert_param(IS_TIM_OCN_POLARITY(OC_Config->
OCNPolarity));
6867 tmpccer &= ~TIM_CCER_CC1NP;
6871 tmpccer &= ~TIM_CCER_CC1NE;
6874 if (IS_TIM_BREAK_INSTANCE(TIMx))
6877 assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->
OCNIdleState));
6878 assert_param(IS_TIM_OCIDLE_STATE(OC_Config->
OCIdleState));
6881 tmpcr2 &= ~TIM_CR2_OIS1;
6882 tmpcr2 &= ~TIM_CR2_OIS1N;
6893 TIMx->CCMR1 = tmpccmrx;
6896 TIMx->CCR1 = OC_Config->
Pulse;
6899 TIMx->CCER = tmpccer;
6915 tmpccer = TIMx->CCER;
6918 TIMx->CCER &= ~TIM_CCER_CC2E;
6924 tmpccmrx = TIMx->CCMR1;
6927 tmpccmrx &= ~TIM_CCMR1_OC2M;
6928 tmpccmrx &= ~TIM_CCMR1_CC2S;
6931 tmpccmrx |= (OC_Config->
OCMode << 8U);
6934 tmpccer &= ~TIM_CCER_CC2P;
6938 if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_2))
6940 assert_param(IS_TIM_OCN_POLARITY(OC_Config->
OCNPolarity));
6943 tmpccer &= ~TIM_CCER_CC2NP;
6947 tmpccer &= ~TIM_CCER_CC2NE;
6950 if (IS_TIM_BREAK_INSTANCE(TIMx))
6953 assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->
OCNIdleState));
6954 assert_param(IS_TIM_OCIDLE_STATE(OC_Config->
OCIdleState));
6957 tmpcr2 &= ~TIM_CR2_OIS2;
6958 tmpcr2 &= ~TIM_CR2_OIS2N;
6969 TIMx->CCMR1 = tmpccmrx;
6972 TIMx->CCR2 = OC_Config->
Pulse;
6975 TIMx->CCER = tmpccer;
6984 static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx,
const TIM_OC_InitTypeDef *OC_Config)
6991 tmpccer = TIMx->CCER;
6994 TIMx->CCER &= ~TIM_CCER_CC3E;
7000 tmpccmrx = TIMx->CCMR2;
7003 tmpccmrx &= ~TIM_CCMR2_OC3M;
7004 tmpccmrx &= ~TIM_CCMR2_CC3S;
7006 tmpccmrx |= OC_Config->
OCMode;
7009 tmpccer &= ~TIM_CCER_CC3P;
7013 if (IS_TIM_CCXN_INSTANCE(TIMx, TIM_CHANNEL_3))
7015 assert_param(IS_TIM_OCN_POLARITY(OC_Config->
OCNPolarity));
7018 tmpccer &= ~TIM_CCER_CC3NP;
7022 tmpccer &= ~TIM_CCER_CC3NE;
7025 if (IS_TIM_BREAK_INSTANCE(TIMx))
7028 assert_param(IS_TIM_OCNIDLE_STATE(OC_Config->
OCNIdleState));
7029 assert_param(IS_TIM_OCIDLE_STATE(OC_Config->
OCIdleState));
7032 tmpcr2 &= ~TIM_CR2_OIS3;
7033 tmpcr2 &= ~TIM_CR2_OIS3N;
7044 TIMx->CCMR2 = tmpccmrx;
7047 TIMx->CCR3 = OC_Config->
Pulse;
7050 TIMx->CCER = tmpccer;
7059 static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx,
const TIM_OC_InitTypeDef *OC_Config)
7066 tmpccer = TIMx->CCER;
7069 TIMx->CCER &= ~TIM_CCER_CC4E;
7075 tmpccmrx = TIMx->CCMR2;
7078 tmpccmrx &= ~TIM_CCMR2_OC4M;
7079 tmpccmrx &= ~TIM_CCMR2_CC4S;
7082 tmpccmrx |= (OC_Config->
OCMode << 8U);
7085 tmpccer &= ~TIM_CCER_CC4P;
7089 if (IS_TIM_BREAK_INSTANCE(TIMx))
7092 assert_param(IS_TIM_OCIDLE_STATE(OC_Config->
OCIdleState));
7095 tmpcr2 &= ~TIM_CR2_OIS4;
7105 TIMx->CCMR2 = tmpccmrx;
7108 TIMx->CCR4 = OC_Config->
Pulse;
7111 TIMx->CCER = tmpccer;
7123 HAL_StatusTypeDef status = HAL_OK;
7129 tmpsmcr = htim->Instance->SMCR;
7132 tmpsmcr &= ~TIM_SMCR_TS;
7137 tmpsmcr &= ~TIM_SMCR_SMS;
7142 htim->Instance->SMCR = tmpsmcr;
7150 assert_param(IS_TIM_CLOCKSOURCE_ETRMODE1_INSTANCE(htim->Instance));
7153 assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->
TriggerFilter));
7162 case TIM_TS_TI1F_ED:
7165 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
7166 assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->
TriggerFilter));
7168 if (sSlaveConfig->
SlaveMode == TIM_SLAVEMODE_GATED)
7174 tmpccer = htim->Instance->CCER;
7175 htim->Instance->CCER &= ~TIM_CCER_CC1E;
7176 tmpccmr1 = htim->Instance->CCMR1;
7179 tmpccmr1 &= ~TIM_CCMR1_IC1F;
7183 htim->Instance->CCMR1 = tmpccmr1;
7184 htim->Instance->CCER = tmpccer;
7191 assert_param(IS_TIM_CC1_INSTANCE(htim->Instance));
7193 assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->
TriggerFilter));
7196 TIM_TI1_ConfigInputStage(htim->Instance,
7205 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
7207 assert_param(IS_TIM_TRIGGERFILTER(sSlaveConfig->
TriggerFilter));
7210 TIM_TI2_ConfigInputStage(htim->Instance,
7222 assert_param(IS_TIM_CC2_INSTANCE(htim->Instance));
7255 uint32_t TIM_ICFilter)
7261 tmpccer = TIMx->CCER;
7262 TIMx->CCER &= ~TIM_CCER_CC1E;
7263 tmpccmr1 = TIMx->CCMR1;
7266 if (IS_TIM_CC2_INSTANCE(TIMx) != RESET)
7268 tmpccmr1 &= ~TIM_CCMR1_CC1S;
7269 tmpccmr1 |= TIM_ICSelection;
7273 tmpccmr1 |= TIM_CCMR1_CC1S_0;
7277 tmpccmr1 &= ~TIM_CCMR1_IC1F;
7278 tmpccmr1 |= ((TIM_ICFilter << 4U) & TIM_CCMR1_IC1F);
7281 tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP);
7282 tmpccer |= (TIM_ICPolarity & (TIM_CCER_CC1P | TIM_CCER_CC1NP));
7285 TIMx->CCMR1 = tmpccmr1;
7286 TIMx->CCER = tmpccer;
7301 static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter)
7307 tmpccer = TIMx->CCER;
7308 TIMx->CCER &= ~TIM_CCER_CC1E;
7309 tmpccmr1 = TIMx->CCMR1;
7312 tmpccmr1 &= ~TIM_CCMR1_IC1F;
7313 tmpccmr1 |= (TIM_ICFilter << 4U);
7316 tmpccer &= ~(TIM_CCER_CC1P | TIM_CCER_CC1NP);
7317 tmpccer |= TIM_ICPolarity;
7320 TIMx->CCMR1 = tmpccmr1;
7321 TIMx->CCER = tmpccer;
7344 static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
7345 uint32_t TIM_ICFilter)
7351 tmpccer = TIMx->CCER;
7352 TIMx->CCER &= ~TIM_CCER_CC2E;
7353 tmpccmr1 = TIMx->CCMR1;
7356 tmpccmr1 &= ~TIM_CCMR1_CC2S;
7357 tmpccmr1 |= (TIM_ICSelection << 8U);
7360 tmpccmr1 &= ~TIM_CCMR1_IC2F;
7361 tmpccmr1 |= ((TIM_ICFilter << 12U) & TIM_CCMR1_IC2F);
7364 tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP);
7365 tmpccer |= ((TIM_ICPolarity << 4U) & (TIM_CCER_CC2P | TIM_CCER_CC2NP));
7368 TIMx->CCMR1 = tmpccmr1 ;
7369 TIMx->CCER = tmpccer;
7384 static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICFilter)
7390 tmpccer = TIMx->CCER;
7391 TIMx->CCER &= ~TIM_CCER_CC2E;
7392 tmpccmr1 = TIMx->CCMR1;
7395 tmpccmr1 &= ~TIM_CCMR1_IC2F;
7396 tmpccmr1 |= (TIM_ICFilter << 12U);
7399 tmpccer &= ~(TIM_CCER_CC2P | TIM_CCER_CC2NP);
7400 tmpccer |= (TIM_ICPolarity << 4U);
7403 TIMx->CCMR1 = tmpccmr1 ;
7404 TIMx->CCER = tmpccer;
7427 static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
7428 uint32_t TIM_ICFilter)
7434 tmpccer = TIMx->CCER;
7435 TIMx->CCER &= ~TIM_CCER_CC3E;
7436 tmpccmr2 = TIMx->CCMR2;
7439 tmpccmr2 &= ~TIM_CCMR2_CC3S;
7440 tmpccmr2 |= TIM_ICSelection;
7443 tmpccmr2 &= ~TIM_CCMR2_IC3F;
7444 tmpccmr2 |= ((TIM_ICFilter << 4U) & TIM_CCMR2_IC3F);
7447 tmpccer &= ~(TIM_CCER_CC3P | TIM_CCER_CC3NP);
7448 tmpccer |= ((TIM_ICPolarity << 8U) & (TIM_CCER_CC3P | TIM_CCER_CC3NP));
7451 TIMx->CCMR2 = tmpccmr2;
7452 TIMx->CCER = tmpccer;
7475 static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection,
7476 uint32_t TIM_ICFilter)
7482 tmpccer = TIMx->CCER;
7483 TIMx->CCER &= ~TIM_CCER_CC4E;
7484 tmpccmr2 = TIMx->CCMR2;
7487 tmpccmr2 &= ~TIM_CCMR2_CC4S;
7488 tmpccmr2 |= (TIM_ICSelection << 8U);
7491 tmpccmr2 &= ~TIM_CCMR2_IC4F;
7492 tmpccmr2 |= ((TIM_ICFilter << 12U) & TIM_CCMR2_IC4F);
7495 tmpccer &= ~(TIM_CCER_CC4P | TIM_CCER_CC4NP);
7496 tmpccer |= ((TIM_ICPolarity << 12U) & (TIM_CCER_CC4P | TIM_CCER_CC4NP));
7499 TIMx->CCMR2 = tmpccmr2;
7500 TIMx->CCER = tmpccer ;
7518 static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerSource)
7523 tmpsmcr = TIMx->SMCR;
7525 tmpsmcr &= ~TIM_SMCR_TS;
7527 tmpsmcr |= (InputTriggerSource | TIM_SLAVEMODE_EXTERNAL1);
7529 TIMx->SMCR = tmpsmcr;
7549 uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
7553 tmpsmcr = TIMx->SMCR;
7556 tmpsmcr &= ~(TIM_SMCR_ETF | TIM_SMCR_ETPS | TIM_SMCR_ECE | TIM_SMCR_ETP);
7559 tmpsmcr |= (uint32_t)(TIM_ExtTRGPrescaler | (TIM_ExtTRGPolarity | (ExtTRGFilter << 8U)));
7562 TIMx->SMCR = tmpsmcr;
7583 assert_param(IS_TIM_CC1_INSTANCE(TIMx));
7584 assert_param(IS_TIM_CHANNELS(Channel));
7586 tmp = TIM_CCER_CC1E << (Channel & 0x1FU);
7592 TIMx->CCER |= (uint32_t)(ChannelState << (Channel & 0x1FU));
7595 #if (USE_HAL_TIM_REGISTER_CALLBACKS == 1)
HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma)
Aborts the DMA Transfer in Interrupt mode.
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.
void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Hall Sensor MSP.
void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Hall Sensor MSP.
void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim)
Break detection callback in non-blocking mode.
void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim)
Commutation callback in non-blocking mode.
void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim)
Commutation half complete callback in non-blocking mode.
void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Commutation half complete callback.
void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma)
TIM DMA Commutation callback.
HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(const TIM_HandleTypeDef *htim)
Return the TIM One Pulse Mode handle state.
HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Input Capture handle state.
HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(const TIM_HandleTypeDef *htim, uint32_t Channel)
Return actual state of the TIM channel.
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Base handle state.
HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(const TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(const TIM_HandleTypeDef *htim)
Return the TIM PWM handle state.
HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(const TIM_HandleTypeDef *htim)
Return the TIM Encoder Mode handle state.
HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(const TIM_HandleTypeDef *htim)
Return actual state of a DMA burst operation.
HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(const TIM_HandleTypeDef *htim)
Return the TIM OC handle state.
HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Time base Unit according to the specified parameters in the TIM_HandleTypeDef and...
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, const uint32_t *pData, uint16_t Length)
Starts the TIM Base generation in DMA mode.
void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Base MSP.
HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim)
Stops the TIM Base generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim)
Stops the TIM Base generation.
HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Base peripheral.
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim)
Starts the TIM Base generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim)
Starts the TIM Base generation.
void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
Starts the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation.
HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare according to the specified parameters in the TIM_HandleTypeDef and...
HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation.
void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Output Compare MSP.
HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Output Compare signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim)
Initializes the TIM PWM Time Base according to the specified parameters in the TIM_HandleTypeDef and ...
HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, const uint32_t *pData, uint16_t Length)
Starts the TIM PWM signal generation in DMA mode.
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM PWM MSP.
HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM PWM MSP.
HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the PWM signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM PWM signal generation in DMA mode.
HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the PWM signal generation.
HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement.
void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim)
Initializes the TIM Input Capture Time base according to the specified parameters in the TIM_HandleTy...
HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in DMA mode.
HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement.
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Input Capture measurement in interrupt mode.
HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
Starts the TIM Input Capture measurement in DMA mode.
void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Input Capture MSP.
HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Input Capture measurement in interrupt mode.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_t OnePulseMode)
Initializes the TIM One Pulse Time Base according to the specified parameters in the TIM_HandleTypeDe...
void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM One Pulse MSP.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation in interrupt mode.
void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM One Pulse MSP.
HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Stops the TIM One Pulse signal generation.
HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM One Pulse.
HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uint32_t OutputChannel)
Starts the TIM One Pulse signal generation in interrupt mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in DMA mode.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData1, uint32_t *pData2, uint16_t Length)
Starts the TIM Encoder Interface in DMA mode.
void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim)
Initializes the TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Starts the TIM Encoder Interface in interrupt mode.
void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim)
DeInitializes TIM Encoder Interface MSP.
HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim)
DeInitializes the TIM Encoder interface.
HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, const TIM_Encoder_InitTypeDef *sConfig)
Initializes the TIM Encoder Interface and initialize the associated handle.
HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
Stops the TIM Encoder Interface in interrupt mode.
void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim)
This function handles TIM interrupts requests.
HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_IC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Input Capture Channels according to the specified parameters in the TIM_IC_InitTy...
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
Configure the DMA Burst to transfer multiple Data from the memory to the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM PWM channels according to the specified parameters in the TIM_OC_InitTypeDef.
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, const uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the memory to the TIM peripheral.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stop the DMA burst reading.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode.
HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim, const TIM_SlaveConfigTypeDef *sSlaveConfig)
Configures the TIM in Slave mode in interrupt mode.
uint32_t HAL_TIM_ReadCapturedValue(const TIM_HandleTypeDef *htim, uint32_t Channel)
Read the captured value from Capture Compare unit.
HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *htim, uint32_t BurstBaseAddress, uint32_t BurstRequestSrc, uint32_t *BurstBuffer, uint32_t BurstLength, uint32_t DataLength)
Configure the DMA Burst to transfer Data from the TIM peripheral to the memory.
HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32_t TI1_Selection)
Selects the signal connected to the TI1 input: direct from CH1_input or a XOR combination between CH1...
HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, uint32_t BurstRequestSrc)
Stops the TIM DMA Burst mode.
HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, const TIM_OC_InitTypeDef *sConfig, uint32_t Channel)
Initializes the TIM Output Compare Channels according to the specified parameters in the TIM_OC_InitT...
HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, const TIM_ClockConfigTypeDef *sClockSourceConfig)
Configures the clock source to be used.
HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_t EventSource)
Generate a software event.
HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, const TIM_ClearInputConfigTypeDef *sClearInputConfig, uint32_t Channel)
Configures the OCRef clear feature.
HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim, TIM_OnePulse_InitTypeDef *sConfig, uint32_t OutputChannel, uint32_t InputChannel)
Initializes the TIM One Pulse Channels according to the specified parameters in the TIM_OnePulse_Init...
HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID)
Unregister a TIM callback TIM callback is redirected to the weak predefined callback.
void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection half complete callback in non-blocking mode.
void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim)
Input Capture half complete callback in non-blocking mode.
void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim)
Output Compare callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished half complete callback in non-blocking mode.
void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim)
Timer error callback in non-blocking mode.
void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
PWM Pulse finished callback in non-blocking mode.
void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim)
Hall Trigger detection callback in non-blocking mode.
void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim)
Period elapsed half complete callback in non-blocking mode.
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
Period elapsed callback in non-blocking mode.
HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_TIM_CallbackIDTypeDef CallbackID, pTIM_CallbackTypeDef pCallback)
Register a User TIM callback to be used instead of the weak predefined callback.
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
Input Capture callback in non-blocking mode.
uint32_t AutoReloadPreload
uint32_t ClearInputPolarity
uint32_t ClearInputPrescaler
uint32_t TriggerPrescaler
uint32_t ClearInputFilter
uint32_t ClearInputSource
uint32_t RepetitionCounter
HAL_TIM_ChannelStateTypeDef
TIM Channel States definition.
void(* pTIM_CallbackTypeDef)(TIM_HandleTypeDef *htim)
HAL TIM Callback pointer definition.
HAL_TIM_DMABurstStateTypeDef
DMA Burst States definition.
HAL_TIM_ActiveChannel
HAL Active channel structures definition.
HAL_TIM_CallbackIDTypeDef
HAL TIM Callback ID enumeration definition.
HAL_TIM_StateTypeDef
HAL State structures definition.
struct __TIM_HandleTypeDef else typedef struct endif TIM_HandleTypeDef
TIM Time Base Handle Structure definition.
@ HAL_TIM_CHANNEL_STATE_READY
@ HAL_TIM_CHANNEL_STATE_RESET
@ HAL_TIM_CHANNEL_STATE_BUSY
@ HAL_DMA_BURST_STATE_BUSY
@ HAL_DMA_BURST_STATE_READY
@ HAL_DMA_BURST_STATE_RESET
@ HAL_TIM_ACTIVE_CHANNEL_1
@ HAL_TIM_ACTIVE_CHANNEL_CLEARED
@ HAL_TIM_ACTIVE_CHANNEL_4
@ HAL_TIM_ACTIVE_CHANNEL_3
@ HAL_TIM_ACTIVE_CHANNEL_2
@ HAL_TIM_ONE_PULSE_MSPDEINIT_CB_ID
@ HAL_TIM_ONE_PULSE_MSPINIT_CB_ID
@ HAL_TIM_BASE_MSPDEINIT_CB_ID
@ HAL_TIM_COMMUTATION_CB_ID
@ HAL_TIM_OC_MSPINIT_CB_ID
@ HAL_TIM_OC_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_PULSE_FINISHED_CB_ID
@ HAL_TIM_ENCODER_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_PULSE_FINISHED_HALF_CB_ID
@ HAL_TIM_ENCODER_MSPINIT_CB_ID
@ HAL_TIM_BASE_MSPINIT_CB_ID
@ HAL_TIM_COMMUTATION_HALF_CB_ID
@ HAL_TIM_IC_CAPTURE_CB_ID
@ HAL_TIM_IC_CAPTURE_HALF_CB_ID
@ HAL_TIM_OC_DELAY_ELAPSED_CB_ID
@ HAL_TIM_PWM_MSPINIT_CB_ID
@ HAL_TIM_IC_MSPINIT_CB_ID
@ HAL_TIM_HALL_SENSOR_MSPDEINIT_CB_ID
@ HAL_TIM_PWM_MSPDEINIT_CB_ID
@ HAL_TIM_PERIOD_ELAPSED_CB_ID
@ HAL_TIM_HALL_SENSOR_MSPINIT_CB_ID
@ HAL_TIM_PERIOD_ELAPSED_HALF_CB_ID
@ HAL_TIM_IC_MSPDEINIT_CB_ID
@ HAL_TIM_TRIGGER_HALF_CB_ID
TIM Time base Configuration Structure definition.
Clock Configuration Handle Structure definition.
TIM Encoder Configuration Structure definition.
TIM Input Capture Configuration Structure definition.
TIM Output Compare Configuration Structure definition.
TIM One Pulse Mode Configuration Structure definition.
TIM Slave configuration Structure definition.
void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, uint32_t TIM_ExtTRGPolarity, uint32_t ExtTRGFilter)
Configures the TIMx External Trigger (ETR).
void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture half complete callback.
void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, const TIM_OC_InitTypeDef *OC_Config)
Timer Output Compare 2 configuration.
void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma)
TIM DMA Capture complete callback.
void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t ChannelState)
Enables or disables the TIM Capture Compare Channel x.
void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint32_t TIM_ICSelection, uint32_t TIM_ICFilter)
Configure the TI1 as Input.
void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma)
TIM DMA Delay Pulse half complete callback.
void TIM_DMAError(DMA_HandleTypeDef *hdma)
TIM DMA error callback.
void TIM_Base_SetConfig(TIM_TypeDef *TIMx, const TIM_Base_InitTypeDef *Structure)
Time Base configuration.
void TIM_ResetCallback(TIM_HandleTypeDef *htim)
Reset interrupt callbacks to the legacy weak callbacks.
This file contains all the functions prototypes for the HAL module driver.
DMA handle Structure definition.