本实验使用定时器触发中断,使LED500ms改变一次状态。
1.配置LED。
2.配置定时器。
3.使能定时器中断。
4.输出工程,可以在stm32f1xx_hal_tim.c文件中看到中断回调函数__weak void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *htim),在time.c文件中重写中断回调函数,再在time.c文件中声明。
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){
if(htim == &htim2){ //判断中断是否来自于定时器1
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin); //翻转LED灯的状态
}
}
5.在主函数中开启中断。
HAL_TIM_Base_Start_IT(&htim2); //通过这行代码,以中断的方式启动定时器。
6.观察到LED每500ms改变一次状态。
LED