STM32学习笔记【江科协】【5-1】EXTI外部中断

本节主要讲的是,中断系统和外部中断,依靠外部中断来学习中断系统

中断系统:管理和执行中断的逻辑结构

外部中断:诸多能产生中断的外设之一


  • 中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行

*中断触发条件:如对外部中断来说,是引脚发生了电平跳变;对于定时器来说,定时的时间到了;对于串口通信来说,可以是接收到了数据。这些都是比较紧急的事件,如果不及时处理,那么下一个跳变信号就会跟着过来、新的数据会去覆盖旧的数据,所以需要及时处理。

  • 使用中断系统的必要性:极大的提高了程序运行效率,如果没有中断系统,为了防止外部中断被忽略或者串口数据被覆盖,那么主程序就需要不断地查询是否有这些事情发生,就不能执行其他事情了。比如,如果没有定时中断,那么主函数只能使用Delay函数来实行定时功能,但有了中断系统以后主程序就可以放心执行其他事情,有中断的时候再去处理
  • 中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源
  • 中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回

*能否进行中断嵌套也是由中断优先级决定的

中断程序执行流程

为了程序能在中断返回后继续原来的工作,在中断执行前,会对程序现场进行保护,中断执行后,会还原现场,这样保证了主程序即使被中断了,回来之后也能继续运行

用C语言编程,保护和还原现场的工作,编译器已经自动帮我们做好了

中断嵌套的执行流程

 

 一般中断程序都在一个主函数里,这个程序不需要我们去调用当中断来临时,又硬件自动调用这个函数


STM32中断 

  • 68个可屏蔽中断通道,包含EXTITIMADCUSARTSPII2CRTC等多个外设

*F1系列最多的中断数量,对于一个具体的型号,可能没有那么多中断,具体以对应型号的数据手册为准

  • 使用NVIC统一管理中断,每个中断通道都拥有16个可编程的优先等级,可对优先级进行分组,进一步设置抢占优先级和响应优先级
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值