MG32L003 Standard Peripherals Firmware Library

宏定义 | 函数
NVIC Functions
Functions and Instructions Reference

Functions that manage interrupts and exceptions via the NVIC. 更多...

## 宏定义
#define | NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
#define | NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
#define | NVIC_EnableIRQ __NVIC_EnableIRQ
#define | NVIC_GetEnableIRQ __NVIC_GetEnableIRQ
#define | NVIC_DisableIRQ __NVIC_DisableIRQ
#define | NVIC_GetPendingIRQ __NVIC_GetPendingIRQ
#define | NVIC_SetPendingIRQ __NVIC_SetPendingIRQ
#define | NVIC_ClearPendingIRQ __NVIC_ClearPendingIRQ
#define | NVIC_SetPriority __NVIC_SetPriority
#define | NVIC_GetPriority __NVIC_GetPriority
#define | NVIC_SystemReset __NVIC_SystemReset
#define | NVIC_SetVector __NVIC_SetVector
#define | NVIC_GetVector __NVIC_GetVector
#define | NVIC_USER_IRQ_OFFSET 16
#define | EXC_RETURN_HANDLER (0xFFFFFFF1UL) /* return to Handler mode, uses MSP after return */
#define | EXC_RETURN_THREAD_MSP (0xFFFFFFF9UL) /* return to Thread mode, uses MSP after return */
#define | EXC_RETURN_THREAD_PSP (0xFFFFFFFDUL) /* return to Thread mode, uses PSP after return */
#define | _BIT_SHIFT(IRQn) ( ((((uint32_t)(int32_t)(IRQn)) ) & 0x03UL) * 8UL)
#define | _SHP_IDX(IRQn) ( (((((uint32_t)(int32_t)(IRQn)) & 0x0FUL)-8UL) >> 2UL) )
#define | _IP_IDX(IRQn) ( (((uint32_t)(int32_t)(IRQn)) >> 2UL) )
#define | __NVIC_SetPriorityGrouping(X) (void)(X)
#define | __NVIC_GetPriorityGrouping() (0U)

## 函数
__STATIC_INLINE void | __NVIC_EnableIRQ (IRQn_Type IRQn)
| Enable Interrupt 更多...
__STATIC_INLINE uint32_t | __NVIC_GetEnableIRQ (IRQn_Type IRQn)
| Get Interrupt Enable status 更多...
__STATIC_INLINE void | __NVIC_DisableIRQ (IRQn_Type IRQn)
| Disable Interrupt 更多...
__STATIC_INLINE uint32_t | __NVIC_GetPendingIRQ (IRQn_Type IRQn)
| Get Pending Interrupt 更多...
__STATIC_INLINE void | __NVIC_SetPendingIRQ (IRQn_Type IRQn)
| Set Pending Interrupt 更多...
__STATIC_INLINE void | __NVIC_ClearPendingIRQ (IRQn_Type IRQn)
| Clear Pending Interrupt 更多...
__STATIC_INLINE void | __NVIC_SetPriority (IRQn_Type IRQn, uint32_t priority)
| Set Interrupt Priority 更多...
__STATIC_INLINE uint32_t | __NVIC_GetPriority (IRQn_Type IRQn)
| Get Interrupt Priority 更多...
__STATIC_INLINE uint32_t | NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
| Encode Priority 更多...
__STATIC_INLINE void | NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t *const pPreemptPriority, uint32_t *const pSubPriority)
| Decode Priority 更多...
__STATIC_INLINE void | __NVIC_SetVector (IRQn_Type IRQn, uint32_t vector)
| Set Interrupt Vector 更多...
__STATIC_INLINE uint32_t | __NVIC_GetVector (IRQn_Type IRQn)
| Get Interrupt Vector 更多...
__NO_RETURN __STATIC_INLINE void | __NVIC_SystemReset (void)
| System Reset 更多...

## 详细描述

Functions that manage interrupts and exceptions via the NVIC.

## 函数说明

## ◆ __NVIC_ClearPendingIRQ()

__STATIC_INLINE void __NVIC_ClearPendingIRQ | ( | IRQn_Type | IRQn | ) |

Clear Pending Interrupt

Clears the pending bit of a device specific interrupt in the NVIC pending register.

参数

  [in] | IRQn | Device specific interrupt number.

注解
  IRQn must not be negative.

## ◆ __NVIC_DisableIRQ()

__STATIC_INLINE void __NVIC_DisableIRQ | ( | IRQn_Type | IRQn | ) |

Disable Interrupt

Disables a device specific interrupt in the NVIC interrupt controller.

参数

  [in] | IRQn | Device specific interrupt number.

注解
  IRQn must not be negative.

## ◆ __NVIC_EnableIRQ()

__STATIC_INLINE void __NVIC_EnableIRQ | ( | IRQn_Type | IRQn | ) |

Enable Interrupt

Enables a device specific interrupt in the NVIC interrupt controller.

参数

  [in] | IRQn | Device specific interrupt number.

注解
  IRQn must not be negative.

## ◆ __NVIC_GetEnableIRQ()

__STATIC_INLINE uint32_t __NVIC_GetEnableIRQ | ( | IRQn_Type | IRQn | ) |

Get Interrupt Enable status

Returns a device specific interrupt enable status from the NVIC interrupt controller.

参数

  [in] | IRQn | Device specific interrupt number.

返回
  0 Interrupt is not enabled.
  1 Interrupt is enabled.

注解
  IRQn must not be negative.

## ◆ __NVIC_GetPendingIRQ()

__STATIC_INLINE uint32_t __NVIC_GetPendingIRQ | ( | IRQn_Type | IRQn | ) |

Get Pending Interrupt

Reads the NVIC pending register and returns the pending bit for the specified device specific interrupt.

参数

  [in] | IRQn | Device specific interrupt number.

返回
  0 Interrupt status is not pending.
  1 Interrupt status is pending.

注解
  IRQn must not be negative.

## ◆ __NVIC_GetPriority()

__STATIC_INLINE uint32_t __NVIC_GetPriority | ( | IRQn_Type | IRQn | ) |

Get Interrupt Priority

Reads the priority of a device specific interrupt or a processor exception. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception.

参数

  [in] | IRQn | Interrupt number.

返回
  Interrupt Priority. Value is aligned automatically to the implemented priority bits of the microcontroller.

## ◆ __NVIC_GetVector()

__STATIC_INLINE uint32_t __NVIC_GetVector | ( | IRQn_Type | IRQn | ) |

Get Interrupt Vector

Reads an interrupt vector from interrupt vector table. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception.

参数

  [in] | IRQn | Interrupt number.

返回
  Address of interrupt handler function

## ◆ __NVIC_SetPendingIRQ()

__STATIC_INLINE void __NVIC_SetPendingIRQ | ( | IRQn_Type | IRQn | ) |

Set Pending Interrupt

Sets the pending bit of a device specific interrupt in the NVIC pending register.

参数

  [in] | IRQn | Device specific interrupt number.

注解
  IRQn must not be negative.

## ◆ __NVIC_SetPriority()

__STATIC_INLINE void __NVIC_SetPriority | ( | IRQn_Type | IRQn,
|  | uint32_t | priority
| ) |  |

Set Interrupt Priority

Sets the priority of a device specific interrupt or a processor exception. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception.

参数

  [in] | IRQn | Interrupt number.
  [in] | priority | Priority to set.

注解
  The priority cannot be set for every processor exception.

## ◆ __NVIC_SetVector()

__STATIC_INLINE void __NVIC_SetVector | ( | IRQn_Type | IRQn,
|  | uint32_t | vector
| ) |  |

Set Interrupt Vector

Sets an interrupt vector in SRAM based interrupt vector table. The interrupt number can be positive to specify a device specific interrupt, or negative to specify a processor exception. VTOR must been relocated to SRAM before. If VTOR is not present address 0 must be mapped to SRAM.

参数

  [in] | IRQn | Interrupt number
  [in] | vector | Address of interrupt handler function

## ◆ __NVIC_SystemReset()

__NO_RETURN __STATIC_INLINE void __NVIC_SystemReset | ( | void |  | ) |

System Reset

Initiates a system reset request to reset the MCU.

## ◆ NVIC_DecodePriority()

__STATIC_INLINE void NVIC_DecodePriority | ( | uint32_t | Priority,
|  | uint32_t | PriorityGroup,
|  | uint32_t *const | pPreemptPriority,
|  | uint32_t *const | pSubPriority
| ) |  |

Decode Priority

Decodes an interrupt priority value with a given priority group to preemptive priority value and subpriority value. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.

参数

  [in] | Priority | Priority value, which can be retrieved with the function NVIC_GetPriority().
  [in] | PriorityGroup | Used priority group.
  [out] | pPreemptPriority | Preemptive priority value (starting from 0).
  [out] | pSubPriority | Subpriority value (starting from 0).

## ◆ NVIC_EncodePriority()

__STATIC_INLINE uint32_t NVIC_EncodePriority | ( | uint32_t | PriorityGroup,
|  | uint32_t | PreemptPriority,
|  | uint32_t | SubPriority
| ) |  |

Encode Priority

Encodes the priority for an interrupt with the given priority group, preemptive priority value, and subpriority value. In case of a conflict between priority grouping and available priority bits (__NVIC_PRIO_BITS), the smallest possible priority group is set.

参数

  [in] | PriorityGroup | Used priority group.
  [in] | PreemptPriority | Preemptive priority value (starting from 0).
  [in] | SubPriority | Subpriority value (starting from 0).

返回
  Encoded priority. Value can be used in the function NVIC_SetPriority().