STM32——外部中断EXIT实现
外部中断实现步骤:
一、初始化,包括:1.AFIO时钟中断和GPIO时钟使能;
2.GPIO初始化
3.设置EXTI线
4.中断向量初始化
二、中断服务函数
采用PB9作为外部中断源,具体实现程序如下:
一、初始化
 void EXTI_PB9_Init(void)
 {
   GPIO_InitTypeDef GPIO_InitStructure;
   NVIC_InitTypeDef NVIC_InitStructure;
   EXTI_InitTypeDef EXTI_InitStructure;
   //1.使能GPIO和AFIO时钟,值得注意的是,当使用外部中断的时候必须使能AFIO时钟。
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE);
   //2.GPIO初始化
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  //浮空输入
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  //IO速度为50MHz
   GPIO_Init(GPIOB,&GPIO_InitStructure);  
   //3.设置EXTI线
   GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource9);  //将EXIT线9连接到PB9
   EXTI_InitStructure.EXTI_Line = EXTI_Line9;
   EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
   EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling;  //上升下降沿触发
   EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能中断线
   EXTI_Init(&EXTI_InitStructure);//初始化中断
   //4.中断向量
   NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
   NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = ;
   NVIC_InitStructure.NVIC_IRQChannelSubPriority = ;
   NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
   NVIC_Init(&NVIC_InitStructure);
 }
二、中断服务函数
 void EXTI9_5_IRQHandler(void)
 {
   if(EXTI_GetITStatus(EXTI_Line9) != RESET)  //EXTI9产生了中断
   {
     。。。。。。。。。。//中断处理,自行脑补~~~~
   }
   EXTI_ClearITPendingBit(EXTI_Line9);//清除中断
 }
注意:
1.外部中断5~外部中断9都是使用同一个中断函数EXTI9_5_IRQHandler ,若想同时使用,需要在中断函数中区分不同的中断线,如:
if(EXTI_GetITStatus(EXTI_Line9) != RESET) //EXTI9产生了中断
2.外部中断线和管脚号是一一对应的,如:
EXTI1 ——> Pin1;
EXTI2 ——> Pin2;
EXTI3 ——> Pin3;
EXTI4 ——> Pin4;
。。。
而不是随意映射的。
STM32——外部中断EXIT实现的更多相关文章
- 转别人的 STM32外部中断使用注意事项
		
前言:这些问题都是我之前在工作中遇到的,后来觉得需要总结,自己记忆不好,所以在这个给自己打个mark. 一:触发方式 STM32 的外部中断是通过边沿来触发的,不支持电平触发: 二:外部中断分组 ST ...
 - STM32外部中断初理解
		
PA0,PB0...PG0--->EXTI0 PA1,PB1...PG1--->EXTI1 ....... PA15,PB15...PG15--->EXTI15 以上为GPIO和中断 ...
 - STM32外部中断具体解释
		
一.基本概念 ARM Coetex-M3内核共支持256个中断,当中16个内部中断,240个外部中断和可编程的256级中断优先级的设置.STM32眼下支持的中断共84个(16个内部+68个外部), ...
 - STM32  外部中断
		
1)STM32一般有19 个外部中断为: 线 0~15:对应外部 IO 口的输入中断.线 16:连接到 PVD 输出. 线 17:连接到 RTC 闹钟事件. 线 18:连接到 USB 唤醒事件. 2) ...
 - stm32 外部中断学习
		
今天我们看看STM32的外部中断实验. STM32 供 IO 口使用的中断线只有 16 个,但是 STM32 的 IO 口却远远不止 16 个,那么 STM32 是怎么把 16 个中断线和 IO 口一 ...
 - STM32 外部中断详解(原理+配置代码)
		
本文介绍了STM32基于标准外设库的外部中断配置,以及基于参考手册如何更加寄存器配置外部中断 文章目录 1 前言 2 STM32的外部中断 3 中断服务函数的映射关系 4 外部中断的配置 5 寄存器的 ...
 - (stm32f103学习总结)—stm32外部中断
		
一.外部中断介绍 1.1 EXTI简介 EXTI简介 STM32F10x外部中断/事件控制器(EXTI)包含多达 20 个用于产生事 件/中断请求的边沿检测器.EXTI的每根输入线都可单独进行配置,以 ...
 - STM32外部中断.
		
void EXTIX_Init(void){ EXTI_InitTypeDef EXTI_InitStructure; NVIC_InitTypeDef NVIC_InitStructu ...
 - STM32之外部中断控制
		
一.STM32外部中断 1.STM32外部中断结构图 如上图所示:主要包括四个环节,GPIO.AFIO.EXTI.NVIC.以STM32F103VE(100脚)为例说明硬件模块的数量: GPIO: ...
 
随机推荐
- 个人psp
			
排球计分程序 1.计划 通过对用户故事估计这个任务需要3~5d天. 2.开发 2.1需求分析 作为一个观众,我希望了解每场比赛的比分,以便了解比赛的情况. 作为一个观众,我希望输入球队名称查询球队比分 ...
 - sql多表查询时怎么获取查到的字段
			
首先,多表查询不能用hql(貌似hql就是不支持多表查询,如果可以,希望看到的朋友给个例子) List list = systemService.findListbySql("SELECT ...
 - stm32定时器中断类型分析
			
一直在用的stm32定时器的中断都是TIM_IT_Update更新中断,也没问为什么,直到碰到有人使用TIM_IT_CC1中断,才想到这定时器的中断类型究竟有什么区别,都怪当时学习stm32的时候不够 ...
 - 真核转录组(denovo/resequencing)及案例分析
			
参考: 转录组文章的常规套路 文章解读:<Science>小麦转录组研究文章 转录组数据饱和度评估方法 Paper这个东西是多么的诱人,可以毕业,可以评职称,可以拿绩效. 现在的文章都是有 ...
 - 如何透过HTC Vive拍摄Mixed Reality (混合现实)影片
			
https://www.vive.com/cn/forum/1706?extra=page%3D1 也许你是一位开发者,想为自己的HTC Vive游戏制作酷炫的宣传片:或者你是游戏主播,想为观众带来高 ...
 - mybatis中 ${}和#取值小记(Parameter index out of range)
			
mybatis mapperxml文件中有两种取值法.${}和#{} $的是原样,#的是取值并转成指定?#{ele1,jdbcType=VARCHAR} 有个坑, 错误的写法 <if test= ...
 - MySQL学习记录--生成时间日期数据
			
时间数据格式组件: 组件 定义 范围 YYYY 年份,包括世纪 1000~9999 MM 月份 01(January)~12(December) DD 日 01~31 HH 小时 00~23 HHH ...
 - JavaScript判断、循环、Map、Set
			
本文是笔者在看廖雪峰老师JavaScript教程时的个人总结 一些判断条件 JavaScript把null.undefined.0.NaN和空字符串''视为 ...
 - C#读写TxT文件
			
文/嶽永鹏 WPF 中读取和写入TxT 是经常性的操作,本篇将从详细演示WPF如何读取和写入TxT文件. 首先,TxT文件希望逐行读取,并将每行读取到的数据作为一个数组的一个元素,因此需要引入List ...
 - SHAREPOINT 2013 列表之间相互关联
			
修改内容 1.增加列表设置,隐藏Aid字段操作 SharePoint 列表之间相互关联 例如两张列表之间的父子关系. 思路如下: 列表中新增列表项后会有一个唯一的ID,我们获取到该ID赋予子表即可将两 ...