无人问津也好,技不如人也罢,都应静下心来,去做该做的事。
最近在学STM32,所以也开贴记录一下主要内容,省的过目即忘。视频教程为江科大(改名江协科技),网站jiangxiekeji.com
本期介绍外部中断和中断系统,中断就是主程序执行时,发生了中断触发条件,当这些紧急事件处理完后,CPU继续执行程序。
外部中断的使用场景:外部驱动很快的突变信号
相关实验有对射式红外传感器计次和旋转编码器计次
中断简介
中断就像闹钟,你定了12点睡觉,但是时间还没到,你可以先去做其他事,若没有闹钟,你只能一遍遍反复去看时间,无法去做其他事。
对于外部中断来说,可以是引脚发生电平跳变,想要计次,那就变量++;
对于定时器来说,可以是定时的时间到了;
对于串口通讯来说,可以是接收到了数据,就把数据转存起来。
中断优先级:中断的紧急程度
中断执行流程
中断函数不需要主动调用,中断来时,硬件会自动调用。
STM32中断
NVIC:STM32的中断太多,用来管理中断,可比喻为医院的叫号系统,优先处理紧急的病人。
NVIC基本结构
NVIC优先级分组
响应优先级:当前中断处理完,再处理下一个中断。比如医生屋里的病人看完病了,紧急病人插队进去看病。
抢占优先级:当前还没中断处理完,优先处理下一个中断,即中断嵌套。比如医生屋里病人还没看完病,紧急病人便插队进去看病。
优先级数越小,优先级越高,0为最高优先级。
五种分组方式:(0,4)、(1,3)、(2,2)、(3,1)、(4,0)
EXTI简介
触发方式:上升沿/下降沿/双边沿/软件触发(引脚啥事没有,程序执行一局代码,就能触发)。
支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断(比如PA0和PB0不能同时触发),有多个中断时,要选择不同的Pin(比如PA0和PA1)
触发响应方式:中断响应:申请中断,CPU执行中断程序;事件响应:中断信号不会流向CPU,流向其他外设,触发其他外设的操作。如触发ADC转换、触发DMA等。
EXTI基本结构
外部中断的9~5会触发同一个中断函数, 15~10也会触发同一个中断函数。在编程时还需根据标志位区分是哪个中断。
AFIO复用IO口
这张图就很清晰解释”支持的GPIO口:所有GPIO口,但相同的Pin不能同时触发中断(比如PA0和PB0不能同时触发),有多个中断时,要选择不同的Pin(比如PA0和PA1)“这句话。
EXTI框图
图中两边都弯的器件为或门,有一边直的为与门。
程序现象
对射式红外传感器计次
旋转编码器计次
硬件电路