2019-12-13

昨天学习了从图形化开始设计,今天开始要每天学习一个外设。本堂课学习中断。

中断:

中断是硬件管理的一种手段,在中断讲解之初,要引入概念:异常。中断是异常的中的一种,所谓中断就是在任务执行过程中打断,强行执行一个另外的任务。目前可以等同理解。

第一个启动文件中,第一件事是设置栈容量和复位中断。

异常向量表:各个子程序入口,所有的中断和异常都要以地址形式访问

中断的过程:

[if !supportLists]1.          [endif]保护现场,

[if !supportLists]2.          [endif]储存返回地址

[if !supportLists]3.          [endif]进入ISR

[if !supportLists]4.          [endif]释放资源并返回现场

[if !supportLists]5.          [endif]程序交给PC

中断过程会把目前MPU的所有寄存器状态压入一个专用的栈中,并把返回地址储存起来,这是中断的第一步,即保护现场。

然后将当前要跳转的程序交给中断子程序。

中断子程序用ISR表示

异常用于解决系统性的问题,中断是用户使用的,在中断/异常向量表中,异常用灰色表示,中断用白色表示。

中断的优先级:优先级值越小,优先级越高,但中断都高于前后台的用户程序。

中断嵌套控制器(NVIC):

中断打断中断即称为中断嵌套,通过优先级实现。两类优先级:抢占式优先级和响应优先级。

设置优先级组:表示优先级的只有4位,即0~1516个优先级,抢占式和响应式并存,但是分为两组,共同参与4位的分配,

抢占式优先级的用法是谁的优先级高,就可以抢占,多用于中断嵌套。抢占优先级高可以打断抢占优先级低的。

响应式优先级,在抢占相同时,响应高的才能执行,当抢占、响应都相同,则应当参考中断向量表,谁先执行

中断的使用:

初始化NVIC

配置优先级(优先级组、优先级值)

使能对应外设的中断,

 

外设的中断

外部中断EXTI

外部输入引发中断,在51单片机中,可能是高电平、低电平、上升沿、下降沿引发中断,而在stm32中,只有边沿引发中断

上升沿

下降沿

双边沿

管理一百多根线中断的也只有16根引脚,除了引脚电平变化,还有内部温度采样、或其他内部一些状态可以引发,一共有23个中断

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容