这是本人第一次写博客,将自己学习之后理解到的都记录下来。如有侵权请联系删除。
STM32F4是ARM公司Contex-M4内核的芯片。本身具有256个中断,用于一般项目已经绰绰有余了,STM32并未使用该内核所有的东西,但对我们来说只是会配置就可以了。对于其中断数量只是了解就OK了,如果真的有需要用到其所有数量的中断的大佬,也不会看我的文章了,中断作为单片机最重要的外设之一,其优先级是最重要的,STM32的中断优先级配置主要有以下两个方面
一是中断分组;二是对每一个中断中断设置其抢占优先级和响应优先级。如下图为正点原子的PPT截图。
中断优先级共分为五组,为0-4;如下图所示,整个中断分组由寄存SCB->AIRCR寄存器bit10-8来定义,在正点原子的库函数版本中misc.c中,由函数void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);函数设置,由8,9,10位的设置不同,中断分组也不一样,之后其抢占优先级和响应优先级的位的数目也不一样,如8,9,10位是101时,抢占优先级占2位,可以分别赋值,00,01,10,11,也就有4个级别,相应的响应优先级也占2位,赋值位00,01,10,11,也有4个级别,抢占优先级的级别高于响应优先级,同一优先级数值越小优先级越高,高的抢占优先级可以打断低的抢占优先级,而高的响应优先级却不能打断低的响应优先级,优先级相同时,谁先发生谁执行。如果8,9,10位是111或者011,即只比较其响应优先级后者抢占优先级,按照两者的比较规矩来设置即可。
中断分组之后就各中断的抢占优先级和响应优先级配置就由中断初始化函数NVIC_Init();其声明一个结构体,四个成员变量,
分别位中断对应的名字,中断抢占优先级,中断响应优先级,中断使能,配置完成如图所示,
好了,中断优先级配置分享到这儿了,本人也刚入门没多久,如有错误,请多多指教,学到新的知识也会分享的,谢谢