6.中断优先级分组NVIC

void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)

void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)

typedef struct NVIC_InitTypeDef{

uint8_t NVIC_IRQChannel; //中断通道

uint8_t NVIC_IRQChannelPreemptionPriority;  //抢占优先级

uint8_t NVIC_IRQChannelSubPriority;   //响应优先级

FunctionalState NVIC_IRQChannelCmd;   //中断通道使能

typedef structNVIC_Type{

__IO uint32_t ISER[8]; 

...

__IO uint8_t  IP[240]; 

...

中断优先级设置步骤:

a.系统运行后,首先进行中断优先级分组:NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)

整个系统执行过程中只设置一次中断分组

b.针对每个中断进行初始化,设置抢占优先级和响应优先级以及使能:NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)

c.若需要挂起/解挂,查看中断当前激活状态,分别调用相关函数

猜你喜欢

转载自blog.csdn.net/weixin_42480952/article/details/82628392