外部中断概述

STM32的中断控制器支持19个外部中断/事件请求:

  • 线0-15:对应外部IO口的输入中断
  • 线16:连接到PVD输出
  • 线17:连接到RTC闹钟事件
  • 线18:连接到USB唤醒事件

STM32每个IO口都有可以作为外部中断输入,IO口有很多,STM32供IO使用的中断线只有16个,那么中断线怎么跟IO口对应呢?
这个时候就要用到端口重映射了

GPIOx.0映射到EXTI0(外部中断线0)
GPIOx.1映射到EXTI1(外部中断线1)

GPIOx.15映射到EXTI15(外部中断线15)
怎么使用函数把GPIO口映射到外部中断线呢?
GPIO_EXTILineConfig可以配置,比如说把PE2映射到EXTI2(中断线2)

GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);//PE2映射到中断线2

对于每个中断线,我们可以设置相应的触发方式以及使能,触发方式有三种:

  1. 上升沿触发
  2. 下降沿触发
  3. 边沿触发

一共16个外部中断线,STM32是否分配16个中断处理函数呢?
答案是否定的,外部中断在中断向量表中只分配了7个中断向量,也就是说16个外部中断只分配了7个外部中断服务函数

外部中断线5-9分配一个中断向量,外部中断线15-10分配一个中断向量
中断服务函数如下:

EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
EXTI9_5_IRQHandler
EXTI15_10_IRQHandler       

外部中断常用库函数

void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);//设置IO口与中断线的映射关系exp:  GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
//初始化中断线:触发方式等ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);
//判断中断线中断状态,是否发生void EXTI_ClearITPendingBit(uint32_t EXTI_Line);
//清除中断线上的中断标志位

外部中断库函数设置

1.使能外设以及初始化IO口为输入

GPIO_Init()
  1. 开启IO口复用时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE)
  1. 设置IO口与中断线的映射关系
void GPIO_EXTILineConfig();
  1. 初始化线上中断,设置触发条件等
EXTI_Init();
  1. 配置中断分组(NVIC),并使能中断
NVIC_Init();
  1. 编写中断服务函数
EXYIx_IRQHandler();
  1. 清除中断标志位
EXTI_ClearITPendingBit();

外部中断---STM32F1相关推荐

  1. STM32F1迷你板外部中断

    开始学习外部中断的基本知识 中断优先级分组管理 CortexM3内部支持256个中断,其中包含了 16 个内核中断和 240 个外部中断,并且具有 256 级的可编程中断设置.STM32F1系列有 8 ...

  2. STM32F1笔记(五)外部中断EXTI

    STM32的每个IO都可以作为外部中断的中断输入口. STM32F103的中断控制器支持19个外部中断/事件请求.每个中断设有状态为,每个中断/事件都有独立的触发和屏蔽设置. STM32F103的19 ...

  3. 【STM32学习笔记】(13)——外部中断详解

    EXTI 简介         EXTI(External interrupt/event controller)-外部中断/事件控制器,管理了控制器的 20 个中断/事件线.每个输入线可以独立地配置 ...

  4. 51单片机之外部中断拙见

    外部中断需要注意的点 1. 外部中断其实是包含在中断系统中的,STC89Cx系列单片机提供4个外部中断:外部中断0(INT0),外部中断1(INT1),外部中断2(INT2),外部中断3(INT3) ...

  5. 【单片机学习笔记】(31):串口调试技巧、TFT触摸屏初识别、stm32F4与F1对比使用(全系列初始化概览)、YSF4的光耦隔离保护、外部中断与定时器消抖相结合的按键检

    串口调试技巧 可以将调试时会用到,但实际演示是不需要用到的代码用 #if xxx   //这里放调试代码 #endif xxx是 一个宏定义,如果等于0则不编译相关代码,如果为1则编译相关代码 TFT ...

  6. STM32 中断原理及外部中断的实现

    STM32 中断原理及外部中断的实现 NVIC 中断优先级管理 中断寄存器 库函数配置 小结 STM32 外部中断 基础知识 库函数配置 外部中断配置示例 小结 内容较充实,作为个人的学习记录 NVI ...

  7. STM32单片机外部中断配置讲解

    2019独角兽企业重金招聘Python工程师标准>>> 单片机外部中断简介 所谓外部中断,就是通过外部信号所引起的中断,如单片机引脚上的电平变化(高电平.低电平).边沿变化(上升沿. ...

  8. hal库开启中断关中断_「正点原子NANO STM32开发板资料连载」第十章 外部中断实验...

    1)实验平台:ALIENTEK NANO STM32F411 V1开发板 2)摘自<正点原子STM32F4 开发指南(HAL 库版>关注官方微信号公众号,获取更多资料:正点原子 第十章 外 ...

  9. nrf52840 gpiote如何配置中断输入_STM32第四章外部中断管理

    点击上方"果果小师弟",选择"置顶/星标公众号"干货福利,第一时间送达!STM32F4 的每个 IO 都可以作为外部中断的中断输入口,这点也是 STM32F4 ...

最新文章

  1. java.lang.Class
  2. 011_Cascader级联选择器
  3. 有向无环图的拓扑排序
  4. 命令前面加一个!的意思如!python
  5. mysql磁盘临时表清理_mysql 创建大量磁盘临时表
  6. Struts2 + MySQL 实现分页
  7. 数据线给电脑联网是什么原理_为什么我的数据线插在电脑以后只能充电?
  8. securecrt 多窗口运行相同命令
  9. Mathtype 免安装 | office自带UnicodeMath和LaTeX编辑功能
  10. java 建模工具_哪一个uml建模工具好用?6款好用的uml建模工具
  11. 安装的时候出现SPSS中can not create java virtual machine问题怎么办
  12. 设置计算机开机密码的步骤,电脑设置开机密码的方法
  13. 为什么使用Linux
  14. mongodb一致性协议_Mongodb选举机制
  15. Linux入门学习 —— 常用的基本命令(下)
  16. 算法竞赛专题解析(0)--写作计划
  17. 动网新闻系统IWMS中实现带标题幻灯片的功能效果
  18. CRM的“几宗秘辛”(上篇)
  19. 白金域名你了解多少?
  20. html边框是啥意思,css中border是什么意思

热门文章

  1. (1)《Head First HTML与CSS》学习笔记---HTML基本概念
  2. lodash round
  3. 富文本wangEditor的批量激活
  4. 你从未见过的 HTML5 动画效果
  5. vue 新版本 webpack 代理 跨域设置
  6. 【BZOJ 1098】办公楼(补图连通块个数,Bfs)
  7. JavaScript高级特征之面向对象笔记
  8. 算法初步——two pointers
  9. 7-12(图) 社交网络图中结点的“重要性”计算(30 分)
  10. android ImageView 之 android:scaleTye=