STM32中断&定时器-STM32电控学习笔记06
day6:2022/9/24
【中断概述】
在 STM32 中,对信号的处理可以分为轮询方式和中断方式,轮询方式就是不断去访问一个信号的端口,看看有没有信号进入,有则进行处理,中断方式则是当输入产生的时候,产生一个触发信号告诉STM32有输入信号进入,需要进行处理。中断顾名思义,就是在一个程序A执行过程中,触发了某一条件,或者到了预定的时间,机器自动停止正在执行的程序A,中间插入另一个待处理程序B,待B处理完后,再继续处理程序A。
中断优先级:在遇到多个不同的中断时,MCU无法对其同时处理
就比如你早上起床去厕所尿尿,不小心尿到裤子上了,同时你家地震了,那么第一时间你会选择逃跑还是换裤子
这便是优先级的概念,在STM32中,中断优先级分为两种,分别是可编程和不可编程,优先值越小的程序系统越先执行,++中断优先级按照分组配置++。优先级分组又分为:抢占优先级和子优先级,只有抢占优先级才有抢占中断的权限,发生中断嵌套。
中断嵌套:假设上面提到的换裤子和逃跑是两个程序,逃跑的优先级为1,换裤子的优先级为10,那么逃跑的优先级数值要小,所以逃跑比换裤子更重要。
假如换裤子正在执行当中,地震来了触发中断条件,那么系统自动暂停换裤子这一程序,将执行权交予逃跑这一程序,待逃跑程序执行结束后,再继续执行换裤子程序。
PS:++如果两个程序优先级相同,则不发生抢占行为,A程序执行过程中,B程序处于中断挂起状态。待A程序结束后,再执行B程序。++
想要实现中断,可通过嵌套中断控制器(NVIC)实现。
【定时器概述】
定时器就是指SysTick系统定时器,可用于操作系统产生时基,进行任务调度、同步等。
就是指时间基准,定时器类似于我们日常的时钟,让我们对时间有个精准的把控,知道早上六点该睡觉,下午五点该起床,晚上八点该吃席了(doge)
关于定时器和中断回调函数的应用我会在下一篇笔记中写到,有兴趣的小伙伴可以自习去查看。