STM32CUBEMX系列教程之定时器中断实验


扫描以下二维码,关注公众号雍正不秃头获取更多STM32资源及干货!

STM32 HAL库 定时器中断配置_sed


环境:
1、STM32CubeMX 5.3
2、Atollic TrueSTUDIO for STM32 9.3.0
3、战舰迷你板(stm32f103rb)


(一)定时器配置

定时时间计算方法:

STM32 HAL库 定时器中断配置_公众号_02


配置为500ms一次中断:

STM32 HAL库 定时器中断配置_stm32_03


开启定时器中断:

STM32 HAL库 定时器中断配置_stm32_04

(二)代码修改

覆写定时器中断回调函数:

/**
* @brief Period elapsed callback in non-blocking mode
* @param htim TIM handle
* @retval None
*/
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == htim3.Instance)
{
HAL_GPIO_TogglePin(LED0_GPIO_Port, LED0_Pin);
}
}

注意要使能定时器中断:

HAL_TIM_Base_Start_IT(&htim3);

效果如下图,LED0由定时器控制500ms进行一次状态翻转,LED1由while循环控制1s翻转一次状态:

STM32 HAL库 定时器中断配置_定时器中断_05

(三)调试与仿真

STM32 HAL库 定时器中断配置_sed_06


ends…