/** ****************************************************************************** * @file EXTI.h * @author TMC Terminal Team * @version V1.0.0 * @date 07/10/2018 * @brief This file contains all the functions prototypes for the EXTI firmware * library. * History: * 2016-01-13 Original version ****************************************************************************** * * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE * TIME. AS A RESULT, TMC SHALL NOT BE HELD LIABLE FOR ANY * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. * *

© COPYRIGHT 2016 TMC

****************************************************************************** */ #ifndef _EXTI_H #define _EXTI_H #ifdef __cplusplus extern "C" { #endif /* Includes ------------------------------------------------------------------*/ /** @addtogroup THM36x2 * @{ */ /** @addtogroup THM36x2_HAL_Driver * @{ */ /** @defgroup EXTI * @brief EXTI HAL modules driver * @{ */ /** * @brief EXTI structures definition */ typedef enum { EXTI_GPIOA = 0, EXTI_GPIOB = 1, EXTI_GPIOC = 2, EXTI_GPIOD = 3, EXTI_GPIOE = 4 } EXTI_Groupx; /** @defgroup EXTI_pins_define EXTI pins define * @{ */ #define EXTI_PIN_0 ((uint32_t)0x0001) /* Pin 0 selected */ #define EXTI_PIN_1 ((uint32_t)0x0002) /* Pin 1 selected */ #define EXTI_PIN_2 ((uint32_t)0x0004) /* Pin 2 selected */ #define EXTI_PIN_3 ((uint32_t)0x0008) /* Pin 3 selected */ #define EXTI_PIN_4 ((uint32_t)0x0010) /* Pin 4 selected */ #define EXTI_PIN_5 ((uint32_t)0x0020) /* Pin 5 selected */ #define EXTI_PIN_6 ((uint32_t)0x0040) /* Pin 6 selected */ #define EXTI_PIN_7 ((uint32_t)0x0080) /* Pin 7 selected */ #define EXTI_PIN_8 ((uint32_t)0x0100) /* Pin 8 selected */ #define EXTI_PIN_9 ((uint32_t)0x0200) /* Pin 9 selected */ #define EXTI_PIN_10 ((uint32_t)0x0400) /* Pin 10 selected */ #define EXTI_PIN_11 ((uint32_t)0x0800) /* Pin 11 selected */ #define EXTI_PIN_12 ((uint32_t)0x1000) /* Pin 12 selected */ #define EXTI_PIN_13 ((uint32_t)0x2000) /* Pin 13 selected */ #define EXTI_PIN_14 ((uint32_t)0x4000) /* Pin 14 selected */ #define EXTI_PIN_15 ((uint32_t)0x8000) /* Pin 15 selected */ #define EXTI_PIN_All ((uint32_t)0xFFFF) /* All pins selected */ /** * @} */ /** @defgroup EXTI_Other_Mode_define EXTI Other Mode define * @{ */ #define EXTI_USB_WAKE_UP ((uint32_t)0x0001) #define EXTI_RTC_ALM_WAKE_UP ((uint32_t)0x0002) #define EXTI_IWDT_ALM_WAKE_UP ((uint32_t)0x0004) #define EXTI_SWP_WAKE_UP ((uint32_t)0x0008) #define EXTI_BAT_PIN0_WAKE_UP ((uint32_t)0x0010) #define EXTI_BAT_PIN1_WAKE_UP ((uint32_t)0x0020) #define EXTI_BAT_PIN0_RSING_WAKE_UP ((uint32_t)0x0040) #define EXTI_BAT_PIN1_RSING_WAKE_UP ((uint32_t)0x0080) #define EXTI_BAT_PIN0_FALLING_WAKE_UP ((uint32_t)0x0100) #define EXTI_BAT_PIN1_FALLING_WAKE_UP ((uint32_t)0x0200) #define EXTI_BAT_PIN0_HIGH_LEVEL_WAKE_UP ((uint32_t)0x0400) #define EXTI_BAT_PIN1_HIGH_LEVEL_WAKE_UP ((uint32_t)0x0800) #define EXTI_BAT_PIN0_LOW_LEVEL_WAKE_UP ((uint32_t)0x1000) #define EXTI_BAT_PIN1_LOW_LEVEL_WAKE_UP ((uint32_t)0x2000) /** * @} */ ///** @defgroup EXTI_80_TO_EXTI_85 EXTI 80 TO EXTI 85 // * @{ // */ //#define EXTI_80_USB 1U //#define EXTI_81_RTC_ALARM (1U<<1) //#define EXTI_82_IWDT_ALARM (1U<<2) //#define EXTI_83_WAKE_UP_PIN_0 (1U<<3) //#define EXTI_84_WAKE_UP_PIN_1 (1U<<4) //#define EXTI_85_SWP (1U<<5) ///** // * @} // */ /** @defgroup EXTI_Private_Macros EXTI Private Macros * @{ */ #define IS_EXTI_PIN(x) ((x == EXTI_PIN_0)||(x == EXTI_PIN_1)||(x == EXTI_PIN_2)||(x == EXTI_PIN_3)||(x == EXTI_PIN_4)|| \ (x == EXTI_PIN_5)||(x == EXTI_PIN_6)||(x == EXTI_PIN_7)||(x == EXTI_PIN_8)||(x == EXTI_PIN_9)|| \ (x == EXTI_PIN_10)||(x == EXTI_PIN_11)||(x == EXTI_PIN_12)||(x == EXTI_PIN_13)||(x == EXTI_PIN_14)||(x == EXTI_PIN_15)|| \ (x == EXTI_PIN_All)) #define IS_EXTI_OTHER(x) ((x == EXTI_USB_WAKE_UP)||(x == EXTI_RTC_ALM_WAKE_UP)||(x == EXTI_IWDT_ALM_WAKE_UP)|| \ (x == EXTI_SWP_WAKE_UP)||(x == EXTI_BAT_PIN0_RSING_WAKE_UP)||(x==EXTI_BAT_PIN1_RSING_WAKE_UP)|| \ (x == EXTI_BAT_PIN0_FALLING_WAKE_UP)||(x == EXTI_BAT_PIN1_FALLING_WAKE_UP)||(x == EXTI_BAT_PIN0_HIGH_LEVEL_WAKE_UP)|| \ (x == EXTI_BAT_PIN1_HIGH_LEVEL_WAKE_UP)||(x == EXTI_BAT_PIN0_LOW_LEVEL_WAKE_UP)||(x == EXTI_BAT_PIN1_LOW_LEVEL_WAKE_UP)) //#define IS_EXTI_OTHER_CHECK(x) ((x == EXTI_80_USB)||(x ==EXTI_81_RTC_ALARM)||(x == EXTI_82_IWDT_ALARM)||(x ==EXTI_83_WAKE_UP_PIN_0)||(x ==EXTI_84_WAKE_UP_PIN_1)||(x==EXTI_85_SWP)) /** * @} */ /** @addtogroup EXTI_Exported_Types * @{ */ void EXTI_Reset(void); void EXTI_ConfigRising(EXTI_Groupx EXTIx,uint32_t EXTI_Line,FunctionalState NewStatus); void EXTI_ConfigFalling(EXTI_Groupx EXTIx,uint32_t EXTI_Line,FunctionalState NewStatus); void EXTI_ConfigHighLevel(EXTI_Groupx EXTIx,uint32_t EXTI_Line,FunctionalState NewStatus); void EXTI_ConfigLowLevel(EXTI_Groupx EXTIx,uint32_t EXTI_Line,FunctionalState NewStatus); void EXTI_ConfigOtherMode(uint32_t Mode,FunctionalState NewStatus); void EXTI_GenerateSWInterrupt(EXTI_Groupx EXTIx,uint32_t EXTI_Line); FlagStatus EXTI_GetPINxStatus(EXTI_Groupx EXTIx,uint32_t EXTI_Line); FlagStatus EXTI_GetOtherStatus(uint32_t Flag); void EXTI_ClearOtherStatus(uint32_t Flag); void EXTI_ClearITPendingBit(EXTI_Groupx EXTIx,uint32_t EXTI_Line); void EXTI_ConfigInterruptMode(IRQn_Type IRQn,FunctionalState NewStatus); void EXTI_ConfigEventMode(IRQn_Type IRQn,FunctionalState NewStatus); /** * @} */ /** * @} */ /** * @} */ /** * @} */ #ifdef __cplusplus } #endif #endif