参照固件库例程,该设置的寄存器都设置了。
//各中断的优先级定义 #define Sys_TickPri 0 #define Exit8_IntPri 3 //power down #define Spi1_Txd_IntPri 4 //驱动数据发送中断 #define Exit10_IntPri 5 //花型接收中断 u1_txd #define U2_Rxd_Dma_Intpri 6 //QEI接收中断 #define Spi2_DmaTxd_IntPri 7 //通讯发送DMA中断
void Nvic_Init(void) { NVIC_SetPriorityGrouping(NVIC_PriorityGroup_4); //16级抢占优先级,1级子优先级。
NVIC_SetPriority(EXTI9_5_IRQn,Exit8_IntPri);// NVIC_SetPriority(SPI1_IRQn, Spi1_Txd_IntPri); NVIC_SetPriority(EXTI15_10_IRQn, Exit10_IntPri); NVIC_SetPriority(USART2_IRQn, U2_Rxd_Dma_Intpri); NVIC_SetPriority(DMA1_Channel5_IRQn, Spi2_DmaTxd_IntPri); NVIC_SetPriority(CPU_INT_SYSTICK,Sys_TickPri);
NVIC_ClearPendingIRQ(EXTI9_5_IRQn); NVIC_ClearPendingIRQ(SPI1_IRQn); NVIC_ClearPendingIRQ(EXTI15_10_IRQn); NVIC_ClearPendingIRQ(USART2_IRQn); NVIC_ClearPendingIRQ(DMA1_Channel5_IRQn); NVIC_ClearPendingIRQ(SPI3_IRQn);
NVIC_EnableIRQ(EXTI9_5_IRQn ); NVIC_EnableIRQ(SPI1_IRQn ); NVIC_EnableIRQ(EXTI15_10_IRQn ); NVIC_EnableIRQ(USART2_IRQn ); NVIC_EnableIRQ(DMA1_Channel5_IRQn); }
|