TIM

用到两个定时器TIM3和TIM4,如何判断是哪个定时器产生的作用?两个定时器产生中断如何判断是哪个产生的?


HAL_TIM_Base_Start_IT (&htim3 );
HAL_TIM_Base_Start_IT (&htim4 );


开启定时器后。


void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
/* NOTE : This function Should not be modified, when the callback is needed,
the __HAL_TIM_PeriodElapsedCallback could be implemented in the user file
*/
if(htim->Instance == TIM3)
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_6);
if(htim->Instance == TIM4 )
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_7);

}


就用上面的语句就可以判断并处理相应的定时中断函数了。
定时器3产生的就执行P6闪烁
定时器4产生的就执行P7闪烁

可以根据这个进行相应的修改,吼吼
已邀请:

BG4RFF

赞同来自:

如果第一个中断是低优先级的,已进入还没处理完,然后第二个是高优先级的,又来了,这时候会不会有矛盾

xiaobai2458

赞同来自: much_mouse Mark2010 june_guo

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
/* NOTE : This function Should not be modified, when the callback is needed,
the __HAL_TIM_PeriodElapsedCallback could be implemented in the user file
*/
uint16_t i;
switch ((uint32_t)(htim->Instance))
{

case (uint32_t)TIM2:
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_7);

break;
case (uint32_t)TIM4:
HAL_GPIO_TogglePin (GPIOF,GPIO_PIN_8);

break;
}
}
这样去处理。

要回复问题请先登录注册