21#include "stm32h7xx_hal.h"
22#include "stm32h7xx_hal_tim.h"
43 RCC_ClkInitTypeDef clkconfig;
44 uint32_t uwTimclock, uwAPB1Prescaler;
45 uint32_t uwPrescalerValue;
49 if (TickPriority < (1UL << __NVIC_PRIO_BITS))
51 HAL_NVIC_SetPriority(TIM4_IRQn, TickPriority ,0);
54 HAL_NVIC_EnableIRQ(TIM4_IRQn);
55 uwTickPrio = TickPriority;
63 __HAL_RCC_TIM4_CLK_ENABLE();
66 HAL_RCC_GetClockConfig(&clkconfig, &pFLatency);
69 uwAPB1Prescaler = clkconfig.APB1CLKDivider;
71 if (uwAPB1Prescaler == RCC_HCLK_DIV1)
73 uwTimclock = HAL_RCC_GetPCLK1Freq();
77 uwTimclock = 2UL * HAL_RCC_GetPCLK1Freq();
81 uwPrescalerValue = (uint32_t) ((uwTimclock / 1000000U) - 1U);
84 htim4.Instance = TIM4;
92 htim4.Init.Period = (1000000U / 1000U) - 1U;
93 htim4.Init.Prescaler = uwPrescalerValue;
94 htim4.Init.ClockDivision = 0;
95 htim4.Init.CounterMode = TIM_COUNTERMODE_UP;
100 return HAL_TIM_Base_Start_IT(&
htim4);
116 __HAL_TIM_DISABLE_IT(&
htim4, TIM_IT_UPDATE);
128 __HAL_TIM_ENABLE_IT(&
htim4, TIM_IT_UPDATE);
void HAL_ResumeTick(void)
Resume Tick increment.
HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
This function configures the TIM4 as a time base source. The time source is configured to have 1ms ti...
void HAL_SuspendTick(void)
Suspend Tick increment.
HAL_StatusTypeDef
HAL Status structures definition.