原创 metanergy MYi0002v0405_MotorBoard_V1.1双电阻代码片段解析

2025-1-26 11:23 37 0 分类: 物联网 文集: 博客
/* =========================================================================================================================== */
/* ================                                Interrupt Number Definition                                ================ */
/* =========================================================================================================================== */
typedef enum
{
    /******  Cortex-M0 Processor Exceptions Numbers **************************************************************/
    NonMaskableInt_IRQn         = -14,    /*!< 2 Non Maskable Interrupt                                        */
    HardFault_IRQn              = -13,    /*!< 3 Cortex-M0 Hard Fault Interrupt                                */
    SVC_IRQn                    = -5,     /*!< 11 Cortex-M0 SV Call Interrupt                                  */
    PendSV_IRQn                 = -2,     /*!< 14 Cortex-M0 Pend SV Interrupt                                  */
    SysTick_IRQn                = -1,     /*!< 15 Cortex-M0 System Tick Interrupt                              */

    /******  MYg0002 specific Interrupt Numbers ******************************************************************/
    WWDG_IRQn                   = 0,      /*!< Window WatchDog Interrupt                                       */
    EXTI11_IRQn                 = 2,      /* EXTI Line 11 interrupt(AWU_WKP)                                   */
    FLASH_IRQn                  = 3,      /*!< FLASH global Interrupt                                          */
    RCC_IRQn                    = 4,      /*!< RCC global Interrupt                                            */
    EXTI0_IRQn                    = 5,      /*!< EXTI Line 0 Interrupt                                           */
    EXTI1_IRQn                    = 6,      /*!< EXTI Line 1 Interrupt                                           */
    EXTI2_IRQn                    = 7,      /*!< EXTI Line 2 Interrupt                                           */
    EXTI3_IRQn                    = 8,      /*!*!< EXTI Line 3 Interrupt                                         */
    EXTI4_IRQn                    = 9,      /*!*!< EXTI Line 4 Interrupt                                         */
    EXTI5_IRQn                    = 10,     /*!*!< EXTI Line 5 Interrupt                                         */
    TIM1_BRK_IRQn                 = 11,     /*!< TIM1 break interrupt                                            */
    ADC1_IRQn                   = 12,     /*!< ADC1 Interrupt(combined with EXTI line 8)                       */
    TIM1_UP_TRG_COM_IRQn        = 13,     /*!< TIM1  Update, Trigger and Commutation Interrupt                 */
    TIM1_CC_IRQn                = 14,     /*!< TIM1 Capture Compare Interrupt                                  */
    TIM2_IRQn                   = 15,     /*!< TIM2 global interrupt                                           */
    TIM6_IRQn                   = 17,     /*!< TIM6 global Interrupt                                           */
    EXTI6_IRQn                  = 21,     /*!*!< EXTI Line 6 Interrupt                                         */
    EXTI7_IRQn                  = 22,     /*!*!< EXTI Line 7 Interrupt                                         */
    I2C1_IRQn                   = 23,     /*!< I2C1 Event Interrupt                                            */
    SPI1_IRQn                   = 25,     /*!< SPI1 global Interrupt                                           */
    USART1_IRQn                 = 27,     /*!< USART1 global Interrupt                                         */
} IRQn_Type;

这段代码定义了一个枚举类型 `IRQn_Type`,用于表示中断号。它包含了 Cortex-M0 处理器的异常中断号和特定于 `MYg0002` 平台的中断号。

 枚举成员解释

-    Cortex-M0 Processor Exceptions Numbers**:
  - `NonMaskableInt_IRQn`: 不可屏蔽中断,通常用于处理电源故障等紧急情况。
  - `HardFault_IRQn`: 硬件故障中断,当发生严重错误时触发。
  - `SVC_IRQn`: 软件中断,用于执行特权操作。
  - `PendSV_IRQn`: 挂起服务中断,用于操作系统任务切换。
  - `SysTick_IRQn`: 系统定时器中断,通常用于操作系统时基。

- **MYg0002 specific Interrupt Numbers**:
  - `WWDG_IRQn`: 窗口看门狗中断。
  - `EXTI11_IRQn` 到 `EXTI7_IRQn`: 外部中断线中断,用于处理外部事件。
  - `FLASH_IRQn`: 闪存全局中断。
  - `RCC_IRQn`: 时钟控制全局中断。
  - `EXTI0_IRQn` 到 `EXTI5_IRQn`: 其他外部中断线中断。
  - `TIM1_BRK_IRQn` 到 `TIM1_CC_IRQn`: 定时器 1 的各种中断。
  - `TIM2_IRQn`: 定时器 2 全局中断。
  - `TIM6_IRQn`: 定时器 6 全局中断。
  - `I2C1_IRQn`: I2C1 事件中断。
  - `SPI1_IRQn`: SPI1 全局中断。
  - `USART1_IRQn`: USART1 全局中断。

 使用场景

这段代码通常用于嵌入式系统中,特别是在使用 STM32 微控制器时。通过定义这些中断号,可以在中断服务例程(ISR)中快速引用和处理特定的中断事件。

 注意事项

 确保在中断服务例程中正确处理每个中断。
 避免在中断服务例程中执行耗时操作,以免影响系统的实时性能。

通过这种方式定义中断号,可以提高代码的可读性和可维护性。

作者: 丙丁先生, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3996156.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
0
关闭 站长推荐上一条 /3 下一条