摩尔芯闻 > 行业新闻 > 半导体 > stm32NVIC中断优先管理

stm32NVIC中断优先管理

eefocus ·2018-12-27 22:13·电子工程世界
阅读:1644

这里简单介绍一下STM32的中断分组:STM32 将中断分为5个组,组为0~4,最多设置16个中断优先级。该分组的设置是由SCB->AIRCR寄存器的bit10~8,来定义的,具体分配关系表如下:

第0组 :所有4位用于指定响应优先级

第1组:最高1位用于指定抢占优先级,最低3位用于指定响应优先级

第2组:最高2位用于指定抢占优先级,最低两位用于指定响应优先级

第3组:最高3位用于指定抢占优先级,最低1位用于指定响应优先级

第4组:所有4位用于指定抢占优先级

通过这个表,我们就可以清楚的看到组0~4对应的配置关系,例如组设置3,那么此时所有的60个中断,每个中断的中断优先级寄存器的高4位中的最高3位

是抢占优先级,低1位是响应优先级,每个中断,你可以设置抢占优先级为0~7,响应优先级为1或0,抢占优先级别高于响应优先级,数值越小代表优先级越高,

而强占优先级相同时不可以打断低响应优先级的中断,

void MY_ NVIC _PriorityGroupConfig(u8 NVIC_Group)  //设置分组

{

u32 temp,temp1;

temp1=(~NVIC_Group)&0x07;//取后三位

temp1<<=8;

temp=SCB->AIRCR;  //读取先前的设置

temp&=0X0000F8FF; //清空先前分组

temp|=0X05FA0000; //写入钥匙

temp|=temp1;

SCB->AIRCR=temp;  //设置分组

}

/设置NVIC

//NVIC_PreemptionPriority:抢占优先级

//NVIC_SubPriority       :响应优先级

//NVIC_Channel           :中断编号

//NVIC_Group             :中断分组 0~4

//注意优先级不能超过设定的组的范围!否则会有意想不到的错误

//组划分:

//组0:0位抢占优先级,4位响应优先级

//组1:1位抢占优先级,3位响应优先级

//组2:2位抢占优先级,2位响应优先级

//组3:3位抢占优先级,1位响应优先级

//组4:4位抢占优先级,0位响应优先级

//NVIC_SubPriority和NVIC_PreemptionPriority的原则是,数值越小,越优先

void MY_NVIC_Init(u8 NVIC_PreemptionPriority,u8 NVIC_SubPriority,u8 NVIC_Channel,u8 NVIC_Group)

{

u32 temp;

u8 IPRADDR=NVIC_Channel/4;  //每组只能存4个,得到组地址

u8 IPROFFSET=NVIC_Channel%4;//在组内的偏移

IPROFFSET=IPROFFSET*8+4;    //得到偏移的确切位置

MY_NVIC_PriorityGroupConfig(NVIC_Group);//设置分组

temp=NVIC_PreemptionPriority<<(4-NVIC_Group);

temp|=NVIC_SubPriority&(0x0f>>NVIC_Group);

temp&=0xf;//取低四位

if(NVIC_Channel<32)NVIC->ISER[0]|=1<

else NVIC->ISER[1]|=1<<(NVIC_Channel-32);

NVIC->IPR[IPRADDR]|=temp<

}

MY_NVIC_Init(2,3,EXTI0_IRQChannel,2); //抢占2,子优先级3,组2

MY_NVIC_Init(2,2,EXTI2_IRQChannel,2);//抢占2,子优先级2,组2

MY_NVIC_Init(2,1,EXTI3_IRQChannel,2);//抢占2,子优先级1,组2

MY_NVIC_Init(2,0,EXTI4_IRQChannel,2);//抢占2,子优先级0,组2

总之, 可以归纳为几点:

1.每次程序运行时,只能设置一组中断,但可以设置多个中断

2.抢占优先可以实现中断嵌套,响应优先级不能实现中断嵌套,高抢占优先级可以打断低抢占优先级,响应优先级之间不能打断,

3.抢占优先级相同时,响应优先的执行顺序看谁先触发。

分享到:
微信 新浪微博 QQ空间 LinkedIn

上一篇:全面封杀!传川普下月发行政命令、禁美企买华为设备

下一篇:技术文章—以浪涌抗扰度的视角谈前级EMC的设计

打开摩尔直播,更多新闻内容
半导体大咖直播分享高清观看
立即下载