先放上简要概述和原理图
中断的触发流程
触发一个中断->到中断向量表去找这个中断的偏移->取到在中断向量表中存放的入口地址->读取地址存放的中断服务函数
这里时钟源选择外部晶振时钟源
注意:这里的Debug一定要选择串行线,要不然程序只能下载一次
下面进行时钟配置
这里将系统时钟设置为168Mhz,APB1设置为42Mhz,APB2设置为84Mhz
这里将LED灯对应的GPIO口初始电平全部设置为高,模式设置为输出。
开关对应的GPIO口复用为外部中断线
模式设置为上升沿触发,当开关处于弹起状态是,GPIO口默认接地处于低电平状态,当开关按下,GPIO口接到VCC电源处于高电平状态,所以这里设置上升沿触发,当开关按下的时候可以触发中断。
这里是中断使能端口,一定要勾选上
这里抢占优先级和子优先级全部设置为0,0
项目相关的配置如下:
然后生成文件
配置好文件后,我们只需要编写中断处理函数即可,在stm32f4xx_it.c中编写
检测按键按下的时候,实现点灯操作
使用下载器下载程序时,这里一定要勾选上。