第十一届蓝桥杯物联网设计与开发实验——ex9 EXTI外部中断实验

基础实验 – 基于省赛资源套装

ex9 EXTI外部中断实验

实验目的:掌握EXTI的使用方法。
实验内容:按下USER按键触发外部中断EXTI14。
实验现象:每按下一次USER按键,LD5灯显示反转一次。

中断概念

中断全过程
  1. 中断发生——当CPU在处理某一事件A时, 发生了另一事件B,请求CPU迅速去处理
  2. 中断处理 ——CPU暂停当前的工作,转去处理事件B
  3. 中断返回——当CPU将事件B处理完毕后,再回到事件A中被暂停的地方继续处理事件A
    以上三个过程称为中断
    在这里插入图片描述
中断优先级

处理器根据不同中断的重要程序设置不同的优先等级。不同优先级中断的处理原则是:高级中断可以打断低级中断;低级中断不能打断高级中断。
在这里插入图片描述

中断的嵌套

中断的嵌套

中断的响应过程

在这里插入图片描述

引脚分组

在这里插入图片描述

编程步骤

在这里插入图片描述
在这里插入图片描述

STM32CubeMX配置

  1. 目标选择
  2. 引脚分配
  3. 外设配置
  4. 时钟配置
  5. 工程配置
1.目标选择

新建工程
在这里插入图片描述
选择MCU 输入STM32L071KB
在这里插入图片描述
在这里插入图片描述

2.引脚分配

PC15引脚:GPIO_Output(输出模式)
在这里插入图片描述
PC14引脚:GPIO_EXTI14(中断模式)
在这里插入图片描述

3.外设配置

在这里插入图片描述
PC15引脚配置
GPIO输出电平:高
GPIO模式:推挽输出
GPIO上拉电阻/下拉电阻:不上拉电阻/下拉电阻
输出速度:低
在这里插入图片描述
PC14引脚配置
GPIO模式:中断模式,下降沿触发(按键按下时,由高电平变为低电平,下降沿)
GPIO上拉电阻/下拉电阻:不上拉电阻/下拉电阻
在这里插入图片描述
在这里插入图片描述

4.时钟配置

时钟源:旁路时钟源
在这里插入图片描述
时钟频率:32MHz
在这里插入图片描述

5.工程配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

keil5程序编写

1.选择STM32L071KBUx芯片

在这里插入图片描述

2.添加代码

USER CODE BEGIN 4USER CODE END 4之间添加中断回调函数

void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
    HAL_GPIO_TogglePin(GPIOC, GPIO_PIN_15);
}

当USER按键按下后,触发外部中断,进入中断服务函数,中断服务函数调用该Callback函数。函数中将LD5的状态反转。

3.HAL库函数解析

外部中断通用处理函数 : void HAL GPIO_ EXTI IRQHandler(uint16_ t GPIO Pin)

功能描述作为所有外部中断发生后的通用处理函数,所有外部中断服务程序均调用该函数完成中断处理,函数内部调用外部中断回调函数HAL GPIO EXTI Callback完成实际的
入口参数GPIO Pin:连接到对应外部中断线的引脚,范围是GPIO PIN 0 ~ GPIO PIN 15

外部中断回调函数 : void HAL GPIO_ EXTI Callback(uint16_ t GPIO_ Pin)

功能描述外部中断回调函数,用于处理具体的中断任务,该函数由外部中断通用处理函数HAL GPIO EXTI IRQHandler调用,完成所有外部中断的任务处理
入口参数GPIO Pin:连接到对应外部中断线的引脚,范围是GPIO_PIN_0 ~ GPIO_PIN_15

GPIO输入读取函数 : HAL_GPIO_ReadPin(GPIOx, GPIO_Pin)

入口参数描述
GPIOxGPIO端口,GPIOA~GPIOC
GPIO_Pin连接到对应外部中断线的引脚,范围是GPIO_PIN_0 ~ GPIO_PIN_15
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小码农正在搬砖中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值