stm32单片机外部中断课件

上传人:我*** 文档编号:143667488 上传时间:2020-09-01 格式:PPT 页数:66 大小:5.30MB
返回 下载 相关 举报
stm32单片机外部中断课件_第1页
第1页 / 共66页
stm32单片机外部中断课件_第2页
第2页 / 共66页
stm32单片机外部中断课件_第3页
第3页 / 共66页
stm32单片机外部中断课件_第4页
第4页 / 共66页
stm32单片机外部中断课件_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《stm32单片机外部中断课件》由会员分享,可在线阅读,更多相关《stm32单片机外部中断课件(66页珍藏版)》请在金锄头文库上搜索。

1、退出,嵌入式单片机原理及应用,电气工程学院仪器科学与工程系,1 ARM嵌入式系统概述 2 STM32单片机结构和最小系统 3 基于标准外设库的C语言程序设计基础 4 STM32通用输入输出GPIO 5 STM32外部中断 6 STM32通用定时器 7 STM32通用同步/异步收发器USART 8 直接存储器存取DMA 9 STM32的模数转换器ADC 10 STM32的集成电路总线I2C 11 STM32的串行外设接口SPI,第5章 STM32单片机外部中断,5.1 中断相关概念 5.2 STM32F103中断系统组成 5.3 中断控制 5.4 中断执行过程和中断嵌套 5.5 STM32外部中

2、断应用设计,退出,5.1 中断的相关概念,中断:单片机执行主程序时,由于某个事件的原因,暂停主程序的执行,调用相应的程序处理该事件,处理完毕后再自动继续执行主程序的过程。 中断的优先级:由中断的嵌套可以看出,不同事件的重要程度不同。重要的事件可以打断相对不重要的事件的处理,用户可以根据自己的需求对不同的事件设定重要级别,称为中断的优先级。 中断的嵌套:如果在执行一个中断时又被另一个更重要的事件打断,暂停该中断处理过程转去处理这个更重要的事件,处理完毕后再继续处理本中断的过程,叫作中断的嵌套。 中断源:可以引起中断的事件称为中断源。,5.1 中断的相关概念,中断服务程序与中断向量:为了处理中断而

3、编写的程序称为中断服务程序,对应中断服务程序的入口地址被称为中断向量。 中断请求、中断响应、中断处理及中断返回:中断源对主程序或中断服务程序提出中断要求,叫作中断请求;主程序或中断服务程序接受中断请求,进入中断服务程序的过程叫作中断响应;执行中断服务程序的过程叫作中断处理;中断服务程序执行完毕后回到主程序或者次一级别中断服务程序的过程叫作中断返回。 中断处理的整个过程包含了中断请求、中断响应、中断处理及中断返回四个步骤。 中断系统:实现中断处理功能的软件、硬件系统称为中断系统。,5.2 STM32F103中断系统组成,5.2.1中断源 STM32F103中断系统提供10个系统异常和60个可屏蔽

4、中断(STM32F107系列为68个)源,具有16个中断优先级。 可屏蔽中断源包括: 外部中断、定时器中断、串口中断 直接内存访问中断 模数转换中断 集成电路总线中断 串行外设接口中断等。 5.2.2 中断向量:表5-1 给出STM32F103中断向量表,5.3 中断控制,5.3.1 中断屏蔽控制 中断屏蔽控制包括NVIC控制和外设中断控制EXTI。NVIC为中断总开关,由中断设置允许寄存器(NVIC_ISER)、中断清除允许寄存器(NVIC_ICER)、中断设置挂起寄存器(NVIC_ISPR)、中断清除挂起寄存器(NVIC_ICPR)和中断状态寄存器(NVIC_IABR)控制。 除GPIO由

5、EXTI控制中断外,其它的外设均有自己的中断屏蔽控制寄存器,如定时器中断由DMA/中断使能寄存器(TIM_DIER)控制、串口中断由状态寄存器(USART_SR)和控制寄存器3(USART_CR3)控制。,5.3.2 中断控制器,NVIC为中断总开关:支持68个可屏蔽中断。提供16个可编程的优先级,支持中断嵌套,提供向量中断处理机制等功能。中断发生时,自动获得服务例程入口地址并直接调用,无需软件判定中断源。主要包括: 中断设置允许寄存器(NVIC_ISER) 中断清除允许寄存器(NVIC_ICER) 中断设置挂起寄存器(NVIC_ISPR) 中断清除挂起寄存器(NVIC_ICPR) 中断状态寄

6、存器(NVIC_IABR)控制。,5.3.2 中断控制器,与NVIC相关的寄存器在“stm32f10 x_map.h”文件中定义了一个结构体,结构体的内容如下 STM32F103系列单片机的中断系统在这些寄存器的控制下有序执行。了解这些中断寄存器的含义,才能更好的理解STM32单片机中断系统的工作原理,typedef struct vu32 ISER2; u32 RESERVED030; vu32 ICER2; u32 RESERVED130; vu32 ISPR2; u32 RESERVED230; vu32 ICPR2; u32 RESERVED330; vu32 IABR2; u32 R

7、ESERVED430; vu32 IPR15; NVIC_TypeDef,5.3.2 中断控制器,ISER2:ISER全称是:Interrupt Set-Enable Registers,中断使能寄存器组。 STM32F103系列的单片机可屏蔽外部中断有60个,用2个32位的ISER寄存器来表示,这2个32位的寄存器总共可以表示64个外部中断。而STM32F103系列单片机只用了ISER寄存器其中的前60位。 ISER0的bit0bit31分别对应是外部中断031。ISER1的bit027对应外部中断3259;这样总共60个外部中断就分别对应上了。 使能某个中断,必须设置相应的ISER位为1,

8、5.3.2 中断控制器,具体有哪些外部中断,在“stm32f10 x_nvic.h”这个头文件中已经定义,5.3.2 中断控制器,5.3.2 中断控制器,ICER2:全称Interrupt Clear-Enable Registers,是一个中断清除使能寄存器组。 该寄存器组与ISER寄存器功能相反,用来清除某个中断的使能位。由于NVIC的这些寄存器都是写1有效的,写0是无效的。设置一组ICER 寄存器来清除相应中断使能位。 ISPR2:全称Interrupt Set-Pending Registers,是一个中断挂起控制寄存器组。 每个位对应的外部中断和ISER内容是一样的。通过向相应的位写

9、1,可以将正在执行的中断挂起,去执行同级或更高级别的中断。向这个寄存器组写0是无效的。,5.3.2 中断控制器,ICPR2:全称Interrupt Clear-Pending Registers,是单片机的中断解挂寄存器组。 其功能和ISPR寄存器相反,对应位的内容也和ISER寄存器是一样的。通过写1,可以将相应的中断解挂。写0无效。 IABR2:全称Interrupt Active Bit Registers,单片机中断激活标志位寄存器组。 它是一个只读寄存器,CPU通过读取这个寄存器的相应位就可以知道当前有哪些中断正在执行。在相应的中断执行完成以后由硬件自动清零。对应位所代表的中断内容和I

10、SER一样,如果相应位为1,则表示该位所对应的中断正在被执行。,5.3.2中断控制器,IPR15:全称Interrupt Priority Registers,是一个中断优先级控制的寄存器组。 这个寄存器组比较重要,STM32F103系列单片机的外部中断分组与这个寄存器组密切相关。 因为STM32F103系列单片机的外部中断有60个,所以采用中断分组的办法来确定中断的优先级。IPR寄存器组由15个32位的寄存器组成,每个可屏蔽中断占用8位 IPR0的07,815,1623,2431分别对应中断编号为03,依此类推,总共对应60个外部中断。 而每个可屏蔽中断占用的8bit并没有全部使用,只采用高

11、4位。这4位,又分为抢占优先级和响应优先级。抢占优先级在前,响应优先级在后。,5.3.2 中断控制器,STM32F103系列单片机外部中断分为5个组,组04。分组的设置是由SCB-AIRCR寄存器的bit108这3位来定义的。具体的分配关系如下表所示:,5.3.2 中断控制器,为使STM32单片机的中断系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,STM32单片机的硬件将外设的中断源分为2个级别,这2个级别就是STM32F103系列单片机的抢占优先级和响应优先级; 如果两个中断源的抢占优先级和响应优先级都是一样的话,则看哪个中断先发生就先执行; 高抢占优先级中断是

12、可以打断正在进行的低抢占优先级中断的。而抢占优先级相同的中断,高响应优先级中断不可以打断正在执行的低响应优先级中断。,抢占优先级和响应优先级,响应优先级可设置为0到15级。 判断两个中断的优先级时: (1)先看抢占优先级的高低; (2)再看响应优先级的高低; (3)看中断通道向量地址。 一个系统使用一个组别就完全可以满足需要,在使用一个组别后不要在系统中再改动组别。,抢占优先级和响应优先级,5.3.2 中断控制器,5.3.2 中断控制器,假定设置中断优先级为组2,然后设置: 中断3(RTC中断)的抢占优先级为2,响应优先级为1。 中断6(外部中断0)的抢占优先级为3,响应优先级为0。 中断7(

13、外部中断1)的抢占优先级为2,响应优先级为0。 求这3个中断的优先级顺序? 上面例子中的中断3和中断7都可以打断中断6 的中断。而中断7和中断3却不可以相互打断(这是因为他们的抢占优先级是相同的)。,抢占优先级和响应优先级,外部中断/事件控制器EXTI,主要特性: (1) 每个中断/事件都有独立的触发和屏蔽; (2) 每个中断线都有专用的状态位; (3) 支持多达19个中断/事件请求; (4) 检测脉冲宽度低于APB2时钟宽度的外部信号。,5.3.3 相关功能寄存器,1. 中断屏蔽寄存器(EXTI_IMR) 2. 事件屏蔽寄存器(EXTI_EMR) 3. 上升沿触发选择寄存器(EXTI_RTS

14、R) 4. 下降沿触发选择寄存器(EXTI_FTSR) 5. 软件中断事件寄存器(EXTI_SWIER) 6. 中断挂起寄存器(EXTI_PR),5.3.3 相关功能寄存器,EXTI_IMR(Interrupt mask register )中断屏蔽寄存器,5.3.3 相关功能寄存器,EXTI_EMR( Event mask register )中断事件屏蔽寄存器,5.3.3 相关功能寄存器,EXTI_RTSR(Rising trigger selection register)上升沿触发寄存器,5.3.3 相关功能寄存器,EXTI_FTSR (Falling trigger selectio

15、n register)下降沿触发器,5.3.3 相关功能寄存器,EXTI_SWIER (Software interrupt event register) 软件中断事件寄存器,5.3.3 相关功能寄存器,EXTI_PR (Pending Register) 中断挂起寄存器,5.3.3 相关功能寄存器,5.4 中断执行过程和中断嵌套,1 中断请求和优先级 如果系统中存在多个中断源,处理器要先判断当前中断的优先级。多个中断请求同时到达时,先响应优先级高的中断。 如果它们的抢占优先级相同,则先处理响应优先级高的中断。,如果内核正在执行C的中断服务程序,则能被抢占优先级更高的中断A打断;由于B和C的

16、抢占优先级相同,所以C不会被B打断;但如果B和C两个中断同时到达,则响应优先级更高的B会被先执行。,5.5 STM32外部中断应用设计,5.5.1 STM32外部中断常用的库函数,5.5.2 STM32中断的设计,1. NVIC设置 (1)根据需要对中断优先级进行分组,确定抢占优先级和响应优先级的个数。 (2)选择中断通道,不同的引脚对应不同的中断通道,在stm32f10 x.h中定义了中断通道结构体IRQn_Type,包含了所有型号芯片的所有中断通道。 (3)根据系统要求设置中断优先级,包括抢占优先级和响应优先级。 (4)使能相应的中断,完成NVIC配置。,5.5.2 STM32中断的设计,使用库函数NVIC_PriorityGroupConfig() 实现STM32F103系列的单片机中断系统分组,5.5.2 STM32中断的设计,入口参数NVIC_PriorityGroup,5.5.2 STM32中断的设计,举例:,如代码的第17行所示,利用“NVIC_PriorityGroupConfig()”库函数将外部中断分为组2。 即,抢占优

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号