TMC32_QJB/HAL/inc/EXTI.h
2026-04-30 16:23:12 +08:00

175 lines
5.9 KiB
C

/**
******************************************************************************
* @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.
*
* <h2><center>&copy; COPYRIGHT 2016 TMC</center></h2>
******************************************************************************
*/
#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