用以前库的时候,每写一个关于中为优先级的程序就必须包含两个函数:
void NVIC_PriorityGroupConfig();
void NVIC+init();
但是现在的话,在官方例程上的设置是如下:
/* Set Interrupt Group Priority */
HAL_NVIC_SetPriority(DMA_STREAM_IRQ, 0, 0);
void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint32_t SubPriority)
{
uint32_t prioritygroup = 0x00;
/* Check the parameters */
assert_param(IS_NVIC_SUB_PRIORITY(SubPriority));
assert_param(IS_NVIC_PREEMPTION_PRIORITY(PreemptPriority));
prioritygroup = NVIC_GetPriorityGrouping();
NVIC_SetPriority(IRQn, NVIC_EncodePriority(prioritygroup, PreemptPriority, SubPriority));
}
而分组 :prioritygroup = NVIC_GetPriorityGrouping();
中断优先级分组跑到里面来了。
请问是不是不需要再人工进行分组了,对于这块非常不理解。请大神指导
|