定时器中断实验
一、实验说明
平台:STM32F103RCT6
本实验为定时器中断实验,使用STM32cube max 配置TIM3定时中断。
注:实验中使用了串口,所以可以沿用上一个串口中断实验的配置。
二、实验操作
1、STM32系统基础配置。
详见上一个实验的步骤1 – 4。
2、配置好串口1。
详见上一个实验。
3、配置定时器
如上图选择定时器3,出现如下界面:
然后配置具体参数:
上一步选择后就会出现这个界面,配置好分频值,计数装载值,注意,第三个箭头那里要使能(ENABLE)自动重新装置值。
时间的计算
这里 Tout = (5000*7200)/72MHZ = 0.5秒,所以0.5秒进一次中断。
4、定时器中断配置
5、然后生成代码
6、工程中添加代码
首先要明确我们使用的是定时器的定时中断,也就是更新中断,所以要找对回调函数。
void TIM3_IRQHandler(void) 在stm32f1xx_it.c中
HAL_TIM_IRQHandler(&htim3);
HAL_TIM_PeriodElapsedCallback(htim);
__weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
这就是这几个函数的跳转顺序,最后一个就是更新中断的回调函数,把它 复制到TIM.c中,如下图
7、开启中断
HAL_TIM_Base_Start_IT(&TIM3_Handler);
8、测试,在中断中写句输出测试一下(实际开发,不会这样干的。)
- 因为要输出检查下串口。
- 下载程序,测试:
结果如下,0.5秒输出一次。