中断是指把正常正在运行的程序打断,运行中断服务函数,运行完之后再回到主程序。之后笔者会附上详细的介绍。这个是相当重要的知识点,相当于插入任务,可以类似的理解为cpp中线程的join()方法。
首先我们需要再次回顾一下KEY的结构来判断我们的触发条件。
可以看到,我们的普通按键KEY在未按下时候是高电平的高阻态,于是我们接入上拉电阻维持高电平并且使用下降沿触发中断EXTI;我们的触发按键WAKE_UP_KEY在未按下时候是低电平的高阻态,于是我们接入下拉电阻维持低电平并且使用上升沿触发中断EXTI。
这里对上升沿触发中断和下降沿触发中断进行一些简单的解释。上升沿触发就是指在默认初始状态下原来点电位为低电位,在输入高电位信号之后转为高电平,此时便会被判断为中断触发;而下降沿则正好相反,原来的电位为高电平,在输入低电平信号之后转为低电位,此时会被判断为中断触发。
由此容易得知,我们的WAKE_UP_KEY(PA0)设置为下拉输入、上升沿触发中断,KEY0/1/2(PE4/3/2)设置为上拉输入、下降沿触发中断。
然后我们编译一些相关的C语言文件
首先是头文件exti.h:
#ifndef __EXTI_H
#