基于STM32外部中断控制LED

目录

前言

一、中断相关基本概念

1、中断全过程概述

 2、中断的作用

3、中断优先级

二、CubeMX初始相关配置

1、芯片选型

2、时钟配置 

 3、GPIO配置

 4、NVIC外部中断使能

 5、配置工程文件输出

三、Keil相关程序编写烧录

1、程序代码分析

 二、程序生成.HEX文件的烧录

四、实验效果

五、参考

六、总结


前言

相关外设初始化:STM32CubeMX

程序编译器:KEIL

烧录:FlyMcu

硬件:stm32c8t6

一、中断相关基本概念

1、中断全过程概述

1、中断发生:当CPU在处理某一事件A时,发生了另一事件B,请求 CPU迅速去处理

2、中断处理:CPU暂停当前的工作,转去处理事件B
3、中断返回:当CPU将事件B处理完毕后,再回到事件A中被暂停的地方继续处理事件A
 以上全过程称为中断
· 中断执行示意图

 2、中断的作用

速度匹配:可以解决快速的CPU与慢速的外部设备之间传送数据的矛盾

分时操作:CPU可以分时为多个外部设备服务,提高计算机的利用率

实时响应:CPU能够及时处理应用系统的随机事件,增强系统的实时性

可靠性高:CPU可以处理设备故障及掉电等突发事件,提高系统可靠性

3、中断优先级

处理器根据不同中断的重要程序设置不同的优先等级。不同优先级中断的处理原则是:高级中断可以打断低级中断;低级中断不能打断高级中断

二、CubeMX初始相关配置

1、芯片选型

2、时钟配置 

首先选择高速外部时钟作为系统时钟的输入,然后时钟树具体配置如下

 3、GPIO配置

PB0设置为外部中断触发引脚

PA2设置为输出引脚

 4、NVIC外部中断使能

· 使能外部中断

外部中断触发方式

· 上升沿触发

· 下降沿触发

·  上升/下降沿(双边沿)触发

 · 配置外部中断

 5、配置工程文件输出

三、Keil相关程序编写烧录

1、程序代码分析

· 外部中断触发和输出引脚初始化配置

 · 当PB0由低电平变化到高电平(上升沿)进入外部中断0服务函数

 · 点击鼠标右键GO to Definition去到定义

   中断服务函数执行完后进入回调函数,我们就可以在回调函数里面编写我们需要执行的中断服务

通过再次判断中断触发引脚电平来消除按键触发电平的抖动

 · 工程代码传送门:LED_EXTI0 · 范特西

 二、程序生成.HEX文件的烧录

· 硬件连接

· 程序烧录

 

四、实验效果

外部中断按键实验

五、参考

stm32外部中断模式控制灯亮灭

六、总结

        通过外部中断按键实验,体验到了嵌入式开发中断的特点,它不同于前面的while循环顺序执行所有程序,而是在中断被触发的时候才会进入到中断服务函数取执行相应代码段,执行完之后立马跳回主程序继续执行,通过中断方式可以很好提升嵌入式芯片的处理数据的效率,认真学习掌握嵌入式芯片中断的执行方式,可以使它更加高效的运用到我们的项目作品当中来。

猜你喜欢

转载自blog.csdn.net/qq_52791446/article/details/127440014