版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ARM嵌入式技术——Cortex-M3第6讲
STM32F103的外部中断控制第6讲STM32F103的外部中断控制什么是“中断”?中断服务程序发申请中断服务程序发申请外设CPUCPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
EG:吃饭时突然手机铃响…中断示意图第6讲STM32F103的外部中断控制STM32中的中断源
Cortex-M3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)第6讲STM32F103的外部中断控制STM32中的中断源来源:《Cortex-M3权威指南》第6讲STM32F103的外部中断控制STM32中的中断源Cortex-M3内核具有强大的异常响应系统,能够打断当前代码执行流程的事件分为异常exception和中断interrupt,用一个异常向量表管理起来,编号为0~15的称为内核异常,而16以上的则称为外部中断。STM32向量表,优先级从-3至6的中断向量称为系统异常,优先级为负的不能设置优先级,如复位Reset、不可屏蔽中断NMI、硬错误Hardfault。从优先级7开始的称为外部中断,优先级可自行设置。第6讲STM32F103的外部中断控制STM32中的中断源
《STM32中文参考手册》9.1.2STM32F103系列的60个可屏蔽中断第6讲STM32F103的外部中断控制STM32中断优先级分组几十个中断,怎么管理?第6讲STM32F103的外部中断控制STM32中断优先级分组
中断管理方法:首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。分组配置是在寄存器SCB->AIRCR中配置:组AIRCR[10:8]IPbit[7:4]分配情况分配结果01110:40位抢占优先级,4位响应优先级11101:31位抢占优先级,3位响应优先级21012:22位抢占优先级,2位响应优先级31003:13位抢占优先级,1位响应优先级40114:04位抢占优先级,0位响应优先级第6讲STM32F103的外部中断控制STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1.何为占先式优先级(pre-emptionpriority)
高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。2.何为副优先级(subpriority)
在占先式优先级相同的情况下,副优先级高的中断优先被响应;
在占先式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。3.判断中断是否会被响应的依据
首先是占先式优先级,其次是副优先级;
占先式优先级决定是否会有中断嵌套;STM32中断优先级分组第6讲STM32F103的外部中断控制STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1.何为占先式优先级(pre-emptionpriority)
高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。2.何为副优先级(subpriority)
在占先式优先级相同的情况下,副优先级高的中断优先被响应;
在占先式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。3.判断中断是否会被响应的依据
首先是占先式优先级,其次是副优先级;
占先式优先级决定是否会有中断嵌套;STM32中断优先级分组第6讲STM32F103的外部中断控制STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。4.优先级冲突的处理
具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断的嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。STM32中断优先级分组第6讲STM32F103的外部中断控制特别说明:一般情况下,系统代码执行过程中,只设置一次中断优先级分组,比如分组2,设置好分组之后一般不会再改变分组。随意改变分组会导致中断管理混乱,程序出现意想不到的执行结果。STM32中断优先级分组第6讲STM32F103的外部中断控制STM32外部中断STM32的每个IO都可以作为外部中断输入。STM32的中断控制器支持19个外部中断/事件请求:线0~15:对应外部IO口的输入中断。线16:连接到PVD输出。线17:连接到RTC闹钟事件。线18:连接到USB唤醒事件。每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。从上面可以看出,STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112),STM32F103RCT6(51),那么中断线怎么跟io口对应呢?第6讲STM32F103的外部中断控制STM32外部中断GPIOx.0映射到EXTI0GPIOx.1映射到EXTI1……GPIOx.15映射到EXTI15第6讲STM32F103的外部中断控制STM32外部中断举例:外部中断0与NVIC的关系第6讲STM32F103的外部中断控制STM32外部中断对于每个中断线,我们可以设置相应的触发方式(上升沿触发,下降沿触发,边沿触发)以及使能。是不是16个中断线就可以分配16个中断服务函数呢?IO口外部中断在中断向量表中只分配了7个中断向量,也就是
只能使用7个中断服务函数从表中可以看出,外部中断线5~9分配一个中断向量,共用一个服务函数
外部中断线10~15分配一个中断向量,共用一个中断服务函数。第6讲STM32F103的外部中断控制STM32外部中断EXTI0_IRQHandlerEXTI1_IRQHandlerEXTI2_IRQHandlerEXTI3_IRQHandlerEXTI4_IRQHandlerEXTI9_5_IRQHandlerEXTI15_10_IRQHandler中断服务函数列表:第6讲STM32F103的外部中断控制STM32外部中断初始化IO口为输入。②
开启IO口复用时钟。设置IO口与中断线的映射关系。初始化线上中断,设置触发条件等。配置中断分组(NVIC),并使能中断。⑥编写中断服务函数。清除中断标志位外部中断的一般配置步骤:STM32CubeMX点点勾勾选选搞定大部分设置第6讲STM32F103的外部中断控制认识几个中断相关的函数函数名void
HAL_NVIC_SetPriority(IRQn_Type
IRQn,uint32_t
PreemptPriority,uint32_t
SubPriority)函数描述设置中断的优先级参数IRQn:外部中断号。该参数可以是IRQn_Type枚举类型的枚举值
PreemptPriority:IRQn通道的抢占优先级。此参数可以是0到15之间的值,较低的优先级值表示较高的优先级
SubPriority:IRQ通道的副优先级。这个参数可以是0到15之间的值,一个较低的优先级值表示较高的优先级。第6讲STM32F103的外部中断控制认识几个中断相关的函数函数名voidHAL_NVIC_EnableIRQ(IRQn_TypeIRQn)函数描述在NVIC中断控制器中启用特定设备的中断。参数IRQn:外部中断号。该参数可以是IRQn_Type枚举类型的枚举值要点要正确配置中断优先级,应该在此之前调用函数
NVIC_PriorityGroupConfig()第6讲STM32F103的外部中断控制认识几个中断相关的函数函数名voidHAL_GPIO_EXTI_IRQHandler(uint16_tGPIO_Pin)函数描述ThisfunctionhandlesEXTIinterruptrequest.参数GPIO_Pin:SpecifiesthepinsconnectedEXTIline第6讲STM32F103的外部中断控制认识几个中断相关的函数宏定义__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin)功能描述清除EXTI的线挂起位.参数__EXTI_LINE__:指定要清除的EXTI线.这个参数可以是GPIO_PIN_x的任意组合,其中x可以是(0..15)第6讲STM32F103的外部中断控制认识几个中断相关的函数函数名void
HAL_GPIO_EXTI_Callback(uint16_t
GPIO_Pin)函数描述EXTIlinedetectioncallbacks.参数GPIO_Pin:SpecifiesthepinsconnectedEXTIlineSTM32CubeMX和Keil软件在STM32F103系列单片机开发中的应用——使用中断实现按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年休宁县带编教师招聘考试模拟试题及答案解析
- 2027届河北省衡水市中考数学最后一模试卷(含答案解析)
- 浙江省台州市2026-2027学年中考猜题数学试卷(含答案解析)
- 2026年德化县带编教师招聘笔试参考题库及答案解析
- 2026年东海县带编教师招聘考试模拟试题及答案解析
- 2026年连山壮族瑶族自治县带编教师招聘考试备考题库及答案解析
- 2026年城固县带编教师招聘考试参考题库及答案解析
- 2026年宽甸满族自治县带编教师招聘考试备考题库及答案解析
- 2026年芜湖市镜湖区荆山社区医院招聘笔试模拟试题及答案详解
- 2026年中方县带编教师招聘考试模拟试题及答案解析
- 2026年秋季学期泰山版(新教材)五年级信息科技上册教学计划
- 基于学科逻辑的氧化还原反应-高三二轮
- 2026年兴业银行成都分行暑期职能部门实习生招聘考试备考题库及答案详解
- 部编版五年级上册语文全套预习单(8单元)
- 2026年河南省中考数学真题含答案
- 2026年人教版(2024)小学美术三年级上册【全册】教学设计(附目录)
- 厦门港务线上测评
- (2026年)医疗废物规范化管理知识培训课件
- 2026年春季中国电子技术标准化研究院招聘笔试参考试题及答案详解
- 2026年布鲁氏菌病(慢性期)中医临床路径
- 外汇业务培训
评论
0/150
提交评论