STM32中EXTI和NVIC的关系

(1)NVIC(嵌套向量中断):NVIC是Cortex-M3核心的一部分,关于它的资料不在《STM32的技术参考手册》中,应查阅ARM公司的《Cortex-M3技术参考手册》Cortex-M3的向量中断统一由NVIC管理。

(2)EXTI(外部中断):EXTI是ST公司在其STM32产品上扩展的外中断控制。它负责管理映射到GPIO引脚上的外中断和片内几个集成外设的中断(PVD,RTC alarm,USB wakeup,ethernet wakeup),以及软件中断。其输出最终被映射到NVIC的相应通道。因此,配置EXTI中断的过程必然包含对NVIC的配置,例如下面配置EXTI0的过程,就要首先配置EXTI控制器(使能相应的中断线,选择中断/事件模式,触发边沿极性),然后再配置NVIC控制器(EXTI0映射在NVIC上的通道号,中断优先级,中断屏蔽状态)。

 1 /* Connect EXTI Line 0 to GPIO Pin PB0 */
 2
 3 GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0);
 4
 5
 6
 7 /* Configure EXTI line 0 */
 8
 9 EXTI_InitStructure.EXTI_Line = EXTI_Line0;
10
11 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
12
13 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; // or Rising
14
15 EXTI_InitStructure.EXTI_LineCmd = ENABLE;
16
17 EXTI_Init(&EXTI_InitStructure);
18
19 /* Enable this interrupt on corresponding NVIC channel */
20
21 NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; // EXTI0_IRQn is defined in stm32f10x.h
22
23 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
24
25 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
26
27 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
28
29 NVIC_Init(&NVIC_InitStructure);

其中EXTI0_IRQn的值,其实就是EXTI0中断向量在中断向量表中的位置(STM32技术参考手册中断向量表Position栏中的数值)

原文地址:https://www.cnblogs.com/lixuejian/p/10559413.html

时间: 2024-08-29 22:34:06

STM32中EXTI和NVIC的关系的相关文章

STM32中的几个时钟SysTick、FCLK、SYSCLK、HCLK

用时钟源来产生时钟! 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL.①.HSI是高速内部时钟,RC振荡器,频率为8MHz.②.HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz.③.LSI是低速内部时钟,RC振荡器,频率为40kHz.④.LSE是低速外部时钟,接频率为32.768kHz的石英晶体.⑤.PLL为锁相环倍频输出,其时钟输入源可选择为HSI/2.HSE或者HSE/2.倍频可选择为2~16倍,但是其输出频率最大不得超过7

STM32中IO口的8中工作模式

该文摘自:http://blog.csdn.net/kevinhg/article/details/17490273 一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定.         推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小.效率高.输出既可以向负载灌电流,也

[2]工欲善其事必先利其器-------UML中的几种常见关系(二)

目录 1.UML类图中几种常见的关系 经过(一)中介绍,我选择的是StarUML作为UML的学习工具,个人喜好,至少在功能上能够满足我现在的需求, 在介绍StarUML的使用之前首先介绍下UML中几种常见的关系: UML类图中常见的关系按照关系的强弱可分为:泛化 ,实现 ,组合, 聚合 , 依赖这几种 1.泛化关系:是一种继承关系,也就是XX is a kind of XX 描述. 2.实现关系:是一种类与接口的关系. 3. 组合关系:是一种强关联,属于一种整体与部分的关系,但是部分不能离开整体

linux中权限和命令的关系。

我们知道权限对於使用者帐号来说是非常重要的,因为他可以限制使用者能不能读取/创建/删除/修改文件或目录. 一.让使用者能进入某目录成为『可工作目录』的基本权限为何: 可使用的命令:例如 cd 等变换工作目录的命令: 目录所需权限:使用者对这个目录至少需要具有 x 的权限 额外需求:如果使用者想要在这个目录内利用 ls 查阅档名,则使用者对此目录还需要 r 的权限. 二.使用者在某个目录内读取一个文件的基本权限为何? 可使用的命令:例如本章谈到的 cat, more, less等等 目录所需权限:

Makefile中头文件在依赖关系中作用

摘于:http://bbs.csdn.net/topics/120024677 (1)在makefile的依赖关系中用不用体现.h头文件?(2)如果在依赖关系中要体现.h头文件,应该体现到什么层次?==============================(1)在makefile的依赖关系中用不用体现.h头文件?============================== 下面是我的一些认识: 头文件中定义的是接口(函数接口,文件外全局变量和宏定义),它的作用是向调用文件封装函数的实现过程.在

转iOS中delegate、protocol的关系

iOS中delegate.protocol的关系 分类: iOS Development2014-02-12 10:47 277人阅读 评论(0) 收藏 举报 delegateiosprocotolcategoryobject-c 刚开始接触iOS,对delegate.protocol这两个概念比较模糊.参考了一些资料,记录下来体会. 1.protocol protocol和interface的概念类似,是object-c语法的一部分.protocol就是一系列不属于任何类的方法的列表.其中声明

理清Linux中的各种用户ID关系

在Eclipse中,出现"Access Restriction: The Type BASE64Encoder Is Not Accessible Due To Restriction"错误. 解决方法: 点击Window-->Preferences-->Java-->Compiler-->Errors/Warns,设置Deprecated And Restricted API 参数值. 问题解决. 理清Linux中的各种用户ID关系,布布扣,bubuko.co

Objective-C中release和nil的关系

(iphone/ipad)浅谈Objective-C中release和nil的关系 分类: iPhone/iPad开发技术2011-12-09 01:40 2515人阅读 评论(4) 收藏 举报 uiviewcrashnull终端 注意到经常有一个这样的问题:某指针对象先release后=nil,这里后跟个=nil有什么作用?不写行不行? 简单一点说是,release是用来释放内存,nil是将对象指针设为null,nil本身对内存没什么影响,但他处理指针,尤其是避免野指针倒是很有必要. 举一个例

java中接口与多重继承的关系

在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力.abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的选择显得比较随意.其实,两者之间还是有很大的区别的,对于它们的选择甚至反映出对 于问题领域本质的理解.对于设计意图的理解是否正确.合理