stm32中断(NVIC与EXTI)_原创文档.pdfVIP

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

stm32中断(NVIC与EXTI)--第1页

一、本章大纲

一、嵌套向量中断控制器—NVIC

CM3内核搭载了一个异常响应系统,通过NVIC(嵌套向量中断控制器)来管理和配置。

NVIC是一个总的控制器,相当于51的IE,不论是来自CM3内部的异常还是来自外设的中

断,都进入该控制器进行处理和逻辑控制。并且NVIC还通过优先级系统,来控制中断的嵌

套。

1.中断优先级

①优先级的数值越小,则优先级越高。②NVIC支持中断嵌套,使得高优先级异常会抢

占低优先级异常。

③有3个系统异常:复位、NMI(不可屏蔽中断)以及硬件失效(Hardfault),它们有固定

的优先级,并且它们的优先级号是负数,从而高于所有其他异常。

原则上,NVIC支持3个固定的高优先级和多达256级的可设置优先级,用一个字节的8

个比特位来表示。

STM32F107采用最高有效位对齐,在设计时裁掉表达优先级的4个低端有效位,所以只支

持16级优先级。

2.抢占优先级与从优先级

NVIC中有一个寄存器是“应用程序中断及复位控制寄存器”,它里面有一个位段名为

“优先级组”。它把优先级分为2个位段:

MSB所在的位段对应抢占优先级,抢占优先级决定了抢占行为。

LSB所在的位段对应从优先级,从优先级则处理“内务”。

在STM32F107中,只使用4个位来表达优先级([7:4]),如果抢占优先级组从比特5处分,

则得到4级抢占优先级,且在每个抢占优先级的内部有4个从优先级(00011011)。

stm32中断(NVIC与EXTI)--第1页

stm32中断(NVIC与EXTI)--第2页

3.中断输入与悬起

当中断输入脚被置为有效后,该中断就被“悬起”。所谓“悬起”,也就是等待、就绪

的意思。即使后来中断源撤消了中断请求,已经被标记成悬起的中断也被记录下来。

当某中断的服务程序开始执行时,就称此中断进入了“活跃”状态,并且其悬起位会被

硬件自动清除。在一个中断活跃后,直到其服务例程执行完毕,并且返回后,才能对该中断

的新请求予以响应。

当NVIC响应一个中断时,会自动完成以下三项工作,以便安全、准确地跳转到相应的

中断服务程序:

入栈:把8个寄存器的值压入栈。当响应中断时,如果当前的代码正在使用PSP,则

压入PSP(进程堆栈),否则就压入MSP(主堆栈)。一旦进入了服务例程,就一直使用主

堆栈。在自动入栈的过程中,将寄存器写入堆栈的顺序与时间顺序无关,CM3会保证正确

的寄存器被保存到正确的位置。

取向量:当数据总线(系统总线)进行入栈操作时,指令总线(I-Code总线)正在从向

量表中找出正确的中断向量与对应的服务程序入口地址。

更新寄存器。

注意:

①如果在某个中断得到响应之前,其悬起状态被清除了,则中断被取消。

②新请求在得到响应时,由硬件自动清零其悬起标志位。

③如果中断源咬住请求信号不放,该中断就会在其上次服务例程返回后再次被置为悬起

状态。

④如果某个中断在得到响应之前,其请求信号以若干的脉冲的方式呈现,则被视为只有

一次中断请求

⑤如果在服务例程执行时,中断请求释放了,但是在服务例程返回前又重新被置为有效,

则NVIC会记住此动作,重新悬起该中断。

4.中断返回

stm32中断(NVIC与EXTI)--第2页

stm32中断(NVIC与EXTI)--第3页

当中断完成,返回主程序时,NVIC自动完成以下两步:

①出栈:先前压入栈中的寄存器

文档评论(0)

133****8101 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档