CIU32_L051_M307R/Peripheral/CIU32L051_Lib/Include/ciu32l051_std_exti.h

397 lines
15 KiB
C
Raw Normal View History

/************************************************************************************************/
/**
* @file ciu32l051_std_exti.h
* @author MCU Ecosystem Development Team
* @brief EXTI STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>EXTI<EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ķ<EFBFBD><EFBFBD>
*
*
**************************************************************************************************
* @attention
* Copyright (c) CEC Huada Electronic Design Co.,Ltd. All rights reserved.
*
**************************************************************************************************
*/
/* <20><><EFBFBD><EFBFBD>ͷ<EFBFBD>ļ<EFBFBD><C4BC>ظ<EFBFBD><D8B8><EFBFBD><EFBFBD><EFBFBD> */
#ifndef CIU32L051_STD_EXTI_H
#define CIU32L051_STD_EXTI_H
/************************************************************************************************/
/**
* @addtogroup CIU32L051_STD_Driver
* @{
*/
/**
* @defgroup EXTI EXTI
* @brief <EFBFBD><EFBFBD>չ<EFBFBD>жϺ<EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>STD<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*/
/************************************************************************************************/
#ifdef __cplusplus
extern "C" {
#endif
/*------------------------------------------includes--------------------------------------------*/
#include "ciu32l051_std_common.h"
/*-----------------------------------------type define------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup EXTI_Types EXTI Types
* @brief EXTI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><EFBFBD><EFBFBD>
* @{
*/
/************************************************************************************************/
/**
* @brief EXTI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ý<EFBFBD><EFBFBD><EFBFBD>
*/
typedef struct
{
uint32_t line_id; /**< EXTIͨ<49><CDA8>ID
@arg EXTI_LINE_GPIO_PIN0 ... */
uint32_t mode; /**< EXTIͨ<49><CDA8>ģʽ
@arg EXTI_MODE_INTERRUPT ... */
uint32_t trigger; /**< EXTIͨ<49><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@arg EXTI_TRIGGER_RISING ... */
uint32_t gpio_id; /**< GPIO<49>˿<EFBFBD>ID
@arg EXTI_GPIOA ... */
} std_exti_init_t;
/**
* @}
*/
/*--------------------------------------------define--------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup EXTI_Constants EXTI Constants
* @brief EXTI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/* EXTI LINE ID<49><44><EFBFBD><EFBFBD> */
#define EXTI_LINE_GPIO_PIN0 (EXTI_GPIO | 0x00U) /**< EXTI_LINE0 */
#define EXTI_LINE_GPIO_PIN1 (EXTI_GPIO | 0x01U) /**< EXTI_LINE1 */
#define EXTI_LINE_GPIO_PIN2 (EXTI_GPIO | 0x02U) /**< EXTI_LINE2 */
#define EXTI_LINE_GPIO_PIN3 (EXTI_GPIO | 0x03U) /**< EXTI_LINE3 */
#define EXTI_LINE_GPIO_PIN4 (EXTI_GPIO | 0x04U) /**< EXTI_LINE4 */
#define EXTI_LINE_GPIO_PIN5 (EXTI_GPIO | 0x05U) /**< EXTI_LINE5 */
#define EXTI_LINE_GPIO_PIN6 (EXTI_GPIO | 0x06U) /**< EXTI_LINE6 */
#define EXTI_LINE_GPIO_PIN7 (EXTI_GPIO | 0x07U) /**< EXTI_LINE7 */
#define EXTI_LINE_GPIO_PIN8 (EXTI_GPIO | 0x08U) /**< EXTI_LINE8 */
#define EXTI_LINE_GPIO_PIN9 (EXTI_GPIO | 0x09U) /**< EXTI_LINE9 */
#define EXTI_LINE_GPIO_PIN10 (EXTI_GPIO | 0x0AU) /**< EXTI_LINE10 */
#define EXTI_LINE_GPIO_PIN11 (EXTI_GPIO | 0x0BU) /**< EXTI_LINE11 */
#define EXTI_LINE_GPIO_PIN12 (EXTI_GPIO | 0x0CU) /**< EXTI_LINE12 */
#define EXTI_LINE_GPIO_PIN13 (EXTI_GPIO | 0x0DU) /**< EXTI_LINE13 */
#define EXTI_LINE_GPIO_PIN14 (EXTI_GPIO | 0x0EU) /**< EXTI_LINE14 */
#define EXTI_LINE_GPIO_PIN15 (EXTI_GPIO | 0x0FU) /**< EXTI_LINE15 */
#define EXTI_LINE_COMP1 (EXTI_CONFIG | 0x10U) /**< EXTI_LINE16 */
#define EXTI_LINE_COMP2 (EXTI_CONFIG | 0x11U) /**< EXTI_LINE17 */
#define EXTI_LINE_LPUART2 (EXTI_DIRECT | 0x16U) /**< EXTI_LINE22 */
#define EXTI_LINE_LPTIM2 (EXTI_DIRECT | 0x17U) /**< EXTI_LINE23 */
#define EXTI_LINE_PVD (EXTI_DIRECT | 0x18U) /**< EXTI_LINE24 */
#define EXTI_LINE_RTC (EXTI_DIRECT | 0x19U) /**< EXTI_LINE25 */
#define EXTI_LINE_TAMP (EXTI_DIRECT | 0x1AU) /**< EXTI_LINE26 */
#define EXTI_LINE_I2C1 (EXTI_DIRECT | 0x1BU) /**< EXTI_LINE27 */
#define EXTI_LINE_LPUART1 (EXTI_DIRECT | 0x1DU) /**< EXTI_LINE29 */
#define EXTI_LINE_LPTIM1 (EXTI_DIRECT | 0x1EU) /**< EXTI_LINE30 */
/* EXTI LINE <20><><EFBFBD><EFBFBD> */
#define EXTI_DIRECT (0x01000000) /**< ֱ<><D6B1>ͨ<EFBFBD><CDA8> */
#define EXTI_CONFIG (0x02000000) /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8>(COMP1/COMP2) */
#define EXTI_GPIO (0x06000000) /**< GPIO<49><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8> */
#define EXTI_PROPERTY_MASK (EXTI_DIRECT | EXTI_CONFIG | EXTI_GPIO) /**< ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* EXTI LINE<4E><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>ɸѡEXTI LINE ID */
#define EXTI_LINE_MASK (0x0000001FU) /**< EXTI LINE<4E><45><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define EXTI_MODE_NONE (0x00000000U) /**< <20><><EFBFBD>ж<EFBFBD>/<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD> */
#define EXTI_MODE_INTERRUPT (0x00000001U) /**< <20>жϻ<D0B6><CFBB><EFBFBD> */
#define EXTI_MODE_EVENT (0x00000002U) /**< <20>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD> */
#define EXTI_MODE_INTERRUPT_EVENT (EXTI_MODE_EVENT | EXTI_MODE_INTERRUPT) /**< <20>ж<EFBFBD>/<2F>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD> */
/* EXTI LINE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD><E5A3AC><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD>źŴ<C5BA><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define EXTI_TRIGGER_NONE (0x00000000U) /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define EXTI_TRIGGER_RISING (0x00000001U) /**< <20>Ͻ<EFBFBD><CFBD>ش<EFBFBD><D8B4><EFBFBD> */
#define EXTI_TRIGGER_FALLING (0x00000002U) /**< <20>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD> */
#define EXTI_TRIGGER_RISING_FALLING (EXTI_TRIGGER_RISING | EXTI_TRIGGER_FALLING) /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F>½<EFBFBD><C2BD>ش<EFBFBD><D8B4><EFBFBD> */
/* GPIO<49>˿<EFBFBD>ID<49><44><EFBFBD><EFBFBD> */
#define EXTI_GPIOA (0x00000000UL) /**< GPIOA ID */
#define EXTI_GPIOB (0x00000001UL) /**< GPIOB ID */
#define EXTI_GPIOC (0x00000002UL) /**< GPIOC ID */
#define EXTI_GPIOD (0x00000003UL) /**< GPIOD ID */
#define EXTI_GPIOF (0x00000005UL) /**< GPIOF ID */
/* EXTI LINE <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>ɸѡEXTI <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define EXTI_TRIGGER_MASK (EXTI_TRIGGER_RISING | EXTI_TRIGGER_FALLING) /**< <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/**
* @}
*/
/*-------------------------------------------functions------------------------------------------*/
/************************************************************************************************/
/**
* @defgroup EXTI_External_Functions EXTI External Functions
* @brief EXTI<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* @{
*
*/
/************************************************************************************************/
/**
* @brief <EFBFBD><EFBFBD>ȡEXTIͨ<EFBFBD><EFBFBD><EFBFBD>жϹ<EFBFBD><EFBFBD><EFBFBD>״̬
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϹ<EFBFBD><EFBFBD><EFBFBD>״̬
* @arg true <EFBFBD><EFBFBD>ʾ<EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>
* @arg false <EFBFBD><EFBFBD>ʾδ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
__STATIC_INLINE bool std_exti_get_pending_status(uint32_t exti_line)
{
return ((EXTI->PIR & (0x01U << (exti_line & EXTI_LINE_MASK))) != 0);
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>EXTIͨ<EFBFBD><EFBFBD><EFBFBD>жϹ<EFBFBD><EFBFBD><EFBFBD>״̬
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_clear_pending(uint32_t exti_line)
{
EXTI->PIR = (0x01U << (exti_line & EXTI_LINE_MASK));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>EXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_rising_trigger_enable(uint32_t exti_line)
{
MODIFY_REG(EXTI->RTSR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x01U << (exti_line & EXTI_LINE_MASK)));
}
/**
* @brief <EFBFBD><EFBFBD>ֹEXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_rising_trigger_disable(uint32_t exti_line)
{
MODIFY_REG(EXTI->RTSR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x00U));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>EXTIͨ<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_falling_trigger_enable(uint32_t exti_line)
{
MODIFY_REG(EXTI->FTSR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x01U << (exti_line & EXTI_LINE_MASK)));
}
/**
* @brief <EFBFBD><EFBFBD>ֹEXTIͨ<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_falling_trigger_disable(uint32_t exti_line)
{
MODIFY_REG(EXTI->FTSR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x00U));
}
/**
* @brief <EFBFBD><EFBFBD>ȡEXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>״̬
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval bool <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>״̬
* @arg true <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
* @arg false <EFBFBD><EFBFBD>ʾ<EFBFBD>ѽ<EFBFBD>ֹ
*/
__STATIC_INLINE bool std_exti_get_rising_trigger_enable(uint32_t exti_line)
{
return ((EXTI->RTSR & (0x01U << (exti_line & EXTI_LINE_MASK))) != 0);
}
/**
* @brief <EFBFBD><EFBFBD>ȡEXTIͨ<EFBFBD><EFBFBD><EFBFBD>½<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>״̬
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @retval bool <EFBFBD>½<EFBFBD><EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD>״̬
* @arg true <EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ʹ<EFBFBD><EFBFBD>
* @arg false <EFBFBD><EFBFBD>ʾ<EFBFBD>ѽ<EFBFBD>ֹ
*/
__STATIC_INLINE bool std_exti_get_falling_trigger_enable(uint32_t exti_line)
{
return ((EXTI->FTSR & (0x01U << (exti_line & EXTI_LINE_MASK))) != 0);
}
/**
* @brief ʹ<EFBFBD><EFBFBD>EXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @arg ...
* @arg EXTI_LINE_LPTIM1
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_interrupt_enable(uint32_t exti_line)
{
MODIFY_REG(EXTI->IMR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x01U << (exti_line & EXTI_LINE_MASK)));
}
/**
* @brief <EFBFBD><EFBFBD>ֹEXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @arg ...
* @arg EXTI_LINE_LPTIM1
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_interrupt_disable(uint32_t exti_line)
{
MODIFY_REG(EXTI->IMR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x00U));
}
/**
* @brief ʹ<EFBFBD><EFBFBD>EXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @arg ...
* @arg EXTI_LINE_LPTIM1
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_event_enable(uint32_t exti_line)
{
MODIFY_REG(EXTI->EMR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x01U << (exti_line & EXTI_LINE_MASK)));
}
/**
* @brief <EFBFBD><EFBFBD>ֹEXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_COMP1
* @arg EXTI_LINE_COMP2
* @arg ...
* @arg EXTI_LINE_LPTIM1
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_event_disable(uint32_t exti_line)
{
MODIFY_REG(EXTI->EMR, (0x01U << (exti_line & EXTI_LINE_MASK)), (0x00U));
}
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD>EXTIͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӦGPIO<EFBFBD>˿<EFBFBD>
* @param gpio_id GPIO<EFBFBD>˿<EFBFBD>ID
* @arg EXTI_GPIOA
* @arg EXTI_GPIOB
* @arg ...
* @param exti_line EXTIͨ<EFBFBD><EFBFBD>ID
* @arg EXTI_LINE_GPIO_PIN0
* @arg EXTI_LINE_GPIO_PIN1
* @arg ...
* @arg EXTI_LINE_GPIO_PIN15
* @retval <EFBFBD><EFBFBD>
*/
__STATIC_INLINE void std_exti_set_gpio(uint32_t gpio_id, uint32_t exti_line)
{
if ((exti_line & EXTI_GPIO) == EXTI_GPIO)
{
exti_line &= EXTI_LINE_MASK;
MODIFY_REG(EXTI->EXTICR[(exti_line & EXTI_LINE_MASK) >> 3U],
(EXTI_EXTICR1_EXTI0_MASK << (EXTI_EXTICR1_EXTI1_POS * (exti_line & EXTI_EXTICR1_EXTI0_MASK))),
(gpio_id << (EXTI_EXTICR1_EXTI1_POS * (exti_line & EXTI_EXTICR1_EXTI0_MASK))));
}
}
void std_exti_init(std_exti_init_t* exti_init_param);
void std_exti_deinit(void);
void std_exti_struct_init(std_exti_init_t* exti_init_struct);
/**
* @}
*/
#ifdef __cplusplus
}
#endif
/**
* @}
*/
/**
* @}
*/
#endif /* CIU32L051_STD_EXTI_H */