stm32f103学习笔记——NVIC初始化

    初学STM32F103的中断优先级配置,感觉很难找到着手点,下面给出NVIC初始化程序的注释,供大家参考:

void Nvic_Init(void)//中断优先级初始化
{
NVIC_InitTypeDef NVIC_InitStructure;

/* NVIC_PriorityGroup */
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//指定抢占优先级为两位,响应优先级为2位,(抢占优先级->响应优先级->中断向量表顺序)
NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;//指定TIMER3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;//指定抢占优先级为2
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//指定响应优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中断请求
NVIC_Init(&NVIC_InitStructure);//根据赋的结构体对NVIC初始化

NVIC_InitStructure.NVIC_IRQChannel = TIM4_IRQn;            //指定TIMER4中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;  //指定抢占优先级为0,0为最高优先级
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;         //指定响应优先级为0
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;            //使能中断请求
NVIC_Init(&NVIC_InitStructure);                            //根据赋的结构体对NVIC初始化

/* Enable the USARTy Interrupt */
NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//指定串口3中断
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;//指定抢占优先级为1
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;//指定响应优先级为0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能中断请求
NVIC_Init(&NVIC_InitStructure);//根据赋的结构体对NVIC初始化
}

你可能感兴趣的:(stm32学习笔记,c语言,stm32,NVIC)