《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断_第1页
《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断_第2页
《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断_第3页
《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断_第4页
《嵌入式技术入门与实战(基于STM32)》 课件 4-用好STM32的外部中断_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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、嵌套向量中断控制器NVICCortex内核具有强大的异常响应系统,把能够打断当前代码执行流程的事件分为异常(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打断】举例:Cortex-M4优先级配置寄存器共有8位,而STM32F系列MCU的NVIC只采用了4位二进制数设置中断优先级这4位二进制数可以分为两段,一段用于设置抢占优先级,另一段用于设置响应优先级,共有5种组合:STM32优先级的配置中断分组输入参数bit分配情况中断优先级分配结果NVIC_PriorityGroup_00:40位抢占优先级(0),4位响应优先级(0~15)NVIC_PriorityGroup_11:31位抢占优先级(0~1),3位响应优先级(0~7)NVIC_PriorityGroup_22:22位抢占优先级(0~3),2位响应优先级(0~3)NVIC_PriorityGroup_33:13位抢占优先级(0~7),1位响应优先级(0~1)NVIC_PriorityGroup_44:04位抢占优先级(0~15),0位响应优先级(0)思考与练习◎STM32F407xx系列芯片中哪些异常是编号为负的内核异常,其优先级如何?◎NVIC的作用是什么,具有什么特点?3、外部中断应用实例分析外部中断应用实例设计并实现一个由外部中断完成的按键控制LED灯系统,系统上电后,按键按下会触发外部中断,通过外部中断实现按键控制LED灯的亮灭状态。硬件平台条件芯片:STM32F407ZGT6实验板:正点原子探索开发套件实验板已实现了硬件电路,无需重新搭建。外部中断线的选择四个独立按键:KEY0->PE4->EXTI4KEY1->PE3->EXTI3KEY2->PE2->EXTI2WK_UP->PA0->EXTI0外部中断触发模式的配置WK_UP->PA0->EXTI0,下拉输入,上升沿触发中断KEY0->PE4->EXTI4,上拉输入,下降沿触发中断

KEY1->PE3->EXTI3,上拉输入,下降沿触发中断KEY2->PE2->EXTI2,上拉输入,下降沿触发中断按键连接硬件电路按键按下按键按下软件设计:外部中断服务函数中断服务函数是用户用来编写中断响应事件的。GPIO引脚作为输入线的外部中断线EXTI0~15在中断向量表中只分配了7个中断向量,也就是只能使用7个中断服务函数。名称说明地址中断服务函数名EXTI0EXTI线0中断0x0000_0058EXTI0_IRQHandlerEXTI1EXTI线1中断0x0000_005CEXTI1_IRQHandlerEXTI2EXTI线2中断0x0000_0060EXTI2_IRQHandlerEXTI3EXTI线3中断0x0000_0064EXTI3_IRQHandlerEXTI4EXTI线4中断0x0000_0068EXTI4_IRQHandlerEXTI9_5EXTI线[9:5]中断0x0000_009CEXTI9_5_IRQHandlerEXTI15_10EXTI线[15:10]中断0x0000_00E0EXTI5_10_IRQHandler软件设计:外部中断服务函数的调用以EXTI0_IRQHandle()为例,代码实现过程如下:void

EXTI0_IRQHandler(void){HAL_GPIO_EXTI_IRQHandler(KEY4_Pin);}void

HAL_GPIO_EXTI_IRQHandler(uint16_tGPIO_Pin){

if(__HAL_GPIO_EXTI_GET_IT(GPIO_Pin)!=RESET){__HAL_GPIO_EXTI_CLEAR_IT(GPIO_Pin);

HAL_GPIO_EXTI_Callback(GPIO_Pin);

//调用回调函数}}void

HAL_GPIO_EXTI_Cal

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论