系统执行一般只设置一次优先级分组。设置好之后不再改变,不然会导致混乱。
抢占优先级先进行判断响应优先级后,同级别抢占优先级但高级别的响应优先级也不能打断同级别抢占优先级低级别的响应优先级。
系统中断优先级分组函数:
如NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2)设置为中断分组2.
库函数通过NVIC_Init()函数来设置中断优先级入口参数为一个有四个成员变量的结构体:
1.入口中断通道确定入口中断。
2.设置中断响应抢占级。
3.设置中断响应优先级。
4.使能这个通道。
中断使能寄存器(Interrupt set enable register)ISER[8]一个32位的寄存器。
中断失能寄存器(Interrupt clear enable register)ICER[8]一个32位的寄存器。
中断挂起寄存器(Interrupt set pending register)ISPR[8]当CPU响应其他中断时,对应的中断将会被挂起
中断解挂寄存器(Interrupt clear pending register)ICPR[8]写1时,中断挂起的中断会被恢复继续执行其后程序。
中断激活寄存器(Interrupt active bit register)IABR[8]知道哪一个中断在执行,为1则在执行。
中断优先级设置步骤
1.设置中断优先级分组 NVIC_PriorityGroupConfig();
2.针对每个中断设置抢占优先级和响应优先级
3.设置挂起和解挂或者查看当前状态
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)