实验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