版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外部中断2023年1月何为外部中断?中断其实就是机器收到信号后,放下正在处理的任务,来处理你设定好的中断函数内部中断是指内部定时器、串口、AD、IIC、SPI等等资源的中断,而外部中断则是外部信号引起的中断,如上升沿、下降沿等。STM32F103的外部中断控制什么是“中断”?中断服务程序发申请中断服务程序发申请外设CPUCPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(中断服务子程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。
EG:吃饭时突然手机铃响…中断示意图STM32F103的外部中断控制STM32中的中断源
Cortex-M3内核支持256个中断,其中包含了16个内核中断和240个外部中断,并且具有256级的可编程中断设置。STM32并没有使用CM3内核的全部东西,而是只用了它的一部分。STM32有84个中断,包括16个内核中断和68个可屏蔽中断,具有16级可编程的中断优先级。STM32F103系列上面,又只有60个可屏蔽中断(在107系列才有68个)STM32F103的外部中断控制STM32中的中断源来源:《Cortex-M3权威指南》STM32F103的外部中断控制STM32中的中断源Cortex-M3内核具有强大的异常响应系统,能够打断当前代码执行流程的事件分为异常Exception和中断Interrupt,用一个异常向量表管理起来,编号为0~15的称为内核异常,而16以上的则称为外部中断。STM32向量表,优先级从-3至6的中断向量称为系统异常,优先级为负的不能设置优先级,如复位RESET、不可屏蔽中断NMI、硬错误HARDFAULT。从优先级7开始的称为外部中断,优先级可自行设置。STM32F103的外部中断控制STM32中的中断源
《STM32中文参考手册》9.1.2STM32F103系列的60个可屏蔽中断STM32F103的外部中断控制STM32中断优先级分组几十个中断,怎么管理?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位响应优先级STM32F103的外部中断控制STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1.何为占先式优先级(pre-emptionpriority)
高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。2.何为副优先级(subpriority)
在占先式优先级相同的情况下,副优先级高的中断优先被响应;
在占先式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。3.判断中断是否会被响应的依据
首先是占先式优先级,其次是副优先级;
占先式优先级决定是否会有中断嵌套;STM32中断优先级分组STM32F103的外部中断控制STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。1.何为占先式优先级(pre-emptionpriority)
高占先式优先级的中断事件会打断当前的主程序/中断程序运行—抢断式优先响应,俗称中断嵌套。2.何为副优先级(subpriority)
在占先式优先级相同的情况下,副优先级高的中断优先被响应;
在占先式优先级相同的情况下,如果有低副优先级中断正在执行,高副优先级的中断要等待已被响应的低副优先级中断执行结束后才能得到响应—非抢断式响应(不能嵌套)。3.判断中断是否会被响应的依据
首先是占先式优先级,其次是副优先级;
占先式优先级决定是否会有中断嵌套;STM32中断优先级分组STM32F103的外部中断控制STM32(Cortex-M3)中有两个优先级的概念:抢占式优先级和响应优先级,也把响应优先级称作“亚优先级”或“副优先级”,每个中断源都需要被指定这两种优先级。4.优先级冲突的处理
具有高抢占式优先级的中断可以在具有低抢占式优先级的中断处理过程中被响应,即中断的嵌套,或者说高抢占式优先级的中断可以嵌套低抢占式优先级的中断。
当两个中断源的抢占式优先级相同时,这两个中断将没有嵌套关系,当一个中断到来后,如果正在处理另一个中断,这个后到来的中断就要等到前一个中断处理完之后才能被处理。如果这两个中断同时到达,则中断控制器根据他们的响应优先级高低来决定先处理哪一个;如果他们的抢占式优先级和响应优先级都相等,则根据他们在中断表中的排位顺序决定先处理哪一个。STM32中断优先级分组第6讲STM32F103的外部中断控制特别说明:一般情况下,系统代码执行过程中,只设置一次中断优先级分组,比如分组2,设置好分组之后一般不会再改变分组。随意改变分组会导致中断管理混乱,程序出现意想不到的执行结果。STM32中断优先级分组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口对应呢?STM32F103的外部中断控制STM32外部中断GPIOx.0映射到EXTI0GPIOx.1映射到EXTI1……GPIOx.15映射到EXTI15STM32F103的外部中断控制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的外部中断控制认识几个中断相关的函数函数名voidHAL_NVIC_SetPriority(IRQn_TypeIRQn,uint32_t
PreemptPriority,uint32_tSubPriority)函数描述设置中断的优先级参数IRQn:外部中断号。该参数可以是IRQn_Type枚举类型的枚举值
PreemptPriority:IRQn通道的抢占优先级。此参数可以是0到15之间的值,较低的优先级值表示较高的优先级
SubPriority:IRQ通道的副优先级。这个参数可以是0到15之间的值,一个较低的优先级值表示较高的优先级。第6讲STM32F103的外部中断控制认识几个中断相关的函数函数名voidHAL_NVIC_EnableIRQ(IRQn_TypeIRQn)函数描述在NVIC中断控制器中启用特定设备的中断。参数IRQn:外部中断号。该参数可以是IRQn_Type枚举类型的枚举值要点要正确配置中断优先级,应该在此之前调用函数
NVIC_PriorityGroupConfig()STM32F103的外部中断控制认识几个中断相关的函数函数名voidHAL_GPIO_EXTI_IRQHandler(uint16_tGPIO_Pin)函数描述ThisfunctionhandlesEXTIinterruptrequest.参数GPIO_Pin:SpecifiesthepinsconnectedEXTIlineSTM32F103的外部中断控制认识几个中断相关的函数宏定义__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin)功能描述清除EXTI的线挂起位.参数__EXTI_LINE__:指定要清除的EXTI线.这个参数可以是GPIO_PIN_x的任意组合,其中x可以是(0..15)STM32F103的外部中断控制认识几个中断相关的函数函数名void
HAL_GPIO_EXTI_Callback(uint16_t
GPIO_Pin)函数描述EXTIlinedetectioncallbacks.参数GPIO_Pin:SpecifiesthepinsconnectedEXTIline函数HAL_GPIO_ReadPin()的局限性Key_Value=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_4);函数HAL_GPIO_ReadPin()的局限性:不能有效探测脉冲,即实时性受限确定哪个引脚作为外部中断的输入引脚?STM32中,每一个GPIO都可以触发一个外部中断GPIO的中断是以组为一个单位的,同组间的外部中断同一时间只能使用一个。比如说,PA0,PB0,PC0,这些为1组,如果使用PA0作为外部中断源,那么同组的别的引脚就不能够再作为外部中断的输入引脚使用了每一组使用一个中断标志EXTIx。EXTI0–EXTI4这5个外部中断有着自己的单独的中断响应函数,EXTI5-9共用一个中断响应函数,EXTI10-15共用一个中断响应函数。详见下表STM32F103RCT6引脚与外部中断关系列表GPIO引脚中断标志中断响应函数备注PA0、PB0、PC0EXTI0EXTI0_IRQHandler(void)3选1,不能同时作为外部中断输入引脚
中断线:EXTI_Line0PA1、PB1、PC1EXTI1EXTI1_IRQHandler(void)3选1,不能同时作为外部中断输入引脚
中断线:EXTI_Line1PA2、PB2、PC2EXTI2EXTI2_IRQHandler(void)3选1,不能同时作为外部中断输入引脚
中断线:EXTI_Line2
PA3、PB3、PC3EXTI3EXTI3_IRQHandler(void)3选1,不能同时作为外部中断输入引脚
中断线:EXTI_Line3PA4、PB4、PC4EXTI4EXTI4_IRQHandler(void)3选1,不能同时作为外部中断输入引脚
中断线:EXTI_Line4PA5、PB5、PC5、PA6、PB6、PC6、PA7、PB7、PC7、PA8、PB8、PC8、PA9、PB9、PC9EXTI9-5EXTI9_5_IRQHandler(void)15选1,不能同时作为外部中断输入引脚
中断线EXTI_Line5--EXTI_Line9PA10、PB10、PC10、PA11、PB11、PC11、PA12、PB12、PC12、PA13、PB13、PC13、PA14、PB14、PC14、PA15、PB15、PC15EXTI15_10EXTI15_10_IRQHandler(void)18选1,不能同时作为外部中断输入引脚中断线EXTI_Line10--EXTI_Line15硬件准备选定一个引脚作为外部中断的输入引脚功能设计:将PA6配置成外部中断模式,用PA6外接的按键控制LED编程第一步配置PA6为上拉模式使能NVIC中断的外部中断--〉产生代码回调函数找到HAL_GPIO_EXTI_Callback函数,并复制到/*USER
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年蓝山县带编教师招聘笔试模拟试题及答案解析
- 2026年江永县带编教师招聘考试模拟试题及答案解析
- 2026年峨山彝族自治县带编教师招聘考试备考题库及答案解析
- 2026年旺苍县带编教师招聘笔试备考试题及答案解析
- 2026年河南省教师招聘考试教育理论基础全真试题(含详细答案解析)
- 2026年资溪县带编教师招聘笔试参考题库及答案解析
- 2026年合江县带编教师招聘考试备考题库及答案解析
- 2026年松阳县带编教师招聘考试备考试题及答案解析
- 2026年海盐县带编教师招聘笔试备考试题及答案解析
- 2026年道真仡佬族苗族自治县带编教师招聘笔试模拟试题及答案解析
- 泸州兴泸水务集团营业员笔试题库
- 2026年国企党建考试核心知识点复习题及参考答案
- 广元市公开招募2026年养老服务管理专员政策性岗位工作人员的(67 )考试备考题库及答案详解
- 安全员A本延期考试题库2025版
- 2025年高级审计师考试模拟试题及答案
- 新版2026秋新教科版科学六年级上册实验报告(共17个实验可用来填实验报告单)合集
- 旁站监理工作监理实施细则
- 注册消防工程师继续教育2025年部分题目与答案(126题)
- 2026年度医师定期考核【执业-3】
- 手术室安全管理制度培训
- 2026年童年测试题加答案
评论
0/150
提交评论