书接上文,本篇是对基本定时器实验部分进行的总结~
实验目标:通过TIM6基本定时器定时500ms,让LED0每隔500ms闪烁。
解决思路:使用定时器6,实现500ms产生一次定时器更新中断,在中断里执行“翻转LED0”。
定时器什么时候会产生更新中断呢?
有两种情况:第一种是定时器计数到ARR值后溢出,这时会伴随更新事件和更新中断的产生;第二种是通过软件的方式,设置UG位产生软件的更新中断,从而产生更新中断。
1.工程建立
也是以正点原子HAL库 实验1 跑马灯实验为基础,相当于是工程模板了,我们复制工程,在“Drivers--BSP”目录下建立TIMER文件夹,并创建tim.c和tim.h文件;
2.导入tim.c文件
导入方法和上篇帖子一样,不清楚的小伙伴可以参考⬇⬇⬇⬇⬇
正点原子--STM32中断系统学习笔记(2)
在tim.h文件中添加这部分代码(之后自己新建的.c和.h文件都会按照此模板创建)
#ifndef _TIM_H
#define _TIM_H
#include "./SYSTEM/sys/sys.h"
#endif
3.编写代码
我们按照正点原子给的步骤一步步来配置,最重要的是学习配置思路,一通百通!!
定时器中断实验配置步骤:
1,配置定时器基础工作参数
2,定时器基础MSP初始化
3,使能更新中断并启动计数器
4,设置优先级,使能中断
5,编写中断服务函数
6,编写定时器更新中断回调函数
今天周六时间有点晚,白天修改了定时器学习笔记(1),先发一下,明天白天再写