×
嵌入式 > 技术百科 > 详情

STM8L51X gpio中断

发布时间:2020-12-16 发布时间:
|

本文采用官方的库函数接口实现STM8L51X gpio中断


STM8L51X的中断向量入口函数都放在stm8l51x_it.c里面。


不同的中断对应的中断号如下(在stm8l51x_itc.h里面):


typedef enum {


     FLASH_IRQn                              = (uint8_t)1,   /*!< Flashinterrupt  */


     DMA1_CHANNEL0_1_IRQn                    = (uint8_t)2,   /*!< DMAChannels 0/1 */


     DMA1_CHANNEL2_3_IRQn                    = (uint8_t)3,   /*!< DMAChannels 2/3 */


     EXTIE_F_PVD_IRQn                        = (uint8_t)5,   /*!< GPIOE/Fand PVD interrupt */


     EXTI0_IRQn                              = (uint8_t)8,   /*!< PIN0 interrupt   */


     EXTI1_IRQn                              = (uint8_t)9,   /*!< PIN1interrupt   */


     EXTI2_IRQn                              = (uint8_t)10,  /*!< PIN2interrupt   */


     EXTI3_IRQn                              = (uint8_t)11,  /*!< PIN3interrupt   */


     EXTI4_IRQn                              = (uint8_t)12,  /*!< PIN4interrupt   */


     EXTI5_IRQn                              = (uint8_t)13,  /*!< PIN5interrupt   */


     EXTI6_IRQn                              = (uint8_t)14,  /*!< PIN6interrupt   */


     EXTI7_IRQn                              = (uint8_t)15,  /*!< PIN7interrupt   */


     ADC1_COMP_IRQn                          = (uint8_t)18,  /*!


     TIM4_UPD_OVF_TRG_IRQn                   = (uint8_t)25,  /*!< TIM4Update/Overflow/Trigger interrupt */


     SPI1_IRQn                               = (uint8_t)26,  /*!< SPI1interrupt */


     #if defined (STM8L15X_MD) || defined(STM8L05X_MD_VL) || defined (STM8AL31_L_MD)


     RTC_IRQn                                = (uint8_t)4,   /*!< RTCinterrupt    */


     EXTIB_IRQn                              = (uint8_t)6,   /*!< GPIOBinterrupt  */


      EXTID_IRQn                              = (uint8_t)7,   /*!< GPIODinterrupt  */


      LCD_IRQn                                = (uint8_t)16,  /*!< LCD Driverinterrupt    */


         SWITCH_CSS_BREAK_DAC_IRQn                = (uint8_t)17,  /*!< Clock switch/CSS interrupt/TIM1 Break/DAC  interrupt */


      TIM2_UPD_OVF_TRG_BRK_IRQn               = (uint8_t)19,  /*!< TIM2Update/Overflow/Trigger/Break interrupt*/


      TIM2_CC_IRQn                            = (uint8_t)20,  /*!< TIM2 inputcaptute/output compare interrupt  */


      TIM3_UPD_OVF_TRG_BRK_IRQn               = (uint8_t)21,  /*!< TIM3Update/Overflow/Trigger/Break interrupt */


      TIM3_CC_IRQn                            = (uint8_t)22,  /*!< TIM3capture/compare interrupt  */


         TIM1_UPD_OVF_TRG_IRQn                    = (uint8_t)23,  /*!< TIM1 TIM1 Update/Overflow/Triggerinterrupt */


      TIM1_CC_IRQn                             = (uint8_t)24,  /*!< TIM1 capture/compare interrupt  */


      USART1_TX_IRQn                          = (uint8_t)27,  /*!< USART1 TXinterrupt */


      USART1_RX_IRQn                          = (uint8_t)28,  /*!< USART1 RXinterrupt */


      I2C1_IRQn                                = (uint8_t)29   /*!< I2C1 interrupt */


     #elif defined (STM8L15X_LD) || defined(STM8L05X_LD_VL)


      RTC_CSSLSE_IRQn                         = (uint8_t)4,   /*!< RTC /CSSLSE interrupt    */


      EXTIB_IRQn                              = (uint8_t)6,   /*!< GPIOB interrupt  */


      EXTID_IRQn                              = (uint8_t)7,   /*!< GPIODinterrupt  */


         SWITCH_CSS_IRQn                          = (uint8_t)17,  /*!< Clock switch/CSS interrupt/TIM1 Break/DAC  interrupt */


      TIM2_UPD_OVF_TRG_BRK_IRQn               = (uint8_t)19,  /*!< TIM2Update/Overflow/Trigger/Break interrupt*/


      TIM2_CC_IRQn                            = (uint8_t)20,  /*!< TIM2 inputcaptute/output compare interrupt  */


      TIM3_UPD_OVF_TRG_BRK_IRQn               = (uint8_t)21,  /*!< TIM3 Update/Overflow/Trigger/Breakinterrupt */


      TIM3_CC_IRQn                            = (uint8_t)22,  /*!< TIM3capture/compare interrupt  */


      USART1_TX_IRQn                          = (uint8_t)27,  /*!< USART1 TXinterrupt */


      USART1_RX_IRQn                          = (uint8_t)28,  /*!< USART1 RXinterrupt */


     I2C1_IRQn                               = (uint8_t)29   /*!< I2C1interrupt */


     #elif defined (STM8L15X_HD) || defined(STM8L15X_MDP) || defined (STM8L05X_HD_VL)


       RTC_CSSLSE_IRQn                          = (uint8_t)4,   /*!< RTC / CSSLSE interrupt    */


      EXTIB_G_IRQn                            = (uint8_t)6,   /*!< GPIOB / Ginterrupt  */


      EXTID_H_IRQn                            = (uint8_t)7,   /*!< GPIOD / Hinterrupt  */


      LCD_AES_IRQn                            = (uint8_t)16,  /*!< LCD / AESinterrupt    */


         SWITCH_CSS_BREAK_DAC_IRQn                = (uint8_t)17,  /*!< Clock switch/CSS interrupt/TIM1 Break/DAC  interrupt */


      TIM2_UPD_OVF_TRG_BRK_USART2_TX_IRQn     = (uint8_t)19,  /*!< TIM2Update/Overflow/Trigger/Break /USART2 TX interrupt*/


      TIM2_CC_USART2_RX_IRQn                  = (uint8_t)20,  /*!< TIM2capture/compare / USART2 RX interrupt  */


      TIM3_UPD_OVF_TRG_BRK_USART3_TX_IRQn     = (uint8_t)21,  /*!< TIM3Update/Overflow/Trigger/Break / USART3 TX interrupt */


      TIM3_CC_USART3_RX_IRQn                  = (uint8_t)22,  /*!< TIM3capture/compare / USART3 RX interrupt  */


         TIM1_UPD_OVF_TRG_IRQn                    = (uint8_t)23,  /*!< TIM1 TIM1 Update/Overflow/Triggerinterrupt */


TIM1_CC_IRQ




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
洪荒之力+无比专注=国内首款机器人离线编程软件