stm32f407之NVIC
更新时间:2024-01-19 07:05:01 阅读量: 教育文库 文档下载
stm32f407之NVIC
五、NVIC 中断向量嵌套控制器是用来管理所有中断和事件的,包括中断的使能和除能,中断的优先级。这个是属于内核的东西,所以ST的参考手册上对它的描述较少,但他又是十分重要的东西,要了解它就要看ARM的《Cortex?-M4 Devices Generic User Guide》。
相关寄存器
译自《Cortex?-M4 Devices Generic UserGuide》,若有错误,请以原文为准。
中断使能寄存器NVIC_ISER[8]
中断使能寄存器共有8个,ISER[0]设置0~31号中断的使能,ISER[1]设置32~63号中断的使能,如此类推。以下以ISER[0]为例:[31:0] SETENA中断设置使能位。 写:
0 =无影响
1 =使能中断。
读:
0 =中断是禁止的
1=中断已经被使能
如果要使能0号中断,就向该寄存器的0位写1,如果要使能38号中断,就向NVIC_ISER[1]的6位写1,如此类推,至于哪个中断对应哪个中断号,请参见参考手册《RM0090 Reference manual》中的第9章Table 30. Vector table的Position一列。
中断除能寄存器NVIC_ICER[8]
中断除能寄存器共有8个,ICER[0]设置0~31号中断除能,ICER[1]设置32~63号中断的使能,如此类推。以下以ICER[0]为例:[31:0] SETENA中断设置使能位。 写:
0 =无影响
1 =除能中断。 读:
0 =中断是禁止的
1=中断已经被使能
以下寄存器均为8个,仅以***R[0]为例
中断挂起设置寄存器NVIC_ISPR[8][31:0]SETPEND中断挂起设置位。 写:
0 =无影响
1 =改变中断状态为挂起。 读:
0 =中断没有挂起
1 =中断正在等待处理。
解除中断挂起寄存器NVIC_ICPR[8][31:0] CLRPEND中断清除挂起位。 写:
0 =无影响
1 =删除中断的挂起状态。 读:
0 =没有挂起的中断
1 =中断正在等待处理。
中断激活位寄存器NVIC_IABR[8][31:0]中断活跃的标志:
0 =中断不活跃
1 =中断活跃。
如果相应的中断的状态是作为一个活跃的或活跃和正被挂起的,读该位将会读出1。
中断优先级寄存器NVIC_IPR[60] 中断优先级寄存器为60个32位寄存器,st的结构体中用了240个8位的字节数组NVIC->IP[240]来映射,每一个对应一个中断的优先级。
ARM的中断优先级分两种,抢占优先级和响应优先级。 具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。 当两个中断源的抢占式优先级相同时,这两个中
断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。
中断优先级分组就是把优先级寄存器分割,分开哪几位是响应优先级,哪几位是抢占优先级。至于怎样设置分组,就要看一个不属于NVIC的寄存器了。
应用中断和复位控制寄存器SCB_AIRCR在这里我们需要看的是[31:16]位和[10:8]位,[31:16]位是识别码,用以保护此寄存器不会被意外修改,[10:8]位就是中断优先级分组的设置位。 [31:16]
写:VECTKEYSTAT
读:VECTKEY
RW注册键:
读为0xFA05
写入时,要写0x05FA到 VECTKEY,否则写入将被忽略。
[10:8]中断优先级
每一个ARM的M4中断优先级设计为可编程的8位,具体到stm32f4就只留给用户4位共16级的可编程优先级,其中低4位已被占用。也就是说stm32f4的优先级分组情况如下表所示:[10:8] 分割点
抢占优先级位
响应优先级位
抢占优先级数
响应优先级数0b011 xxxx [7:4] none 16 10b100 xxx.y
[7:5] [4] 8 20b101 xx.yy [7:6] [5:4]
4 40b110 x.yyy [7] [6:4] 2 80b111
yyyy none [7:4] 1 16
正在阅读:
stm32f407之NVIC01-19
生化习题及大纲12-19
木质门生产质量检验标准04-13
电气装置安装工程电力变压器、油浸电抗器、互感器施工及验收规范05-20
国家级化学工程与工艺综合改革-大连理工大学教学成果网 - 图文10-11
论非目的语环境下语言环境对汉语学习的影响06-02
2020年度在民盟XX市委会领导班子民主生活会上的讲话08-27
“上海绿城”一期产品缺陷的思考 - 图文09-14
出国旅游英语句子大全07-01
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- stm32f407
- NVIC
- 九年级数学下册学习能力诊断试题2
- VB实验实验报告- 2016
- 江西省2017年中等学校招生考试数学样卷试题卷(八)
- 高一地理行星地球练习题
- 2015中考美术题库 - 图文
- 人教版语文七年级下册课文《土地的誓言》课堂练习及答案
- 对党风廉政建设的认识
- 诗篇讲道 第25篇
- 璧山县房地产市场调查
- 《农村合作金融机构非信贷资产风险分类指引》-银监发29号
- 重庆市人民政府文件 渝府发18号 重庆市人民政府关于认真做好2012年市级重点项目有关工作的通知 - 7260
- 凤庆县2014保障性住房先租后售工作实施方案 修改4.26
- 2016医院感染传染病防控知识考核试题
- 浅谈农村基层民主选举中的人情问题
- 文言文翻译
- 桥梁大师操作流程 - 图文
- 电焊工(初、中、高级)培训计划
- 六年级第一学期语文综合实践活动课教案
- 郑州大学《面向对象程序设计》1-12章在线测试题库
- 发变组高压侧开关非全相运行措施