实验1讲了通过延时使LED流水显示,这个实验2讲通过定时器中断来代替延时。现象同样是LED闪烁。
工具:正点原子的STM32F4探索者开发板。
准备:STLINK连接电脑和开发板。然后开发板上电。
工程:采用实验1的工程继续讲
1.知识准备:
1)所用的定时器6通过参考手册得知,是挂载在APB1上的,如图:

2)查看STM32CubeMX,得知APB1定时器时钟是84M

2.设置定时器6参数,别忘了使acitvated处于勾选状态。


3.设置全局的NVIC


4.点击生成代码即可
5.添加开启定时器代码,注意:默认定时器是不开启的,需要我们自己添加代码
6.添加定时器中断回调函数,下图在main中找个地方就可以,也可以单独自己新建个文件。注意,如果不添加此代码,中断发生后会到同样名称的一个弱函数中的,也就没法添加LED翻转的代码了。

7.把原来延时翻转LED0的程序注释掉

8.现在下载程序就可以看到现象了。
9.程序分析
1)全局中断优先级分组生成的代码位置


2)中断后程序执行过程


然后就到我们自己写的回调函数那了,如果我们自己不写,就到了这个弱函数:

10.整个工程分享(含STM32CubeMX 和KEIL5)
链接:https://pan.baidu.com/s/198OC_7PaNzukczUnxwaYYw?pwd=1234
提取码:1234
本文档介绍了如何使用STM32CubeMX配置定时器6,并通过中断代替延时函数控制LED闪烁。实验中,开发板为正点原子的STM32F4探索者,通过设置NVIC全局中断优先级,编写定时器中断回调函数,最终实现LED的周期性翻转。附带工程代码分享。
https://download.youkuaiyun.com/download/Running_A/85589295
6394

被折叠的 条评论
为什么被折叠?



