正点原子--STM32定时器学习笔记(1)(更新中....)

F1系列基本定时器(TIM6 / TIM7)

我们的目标是通过TIM6基本定时器定时500ms,让LED0每隔500ms闪一下!

思路:使用定时器6,实现500ms产生一次定时器更新中断,在中断里执行“翻转LED0”。

定时器什么时候会产生更新中断呢?

有两种情况:第一种是定时器计数到ARR值后溢出,这时会伴随更新事件和更新中断的产生;第二种是通过软件的方式,设置UG位产生软件的更新中断,从而产生更新中断

1.工程建立

也是以正点原子HAL库 实验1 跑马灯实验为基础,相当于是工程模板了,我们复制工程,在“Drivers--BSP”目录下建立TIMER文件夹,并创建tim.c和tim.h文件;

正点原子--STM32定时器学习笔记(1)(更新中....)_第1张图片

2.导入tim.c文件

导入方法和上篇帖子一样,不清楚的小伙伴可以参考⬇⬇⬇⬇⬇

正点原子--STM32中断系统学习笔记(2)

在tim.h文件中添加这部分代码(之后自己新建的.c和.h文件都会按照此模板创建)

#ifndef _TIM_H
#define _TIM_H
#include "./SYSTEM/sys/sys.h"

#endif

3.编写代码

我们按照正点原子给的步骤一步步来配置,最重要的是学习配置思路,一通百通!!

正点原子--STM32定时器学习笔记(1)(更新中....)_第2张图片

定时器中断实验配置步骤:

1,配置定时器基础工作参数

2,定时器基础MSP初始化

3,使能更新中断并启动计数器

4,设置优先级,使能中断

5,编写中断服务函数

6,编写定时器更新中断回调函数


今天周五时间有点晚,先发一下,明天白天再写

你可能感兴趣的:(stm32,学习,笔记)