1.1中断的概念
中断一般是由硬件产生的事件,它会引起程序流偏离正常的流程,转去执行其他的流程。
cpu在这正常执行程序的过程中,由于内部/外部事件的触发或程序的欲仙安排引起CPU暂停当前正在运行的程序,转去执行终端服务子程序,等到终端服务子程序执行完毕后,cpu继续执行原来的程序,这一过程为中断。
1.2中断的过程
1、由外设发出中断请求
2、处理器暂停当前执行的任务,保护现场,将当前位置的PC地址压栈;
3、程序跳转到中断服务程序,执行中断服务程序;
4、回复现场,将栈顶的值会送给PC;
5、跳转到被中断的位置开始执行下一个指令。
1.3中断服务函数
1、中断服务函数无参无返回值
2、中断服务函数不能使用printf函数
2、部分专业术语
中断源:引起中断的原因,或者能够发出中断请求信号的来源
中断优先级:中断同时到来,谁先执行。
中断响应:中断时间发生,M3内核准备执行该事件,即为中断响应。
中断服务函数:中断时间发生了,要执行的函数
3、stm32中的中断优先级-了解
对于STM32来说:在设计芯片时候,只采用其中4位0-15
中断优先级分为:抢占优先级和响应优先级
抢占优先级高的任务可以打断抢占优先级低的任务
中断分组:4位里有两位是抢占,2位是响应,中断分组,一个工程只分1次。
3.4中断使能
外部中断或部分内部中断(异常),如果需要用中断,需要先在NVIC中使能中断。