STM32F0xx_EXTI中断配置详细过程-按键检测

本文介绍了STM32F030芯片中EXTI外部中断的配置过程,用于按键检测。从概述EXTI功能、硬件设计到详细的代码步骤,包括初始化GPIO、EXTI、NVIC配置及中断服务函数编写。在中断服务函数中,通过读取中断标志位判断按键状态,实现低功耗中断唤醒功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、概述

EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种。因此,EXIT在实际项目开发中也是比较常见的一种。EXTI(External interrupt/event controller) —外部中断/事件控制器, 管理了控制器的 20个中断/事件线。每个中断/事件线都对应有一个边沿检测器,可以实现输入信号的上升沿检测和下降沿的检测。 EXTI 可以实现对每个中断/事件线进行单独置可以单独配置为中断或者事件,以及触发事件的属性。

EXTI功能框图:EXTI功能框图

2、准备工作

本次采用按键作为触发源的方式来使得控制器产生中断,并在中断服务函数中执行相应的命令。按键按下->LED状态做出相应的改变,并尝试用不同优先级的中断来让LED灯做出相应的改变。

硬件设计:

按键消抖硬件设计
轻触按键在按下时会使得引脚接通,通过电路设计可以使得按下时产生电平变化。

3、代码描述

3.1 初始化用来中断的GPIO

3.2 初始化EXTI

3.3 配置NVIC

3.4编写中断服务函数

按键和EXTI宏定义:

按键和EXTI宏定义

嵌套向量中断控制器NVIC配置:
/**************************************************/
static void NVIC_Configuration(void)
{
    NVIC_InitTypeDef    NVIC_InitStructure;

    /*配置中断源:KEY2*/
    NVIC_InitStructure.NVIC_IRQChannel = KEY2_INT_EXTI_IRQ;
    NVIC_InitStructure.NVIC_IRQChannelPriority = 1;  //指定IRQ通道的优先级在NVIC_IRQChannel中,这个参数可以设定为0到3之间
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);

    /*配置中断源:KEY1*/
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值