I'm trying to use the TIM peripheral to count external pulses until a number and throw a interruption. I'm using STM32F429 and HAL library. I am initializing the TIM2 with this code:
void InitializeTimer2()
{
TIM_SlaveConfigTypeDef sSlaveConfig;
TIM_MasterConfigTypeDef sMasterConfig;
htim2.Instance = TIM2;
htim2.Init.Prescaler = 0;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 5;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
if(HAL_TIM_Base_Init(&htim2) != HAL_OK)
{
/* Initialization Error */
Error_Mensage("TIM2");
}
sSlaveConfig.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
sSlaveConfig.InputTrigger = TIM_TS_TI1FP1;
sSlaveConfig.TriggerPolarity = TIM_TRIGGERPOLARITY_RISING;
sSlaveConfig.TriggerFilter = 15;
HAL_TIM_SlaveConfigSynchronization(&htim2, &sSlaveConfig);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);
HAL_TIM_Base_Start_IT(&htim2);
}
But I tried many HAL_TIM functions to get the interruption but with no success.
It will be a pleasure to provide any other helpful code…
Best Answer
the answer is to use the function
HAL_TIM_PeriodElapsedCallback
:I initialized the timer with this:
HAL_TIM_Base_Start_IT(&htim5)
.This code permits to count external pulses and throw an interruption every 10 pulses.
Reggards!!