STM32笔记(六)---GPIO中断EXTI

这篇博客详细介绍了STM32的GPIO中断EXTI,包括基础概念如EXTI框图、输入线配置,中断步骤,中断编程流程,并提供了EXTI_InitTypeDef结构体的使用示例,以及中断服务函数的编写注意事项。还解答了关于多个GPIO挂载在同一中断线上的处理问题。
摘要由CSDN通过智能技术生成

GPIO中断EXTI


image-20200624232610994

一、 基础概念

EXTI框图

image-20200624232808921

​ 外部中断通用I/O映像

image-20200624233045690

​ EXTI 中断/事件线

image-20200624233552210

image-20200624232855758

1.输入线总共有20条,EXTI0~EXTI19

2.通过配置AFIO_EXTICRx寄存器相应位段进行设置:

image-20200624233919899

image-20200624233937499

以框图为配置步骤参考,上升沿与下降沿触发选择寄存器(EXTI_RTSR 、EXTI_FTSR )配置后GPIO触发则边沿检测电路输出1与软件中断事件寄存器(EXTI_SWIER )相或;

上端(中断):输出至请求挂起寄存器(EXTI_PR)置1并同中断屏蔽寄存器(EXTI-IMR)相与输出至NVIC中断控制器(中断服务函数)

下端(事件):输出至与门跟事件屏蔽寄存器(EXTI_EMR )相与输出至脉冲发生器(常常与ADC关联)

image-20200624234548898

  • 上升沿与下降沿触发选择寄存器(EXTI_RTSR 、EXTI_FTSR )

    以GPIO上升沿触发选择寄存器(EXTI_RTSR)为例,配置上升沿触发选择寄存器相应位为1

    image-20200624235550638

  • 软件中断事件寄存器(EXTI_SWIER )

    image-20200624235738230

  • 挂起寄存器(EXTI-PR)

    image-20200625000753000

  • 中断屏蔽寄存器(EXTI-IMR)

    image-20200625000826578

  • 事件屏蔽寄存器(EXTI_EMR)

    image-20200624235849541

二、中断步骤:
  • GPIO触发

  • EXTI配置

  • NVIC配置

  • NVIC中断服务

三、 中断编程:
  • image-20200625002255460

两个文件: bsp_exti.c 和 bsp_exti.h 文件用来存放 EXTI 驱动程序及相关宏定义,中断服务函数放在 stm32f10x_it.h 文件中。

思路:

  1. 初始化用来产生中断的 GPIO;
  2. 初始化 EXTI;
  3. 配置 NVIC;
  4. 编写中断服务函数;

EXTI_InitTypeDef结构体

typedef struct {
   
	uint32_t EXTI_Line; // 中断/事件线
	EXTIMode_TypeDef EXTI_Mode; // EXTI 模式
	EXTITrigger_TypeDef EXTI_Trigger; // 触发类型
	FunctionalState EXTI_LineCmd; // EXTI 使
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值