|
NVIC_InitStructure.NVIC_IRQChannel = IntNumber;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = PreemptionPriority;
NVIC_InitStructure.NVIC_IRQChannelSubPriority = SubPriority;
NVIC_InitStructure.NVIC_IRQChannelCmd = NewState;
NVIC_Init(&NVIC_InitStructure);
// Configure the NVIC Preemption Priority Bits
NVIC_PriorityGroupConfig(NVIC_PriorityGroup);
现在我的系统中,有这些中断源:TIM2,TIM3,TIM4,TIM5; USART1,USART2,USART3,UART4,UART5, SYSTICK。 那么我这么理解对不对:
根据EDN您的博客中写到的 “整个系统中只能使用一组Group”原则,那么我使用Group1:第1组:最高1位用于指定抢占式优先级,最低3位用于指定响应优先级
对于抢占式优先级,TIM2,TIM3,TIM4,TIM5 设为最高 0 , uart 设为1
对于响应优先级,TIM2,TIM3,TIM4,TIM5 分别设1,2,3,4 ; usart1,usart2,usart3,uart4,uart5 分别设1,2,3,4,5
Systick有systick单独函数设置,这里不做说明。
NVIC我这么设置,有问题吗? 我的意愿是: TIM中断高于UART中断。原则上我是不希望中断嵌套的,但是为了更好区分UART和TIM中断,因此我选择了Group1,没有选择Group0.
|
|