关注 +点赞 不错过精彩内容
大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作!
本节主要讲的是,中断系统和外部中断,依靠外部中断来学习中断系统
中断系统:管理和执行中断的逻辑结构
外部中断:诸多能产生中断的外设之一
一、什么是中断
中断:在主程序运行过程中,出现了特定的中断触发条件(中断源),使得CPU暂停当前正在运行的程序,转而去处理中断程序,处理完成后又返回原来被暂停的位置继续运行
中断触发条件:如对外部中断来说,是引脚发生了电平跳变;对于定时器来说,定时的时间到了;对于串口通信来说,可以是接收到了数据。这些都是比较紧急的事件,如果不及时处理,那么下一个跳变信号就会跟着过来、新的数据会去覆盖旧的数据,所以需要及时处理。
使用中断系统的必要性:极大的提高了程序运行效率,如果没有中断系统,为了防止外部中断被忽略或者串口数据被覆盖,那么主程序就需要不断地查询是否有这些事情发生,就不能执行其他事情了。比如,如果没有定时中断,那么主函数只能使用Delay函数来实行定时功能,但有了中断系统以后主程序就可以放心执行其他事情,有中断的时候再去处理
中断优先级:当有多个中断源同时申请中断时,CPU会根据中断源的轻重缓急进行裁决,优先响应更加紧急的中断源。这个中断优先级是我们根据程序设计的需求,自己设置的,中断优先级是为了在多个中断同时申请时,判断一下,应该先处理哪个,如果事件非常紧急,那你就把优先级设置高一些,如果不是那么紧急,那你就可以把优先级设置低一些,这样可以更好地安排这些中断事件,防止紧急的事件被别的中断耽误。在STM32中,中断优先级还有多种分类,这个后面再详细展开讲。
中断嵌套:当一个中断程序正在运行时,又有新的更高优先级的中断源申请中断,CPU再次暂停当前中断程序,转而去处理新的中断程序,处理完成后依次进行返回。这种把中断程序再次中断的现象,就叫做中断嵌套。中断嵌套也是为了照顾非常紧急的中断的,如果现在CPU已经在执行某个中断程序了,那这个中断就可以把当前的中断程序进行二次中断,这样新的紧急中断就可以立即被执行了,能否进行中断嵌套,也是由中断优先级来决定的
作 者 :硬核王同学
------- END -------
关注公众号回复“加群”按规则加入技术交流群 回复“1024”查看更多内容