一、STM32中断的含义
中断的含义在这里用一个打比方来解释。STM32好比是一个人。这个人,他现在正在干某一项活动(比如写作业,作业还挺多,他估计得写很久),现在他的班主任要找他去干一个某一个活(比如去取个快递,时间比较短的一个活动)。这个时候这个人 ,他放下作业去取快递就是中断。那么如果班主任和校长同时叫他去取快递呢?这个时候,就要涉及到优先级的问题。
二、中断优先级
在初始化一个EXTI的时候,我们需要先指定各个中断的优先级(谁叫来指使这个“他”来干活)。在STM32中, 设置有抢占优先级 和 响应优先级
抢占优先级 响应优先级两级比较规则为 : 先比较抢占优先级,如果抢占优先级一样,再比较响应优先级。
每一级比较规则为:“The lower the value, the greater the priority of the corresponding interrupt.”
三、在stm32 keil中的编程
(1)打开时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOB,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//待商榷记得打开复用时钟。
(2)配置GPIO口
GPIO_InitStructre.GPIO_Pin=GPIO_Pin_x; // x口作为GPIO,也是EXTI口。
GPIO_InitStructre.GPIO_Mode=GPIO_Mode_IPU/GPIO_Mode_IPU; //下降沿触发 ,所以给上拉的。
GPIO_InitStructre.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOC,&GPIO_InitStructre);