《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断.pptx

《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断.pptx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第4章用好STM32的外部中断《嵌入式技术入门与实战(基于STM32)》

第4章用好STM32的外部中断01外部中断和外部中断/事件控制器(EXTI)02嵌套向量中断控制器NVIC03外部中断应用实例分析

1、外部中断和外部中断/事件控制器(EXTI)

1.1外部中断原理STM32允许多种多样的中断,如外部IO、ADC、USART、I2C等。中断事件中断处理程序主程序外部中断是微控制器实时处理外部事件的一种内部机制。当某种外部事件发生时,单片机的中断系统将迫使MCU暂停正在执行的程序,转而去进行中断事件的处理;中断处理完毕后,返回被中断的程序处,继续执行。一般情况下,微控制器的程序是封闭状态下自主运行的,如果在某一时刻需要响应一个外部事件(比如按键按下),这时就会用到外部中断。

1.2外部中断/事件控制器(EXTI)外部中断/事件控制器,即EXTI,功能分两个部分:一个是产生中断,另一个是产生事件。STM32F407xxx中的EXTI的配置:有23个边沿检测器每根中断线可单独地被配置为中断或事件;每根中断线可独立选择事件(上升沿触发、下降沿触发或边沿触发)每个输入线可单独进行屏蔽STM32的每个IO都可以作为外部的中断输入口

中断事件EXTI内部结构

中断与事件的区别

STM32F4系列支持将所有GPIO设置为中断输入。外部IO可由上升沿、下降沿、高低电平的三种方式触发。中断的触发方式

STM32F407的23个外部中断线可分为:GPIO外部中断信号线EXTI0~EXTI15:对应GPIOx_Pin0~GPIOx_Pin15其他外设的事件信号线?EXTI线16连接到PVD输出?EXTI线17连接到RTC闹钟事件?EXTI线18连接到USBOTGFS唤醒事件?EXTI线19连接到以太网唤醒事件?EXTI线20连接到USBOTGHS(在FS中配置)唤醒事件?EXTI线21连接到RTC入侵和时间戳事件?EXTI线22连接到RTC唤醒事件外部中断/事件线的映射

GPIO的管脚GPIOx.0~GPIOx.15(x=A,B,C,D,E,F,G)分别对应中断线0~15。中断与GPIO对应关系各个端口的0号引脚各个端口的1号引脚各个端口的15号引脚

思考与练习◎STM32F407xx中EXTI线总共有几条,其与GPIO如何映射?◎中断和事件的主要区别是什么?

2、嵌套向量中断控制器NVIC

Cortex内核具有强大的异常响应系统,把能够打断当前代码执行流程的事件分为异常(exception)和中断(interrupt),系统把其用一个表管理起来,称为中断向量表。中断向量表

为了管理配置中断,Cortex-M4在内核水平上搭载了一个嵌套向量中断控制器(NVIC,NestedVectoredInterruptController)NVIC把外部的中断信号关联到单片机内核中,对各种中断进行分类,按先后顺序发送给内核,让内核处理对应的中断。NVIC的定义实现低延迟的中断处理晚到中断的高效处理

中断嵌套是指在进入一个中断处理程序之后,还能在中断之内再次产生中断。中断是否能嵌套依据优先级进行判断。NVIC中断嵌套的概念

STM32的中断源具有两级优先级属性:第一级:抢占优先级抢占是指打断其它中断的属性,即会出现中断嵌套第二级:响应优先级(亚优先级)响应属性应用在多个中断抢占优先级相同的情况下,通过响应优先级判断执行顺序中断优先级的定义优先级附加说明:优先级属性编号越小,优先级别越高。有3个系统异常:复位(Reset)、不可屏蔽中断(NMI)、硬件错误(Hardfault),它们有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常和中断。所有其它中断的优先级则都是可编程的(但不能编程为负数)。

当两个中断源的抢占优先级相同时:(1)如果两个中断同时到达,则中断控制器会先处理响应优先级高的中断;(2)当一个中断到来后,如果正在处理另一个中断,则这个后到的中断就要等到前一个中断处理完之后才能被处理;(3)如果他们的抢占式优先级和响应优先级都相等,则根据它们在中断表中的排位顺序决定先处理哪一个。响应优先级的规则

已设置:中断1的抢占优先级为0,响应优先级为0中断2的抢占优先级为2,响应优先级为1中断3的抢占优先级为2,响应优先级为01、假如主程序先被中断1中断,这时中断2和3产生中断只能等中断1结束后再处理。【先看抢占优先级,中断1的抢占优先级为0最高,不会嵌套】2、同时产生中断2和3中断3响应优先级高,所以先处理中断3,结束后处理中断2。【抢占优先级相同,先处理响应优先级高的中断】3、假如主程序先被中断2中断,这时如果又产生中断1在中断2内嵌套处理中断1。【低抢占优先级的中断A可以被高抢占优先级的中断B打断

文档评论(0)

lai + 关注
实名认证
内容提供者

精品资料

版权声明书
用户编号:7040145050000060

1亿VIP精品文档

相关文档