一、STM32中断
1.中断含义
中断即为一个突发的任务打断了正在进行的任务。
中断分为两类:
①.系统中断,体现在内核。
②.外部中断,体现在外设。
2.中断作用
跟据中断的定义,我们可以通过中断使处理器转而去优先运行正常控制流之外的代码。当中断信号达到肘, CPU 必须停止它当前正在做的事情,并且切换到一个另一个活动。为了做到这就要在内核态堆钱保存程序计数器的当前值 (寄存器的内容) ,并把与中断类型相关的地址放进程序计数量。
① 中断发生:当 CPU 在处理某一事件A时,发生了另一事件 B,请求 CPU 迅速去处理。
② 中断处理:CPU 暂停当前的工作,转去处理事件 B。
③ 中断返回:当 CPU 将事件 B 处理完毕后,再回到事件 A 中被暂停的地方继续处理事件 A。
3.中断优先级
中断允许嵌套,不同的中断有不同的优先级,处理器根据不同中断的重要程序设置不同的优先等级。
不同优先级中断的处理原则是:高级中断可以打断低级中断;低级中断不能打断高级中断。
二、STM32CubeMX点灯
1.设计思路
上拉式按键:
按键按下(接低电平),引脚 PB6 读到低电平
按键释放(接高电平),引脚 PB6 读到高电平
触发方式:
按键按下瞬间,形成下降沿
按键释放瞬间,形成上升沿
2.建立工程
按照常规选择芯片到达当前页面。
将PB6管脚的引脚模式设置为输出模式:GPIO_Output。将作为LED的引脚。
将PA2管脚的引脚模式设置为外部中断:GPIO_EXTI2。
接着我们自定义我们所选择的管脚的名称。同时PA2管脚我们要选择上升沿触发的触发方式:External Interrupt Mode with Rising edge trigger detection。
选择对应的外部中断线,点击Enabled。
配置中断的优先级。
这里用默认的。
设置时钟,设置36M。
然后生成工程文件。
3.编写代码
打开我们生成的文件,找到s