我想做个定时器中断1秒LED灯


我想做个定时器中断1秒LED灯
这是我的TIM2配置
void MX_TIM2_Init(void)
{

TIM_ClockConfigTypeDef sClockSourceConfig;
TIM_SlaveConfigTypeDef sSlaveConfig;
TIM_MasterConfigTypeDef sMasterConfig;

htim2.Instance = TIM2;
htim2.Init.Prescaler = 35999;
htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
htim2.Init.Period = 2000;
htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
htim2.Init.RepetitionCounter = 0;
HAL_TIM_Base_Init(&htim2);

sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL;
HAL_TIM_ConfigClockSource(&htim2, &sClockSourceConfig);

sSlaveConfig.SlaveMode = TIM_SLAVEMODE_RESET;
sSlaveConfig.InputTrigger = TIM_TS_ITR0;
HAL_TIM_SlaveConfigSynchronization(&htim2, &sSlaveConfig);

sMasterConfig.MasterOutputTrigger = TIM_TRGO_UPDATE;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);

}
这是我的回调函数
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
}
怎么都不工作

void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* htim_base)
{

if(htim_base->Instance==TIM2)
{
/ USER CODE BEGIN TIM2_MspInit 0 /

/ USER CODE END TIM2_MspInit 0 /
/ Peripheral clock enable /
__TIM2_CLK_ENABLE();
/ System interrupt init/
HAL_NVIC_SetPriority(TIM2_IRQn, 3, 0);
HAL_NVIC_EnableIRQ(TIM2_IRQn);
/ USER CODE BEGIN TIM2_MspInit 1 /

/ USER CODE END TIM2_MspInit 1 /
}

}

void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
{

if(htim_base->Instance==TIM2)
{
/ USER CODE BEGIN TIM2_MspDeInit 0 /

/ USER CODE END TIM2_MspDeInit 0 /
/ Peripheral clock disable /
__TIM2_CLK_DISABLE();

/ Peripheral interrupt DeInit/
HAL_NVIC_DisableIRQ(TIM2_IRQn);

/ USER CODE BEGIN TIM2_MspDeInit 1 /

/ USER CODE END TIM2_MspDeInit 1 /
}

}


已邀请:

admin

赞同来自: adamancy

楼主没看看论坛里面的关于定时器的使用案例吗?里面至少3.4篇关于定时器的使用,我就不多写了

夕阳泪

赞同来自:

遇到同样的问题,搞了半天了,都不成功,貌似都不进中断,用的是f103c8t6

тαгκёlc

赞同来自: 离弦的箭 幻月

HAL_TIM_Base_Start_IT(&htim2); 加上这句开始计时

wuqiling - 新手

赞同来自:

个人觉得楼主在main 里面没开定时器吧

sleaven

赞同来自:

路过。。。。。

nathanlnw

赞同来自:

HAL_TIM_Base_Start_IT(&htim3);   配置了也不工作


E li - 90后,IT

赞同来自:

请问我一开定时器就进了中断是怎么回事,个人感觉是中断使能位置位了,但是不知道怎么清除这个,HAL版本的不知道怎么清除。请问有做过的吗?想请教一下。

要回复问题请先登录注册