stm32之中断系统
概述:
提供中断控制器,用于总体管理异常,称之为“嵌套向量中断控制器:Nested Vectored Interrupt Controller (NVIC)
VIC:中断管理器;
NVIC:内嵌中断管理器,将中断嵌套进入内核;
带来的优势:1、响应速度提高;
2、标准化,统一管理;
stm32创新:所以IO口都可以中断;
stm32的中断向量表:一个中断源,对应的地址、优先级等信息;
具体参见stm32的文档:

NVIC中断优先级:
中断优先级高的中断可以抢占中断优先级低的中断,从而实现了中断嵌套;
STM32中有两个优先级的概念-------抢占式优先级(主优先级)和响应优先级(从优先级),每个中断源都需要被指定这两种优先级,具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理的中断过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断;
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到了时,如果cpu正在处理另一个中断,这个后到的中断就要等到前一个中断处理完之后才能被处理;(从优先级不能抢占关系)
如果这两个中断同时到达而从优先级不同时,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;
如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪个中断;
Cortex-m3允许具有较少中断源时,使用较少的寄存器位指定中断源的优先级,因此STM32把中断优先级的寄存器位由8位减少到4位,这4个寄存器位的分组方式如下:
第0组:所以4位用于指定响应优先级;
第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级;
第2组:最高2位用于指定抢占式优先级,最低2位用于响应优先级;
第3组:最高3位用于指定抢占式优先级,最低1位用于指定响应优先级;
第4组:所以4位用于指定抢占式优先级;
以上设置可以调用固件库函数中的NVIC_PriorityGroupConfig()选择使用哪种优先级分组方式;
(NVIC_PriorityGroup_0, NVIC_PriorityGroup_1, NVIC_PriorityGroup_2, NVIC_PriorityGroup_3, NVIC_PriorityGroup_4)
typedef struct
{
u8 NVIC_IRQChannel; //中断通道号;
u8 NVIC_IRQChannelPreemptionPriority; //主优先级
u8 NVIC_IRQChannelSubPriority; //从优先级
FunctionalState NVIC_IRQChannelCmd; //是否使能
}NVIC_InitTypeDef;
外部中断:

另外三种其他的外部中断/事件控制器连接如下:
EXTI线16连接到PVD输出;
EXTI线17连接到RTC闹钟事件;
EXTI线18连接到USB唤醒事件;
外部中断配置:
外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地
配置输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每
个输入线都可以被独立的屏蔽。挂起寄存器保持着状态线的中断要求。
硬件中断选择:
通过下面的过程来配置19个线路做为中断源:
stm32之中断系统的更多相关文章
- STM32的中断系统
STM32的中断系统 STM32具有十分强大的中断系统,将中断分为了两个类型:内核异常和外部中断.并将所有中断通过一个表编排起来,下面是stm32中断向量表的部分内容: 上图-3到6这个区域被标黑了, ...
- STM32外部中断具体解释
一.基本概念 ARM Coetex-M3内核共支持256个中断,当中16个内部中断,240个外部中断和可编程的256级中断优先级的设置.STM32眼下支持的中断共84个(16个内部+68个外部), ...
- (二)stm32之中断配置
一.stm32的中断和异常 Cortex拥有强大的异常响应系统,它能够打断当前代码执行流程事件分为异常和中断,它们用一个表管理起来,编号为0~15为内核异常,16以上的为外部中断,这个表就是中断向量表 ...
- stm32之中断配置
一.stm32的中断和异常 Cortex拥有强大的异常响应系统,它能够打断当前代码执行流程事件分为异常和中断,它们用一个表管理起来,编号为0~15为内核异常,16以上的为外部中断,这个表就是中断向量表 ...
- 转载:STM32之中断与事件---中断与事件的区别
这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚 ...
- 【原创】MIPS中断系统的板级验证及实例测试
“五一”假期前后这约五天时间,终于将MIPS中断系统进行了板级验证及实例测试.因为老师给的交叉编译工具不会用,所以测试代码完全用MIPS汇编编写.使用MARS而没有用QtSpim,其实我觉得SPIM这 ...
- 【原创】MIPS浅议之——中断系统之我见
最近,准确的说应该是最近两个月的时间,我都在研究MIPS的异常与中断.或者可以说,最近这两个月,我才真正了解中断系统的整个结构和处理流程以及为什么要这样做?这段时间我最大的体会就是以前我们在“计算机组 ...
- STM32F072B-DISCO 深入研究 中断系统
STM32F072B-DISCO 是我认为性价比最高的一款CPU的demo系统,以前一直在用PIC的CPU但最近几年ST异军突起,几次课题查找芯片无一例外都是ST,像USB,CAN,ZIGBEE等,S ...
- STM32之中断与事件---中断与事件的区别
STM32之中断与事件---中断与事件的区别 http://blog.csdn.net/flydream0/article/details/8208463 这张图是一条外部中断线或外部事件线的示意图 ...
随机推荐
- C++中引用
在C语言中&这个符号表示了取地址符,但是在C++中它却有着不同的用途,掌握C++的&符号,是提高代码执行效率和增强代码质量的一个很好的办法.一.引用简介 引用就是某一变量(目标)的一个 ...
- [Swust OJ 403]--集合删数
题目链接:http://acm.swust.edu.cn/problem/403/ Time limit(ms): 5000 Memory limit(kb): 65535 Description ...
- Githut Token (hidden): Githut 安装验证
登录https://github.com 进入https://github.com/settings/profile 参考 http://jingyan.baidu.com/article/22fe7 ...
- what does Html.HiddenFor () for ?
When I want to pass some value that won't be seen by users, I find it useful to use this. It can hel ...
- The request failed with HTTP status 401: Unauthorized.
Reporting Service 控件默认由IIS里面的应用程序池标识 里面所定义的用户连接,如果用户没有权限则报以下错误 The request failed with HTTP status 4 ...
- 城通网盘,千军万马,千脑网盘,119g网盘哪个适合做网赚?
转载请注明文章来自 [ofiicexie] 网盘网赚已经流行了有一段时间了,国内流行的几个网盘有城通,千军万马,千脑,119g,今天小编写以此文来比较分析一下这几个网盘的优缺点. 这里,我特意做了个这 ...
- SumoLogic
SumoLogic>>>Loggly. https://diyunpeng.loggly.com/setup MonitorWare http://www.monitorware.c ...
- Jacob
http://www.cnblogs.com/luckyxiaoxuan/archive/2012/06/13/2548331.html http://blog.csdn.net/qingwangyo ...
- Jass 技能模型定义(转)
Jass是什么? 先阐释一下什么是jass吧,百度:JASS(正确地说是JASS 2)是魔兽3的程序语言,用于控制游戏和地图的进行,也是魔兽游戏和地图的基础. 地图编辑器中摆放的单位(Un ...
- HDU 2962 Trucking
题目大意:给定无向图,每一条路上都有限重,求能到达目的地的最大限重,同时算出其最短路. 题解:由于有限重,所以二分检索,将二分的值代入最短路中,不断保存和更新即可. #include <cstd ...