2.7.1.11.1 NVIC programming hints

Software uses the CPSIE I and CPSID I instructions to enable and disable interrupts. The CMSIS provides the following intrinsic functions for these instructions:

void __disable_irq(void) // Disable Interrupts

void __enable_irq(void) // Enable Interrupts

In addition, the CMSIS provides a number of functions for NVIC control, including those listed in the following table.

Table 2-43. CMSIS Functions for NVIC Control
CMSIS interrupt control functionDescription
void NVIC_SetPriorityGrouping(uint32_t priority_grouping)Set the priority grouping
void NVIC_EnableIRQ(IRQn_t IRQn)Enable IRQn
void NVIC_DisableIRQ(IRQn_t IRQn)Disable IRQn
uint32_t NVIC_GetPendingIRQ (IRQn_t IRQn)Return true (IRQ-Number) if IRQn is pending
void NVIC_SetPendingIRQ (IRQn_t IRQn)Set IRQn pending
void NVIC_ClearPendingIRQ (IRQn_t IRQn)Clear IRQn pending status
uint32_t NVIC_GetActive (IRQn_t IRQn)Return the IRQ number of the active interrupt
void NVIC_SetPriority (IRQn_t IRQn, uint32_t priority)Set priority for IRQn
uint32_t NVIC_GetPriority (IRQn_t IRQn)Read priority of IRQn
void NVIC_SystemReset (void)Reset the system

The input parameter IRQn is the IRQ number, see Table 2-16. For more information about these functions see the CMSIS documentation.