在库函数中,配置 GPIO 与中断线的映射关系的函数 GPIO_EXTILineConfig()来实现的:
void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
该函数将 GPIO 端口与中断线映射起来,使用范例是:
GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2);

中断线上中断的初始化是通过函数 EXTI_Init()实现的。EXTI_Init()函数的定义是:
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct);
下面我们用一个使用范例来说明这个函数的使用:
EXTI_InitTypeDef EXTI_InitStructure; 
EXTI_InitStructure.EXTI_Line=EXTI_Line4;//1   
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//2
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//3
EXTI_InitStructure.EXTI_LineCmd = ENABLE;//4
EXTI_Init(&EXTI_InitStructure); //根据 EXTI_InitStruct 中指定的参数初始化外设 EXTI 寄存器
//第一个是中断线的标号,取值范围为EXTI_Line0~EXTI_Line15
//第二个参数是中断模式,可选值为中断 EXTI_Mode_Interrupt 和事件 EXTI_Mode_Event
//第三个参数是触发方式,可以是下降沿触发 EXTI_Trigger_Falling,上升沿触发 EXTI_Trigger_Rising,或者任意电平(上升沿和下降沿)触发EXTI_Trigger_Rising_FallingEXTI_InitStructure.EXTI_LineCmd = ENABLE;
//最后一个参数就是使能中断线了

设置 NVIC 中断优先级
NVIC_InitTypeDef NVIC_InitStructure;
NVIC_InitStructure.NVIC_IRQChannel = EXTI2_IRQn; //使能按键外部中断通道
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x02; //抢占优先级 2,
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;  //子优先级 2
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //使能外部中断通道
NVIC_Init(&NVIC_InitStructure); //中断优先级分组初始化

判断某个中断线上的中断是否发生(标志位是否置位):
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);

清除某个中断线上的中断标志位:
void EXTI_ClearITPendingBit(uint32_t EXTI_Line);

常用的中断服务函数格式为:
void EXTI2_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line2)!=RESET)//判断某个线上的中断是否发生
{
中断逻辑…
EXTI_ClearITPendingBit(EXTI_Line2); //清除 LINE 上的中断标志位

}

STM32初识——中断初始化过程(by woody)相关推荐

  1. PowerPC基于vxWorks的中断初始化分析

    1. 本文简介 本文主要介绍P2020芯片中vxWorks中断初始化过程(部分讲解是以linux为例).P2020属于PPC85XX系列,内核为e500v2,它是PowerPC体系结构中主要应用于通信 ...

  2. stm32时钟初始化过程浅析

    stm32时钟初始化过程浅析 (大致梳理了一下32启动过程中时钟的初始化过程) 加载main函数之前(启动代码中LDR R0, =__main之前),HCLK总线时钟默认上电是上一次断电前配置的频率 ...

  3. STM32外部中断与各通道对应关系

    EXTI0_IRQn的值,其实就是EXTI0中断向量在中断向量表中的位置(STM32技术参考手册中断向量表position栏中的数值) 一:外部中断使用配置过程: (1)配置时钟信号 (2)引脚属性 ...

  4. STM32外部中断及串口

    一.外部中断的类型 STM32F4 外部中断/事件控制器(EXTI)包含多达 23 个用于产生事件/中断 请求的边沿检测器.EXTI 的每根输入线都可单独进行配置,以选择类型(中断 或事件)和相应的触 ...

  5. stm32之中断系统

    前言:这一节以及后面的定时器部分都是学习所有的单片机时的最重要的部分,我也花了很多时间去理解手册和程序,我争取尽量全面并且细致的记录我的体会. 一.中断的概念 这里就省略了,相信你学过单片机就会懂. ...

  6. stm32之中断模式

    stm32之中断模式 一.中断简介 二.外部中断配置 (一)外部中断简介 (二)配置外部中断 1.配置外部中断 2.配置中断优先级 3.生成并查看代码 (三)编写中断函数 (四) 实例演示 三.使用串 ...

  7. STM32学习--中断

    这里写目录标题 什么是中断? 中断的作用 中断的特点 STM32与中断 NVIC 中断通道 中断优先级 中断服务函数 SysTick中断(内核中断) SysTick中断函数 NVIC库函数 NVIC初 ...

  8. STM32串口中断程序-迪文屏,

    STM32串口中断程序-迪文屏,串口接收准确数值 这几天一直在做原子开发板与迪文屏的通信,开发板向迪文屏写数据已经完成,但是从迪文屏读的数据总是无法返回开发板.原始及调试程序见下图: 在串口接收到从d ...

  9. STM32 串口中断总结

    更多精彩内容关注 微信公众号"广乙电子(dlrcclub)" 本文以USART1为例,叙述串口中断的编程过程. 1.先来讲述一下在应用串口中断时涉及到的一些库文件. 首先对于STM ...

最新文章

  1. [MySql] - 开启外部访问
  2. hibernate对象管理
  3. 使用Spring Boot和RxJava的构建响应式REST API
  4. 游戏编程技巧分析:策划变心太快?也许可以使用组合
  5. mysql数值类型占用字节及范围_mysql数据类型及占用字节数【mysql】
  6. python __repr__
  7. python基础知识——文件
  8. Linux-centos7下安装MySQL和MySQL可视化工具workbench
  9. 强智教务系统模拟登陆经验【附源码】
  10. Pytorch——报错解决:匈牙利匹配
  11. 单变量微积分笔记28——不定式和洛必达法则
  12. Java 集合之TreeSet 自定义类 比较器
  13. IMX6UL系列小屏驱动之像素时钟无法修改
  14. Ubuntu 16.04 VCS+Verdi安装总结
  15. 电子面单打印平台对接-快递鸟
  16. 网上找到了一个电机正反转驱动电路,保留
  17. 调优四剑客的实战演练,福尔摩斯•K带你轻松优化性能
  18. 3.0时代:激光投影让娱乐更真实
  19. 可视化免费数据库选型
  20. 可以合并pdf的软件?pdf合并软件哪个好用?

热门文章

  1. 微服务实战(二):使用API Gateway
  2. 网络:HTTP1.1和HTTP2区别
  3. element ui 前台模板_用 Vue+ElementUI 搭建后台管理极简模板
  4. python核心编程第二版pdf_Python Book电子书pdf版合集 Python核心高级编程第二版
  5. 电池报废征兆,三招辨别该不该换新
  6. 环境监控告警系统之TIM即时消息推送部署
  7. Python语言学习:在python中,如何获取变量的本身字符串名字而非其值/内容及其应用(在代码中如何查找同值的所有变量名)
  8. 成功解决windows开机时,系统提示此windows副本不是正版
  9. TF:利用TF读取数据操作,将CIFAR-10 数据集中的训练图片读取出来,并保存为.jpg格式
  10. TF之DNN:利用DNN【784→500→10】对MNIST手写数字图片识别数据集(TF自带函数下载)预测(98%)+案例理解DNN过程