HC32L17x的LL驱动库之exit

#include "hc32l1xx_ll_exti.h"

///
//函        数:
//功        能:
//输入参数:
//输出参数:
//说        明:
//

void  LL_EXTI_DeInit(EXIT_TypeDef* EXITx)
{
    //---高低电平中断的配置
    LL_EXTI_DisableIT_HighLevel(EXITx, LL_EXTI_GPIO_PIN_ALL);
    LL_EXTI_DisableIT_LowLevel(EXITx,  LL_EXTI_GPIO_PIN_ALL);

    //---上升下降沿中断的配置
    LL_EXTI_DisableIT_RisingEdge(EXITx,  LL_EXTI_GPIO_PIN_ALL);
    LL_EXTI_DisableIT_FallingEdge(EXITx, LL_EXTI_GPIO_PIN_ALL);
}

///
//函        数: 
//功        能: 
//输入参    数: 
//输出参    数: 
//说        明: 
//
void LL_EXTI_StructInit(LL_EXTI_InitTypeDef* EXTI_InitStruct)
{
    EXTI_InitStruct->Pin = LL_EXTI_GPIO_PIN_ALL;
    EXTI_InitStruct->Level = LL_EXTI_LEVEL_HIGH;
    EXTI_InitStruct->Edge = LL_EXTI_EDGE_RISE;
}

///
//函        数:
//功        能:
//输入参数:
//输出参数:
//说        明:
//

void  LL_EXTI_Init(EXIT_TypeDef* EXITx, LL_EXTI_InitTypeDef* EXTI_InitStruct)
{
    //---高低电平中断的配置
    LL_EXTI_DisableIT_HighLevel(EXITx, EXTI_InitStruct->Pin);
    LL_EXTI_DisableIT_LowLevel(EXITx, EXTI_InitStruct->Pin);
    //---高低电平中断的配置
    if (EXTI_InitStruct->Level == LL_EXTI_LEVEL_HIGH)
    {
        LL_EXTI_EnableIT_HighLevel(EXITx, EXTI_InitStruct->Pin);
    }
    else if (EXTI_InitStruct->Level == LL_EXTI_LEVEL_LOW)
    {
        LL_EXTI_EnableIT_LowLevel(EXITx, EXTI_InitStruct->Pin);
    }
    else if (EXTI_InitStruct->Level == LL_EXTI_LEVEL_ALL)
    {
        LL_EXTI_EnableIT_HighLevel(EXITx, EXTI_InitStruct->Pin);
        LL_EXTI_EnableIT_LowLevel(EXITx, EXTI_InitStruct->Pin);
    }

    //---上升下降沿中断的配置
    LL_EXTI_DisableIT_RisingEdge(EXITx, EXTI_InitStruct->Pin);
    LL_EXTI_DisableIT_FallingEdge(EXITx, EXTI_InitStruct->Pin);
    //---上升下降沿中断的配置
    if (EXTI_InitStruct->Edge == LL_EXTI_EDGE_RISE)
    {
        LL_EXTI_EnableIT_RisingEdge(EXITx, EXTI_InitStruct->Pin);
    }
    else if (EXTI_InitStruct->Edge == LL_EXTI_EDGE_FALL)
    {
        LL_EXTI_EnableIT_FallingEdge(EXITx, EXTI_InitStruct->Pin);
    }
    else if (EXTI_InitStruct->Edge == LL_EXTI_EDGE_ALL)
    {
        LL_EXTI_EnableIT_RisingEdge(EXITx, EXTI_InitStruct->Pin);
        LL_EXTI_EnableIT_FallingEdge(EXITx, EXTI_InitStruct->Pin);
    }
    //---清除中断标志位
    LL_EXTI_ClearFlag(EXITx, EXTI_InitStruct->Pin);
}
#ifndef HC32L1XX_LL_EXIT_H_
#define HC32L1XX_LL_EXIT_H_

#ifdef __cplusplus
extern "C" {
#endif 
    
    #include "hc32l1xx.h"
    ///
    #define  LL_EXTI_GPIO_PIN_0                    EXIT_PIN_0
    #define  LL_EXTI_GPIO_PIN_1                    EXIT_PIN_1
    #define  LL_EXTI_GPIO_PIN_2                    EXIT_PIN_2
    #define  LL_EXTI_GPIO_PIN_3                    EXIT_PIN_3
    #define  LL_EXTI_GPIO_PIN_4                    EXIT_PIN_4
    #define  LL_EXTI_GPIO_PIN_5                    EXIT_PIN_5
    #define  LL_EXTI_GPIO_PIN_6                    EXIT_PIN_6
    #define  LL_EXTI_GPIO_PIN_7                    EXIT_PIN_7
    #define  LL_EXTI_GPIO_PIN_8                    EXIT_PIN_8
    #define  LL_EXTI_GPIO_PIN_9                    EXIT_PIN_9
    #define  LL_EXTI_GPIO_PIN_10                EXIT_PIN_10
    #define  LL_EXTI_GPIO_PIN_11                EXIT_PIN_11
    #define  LL_EXTI_GPIO_PIN_12                EXIT_PIN_12
    #define  LL_EXTI_GPIO_PIN_13                EXIT_PIN_13
    #define  LL_EXTI_GPIO_PIN_14                EXIT_PIN_14
    #define  LL_EXTI_GPIO_PIN_15                EXIT_PIN_15

    #define  LL_EXTI_GPIO_PIN_ALL                (LL_EXTI_GPIO_PIN_0|LL_EXTI_GPIO_PIN_1|\
                                                 LL_EXTI_GPIO_PIN_2|LL_EXTI_GPIO_PIN_3|\
                                                 LL_EXTI_GPIO_PIN_4|LL_EXTI_GPIO_PIN_5|\
                                                 LL_EXTI_GPIO_PIN_6|LL_EXTI_GPIO_PIN_7|\
                                                 LL_EXTI_GPIO_PIN_8|LL_EXTI_GPIO_PIN_9|\
                                                 LL_EXTI_GPIO_PIN_10|LL_EXTI_GPIO_PIN_11|\
                                                 LL_EXTI_GPIO_PIN_12|LL_EXTI_GPIO_PIN_13|\
                                                 LL_EXTI_GPIO_PIN_14|LL_EXTI_GPIO_PIN_15)

    #define  LL_EXTI_LEVEL_NONE                    0
    #define  LL_EXTI_LEVEL_HIGH                    1
    #define  LL_EXTI_LEVEL_LOW                    2
    #define  LL_EXTI_LEVEL_ALL                    3

    #define  LL_EXTI_EDGE_NONE                    0
    #define  LL_EXTI_EDGE_RISE                    1
    #define  LL_EXTI_EDGE_FALL                    2
    #define  LL_EXTI_EDGE_ALL                    3


    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_EnableIT_HighLevel(EXIT_TypeDef* EXITx,uint32_t pin)
    {
        SET_BIT(EXITx->HIE, pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_DisableIT_HighLevel(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        CLEAR_BIT(EXITx->HIE, pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline uint32_t LL_EXTI_IsEnabledIT_HighLevel(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        return (uint32_t)(READ_BIT(EXITx->HIE, pin)==pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_EnableIT_LowLevel(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        SET_BIT(EXITx->LIE, pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_DisableIT_LowLevel(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        CLEAR_BIT(EXITx->LIE, pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline uint32_t LL_EXTI_IsEnabledIT_LowLevel(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        return (uint32_t)(READ_BIT(EXITx->LIE, pin) == pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_EnableIT_RisingEdge(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        SET_BIT(EXITx->RIE, pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_DisableIT_RisingEdge(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        CLEAR_BIT(EXITx->RIE, pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline uint32_t LL_EXTI_IsEnabledIT_RisingEdge(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        return (uint32_t)(READ_BIT(EXITx->RIE, pin) == pin);
    }

    ///
    //函        数:
    //功        能:
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_EnableIT_FallingEdge(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        SET_BIT(EXITx->FIE, pin);
    }

    ///
    //函        数:
    //功        能: 中断标志
    //输入参数:
    //输出参数:
    //说        明:
    //
    static inline void LL_EXTI_DisableIT_FallingEdge(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        CLEAR_BIT(EXITx->FIE, pin);
    }

    ///
    //函        数:
    //功        能: 中断标志
    //输入参数:
    //输出参数:
    //说        明:
    //
    static inline uint32_t LL_EXTI_IsEnabledIT_FallingEdge(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        return (uint32_t)(READ_BIT(EXITx->FIE, pin) == pin);
    }
    
    ///
    //函        数:
    //功        能: 中断标志
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline uint32_t LL_EXTI_IsActiveFlag(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        return (uint32_t)(READ_BIT(EXITx->SR, pin) == pin);
    }
    
    ///
    //函        数:
    //功        能: 清除中断标志
    //输入参数:
    //输出参数:
    //说        明:
    //

    static inline void LL_EXTI_ClearFlag(EXIT_TypeDef* EXITx, uint32_t pin)
    {
        CLEAR_BIT(EXITx->CSR, pin);
    }

    //===GPIO初始化结构体
    typedef struct
    {
        uint32_t Pin;                         //---引脚            
        uint32_t Level;                        //---电平模式,高电平,低电平
        uint32_t Edge;                        //---沿模式,上升沿,下降沿
    } LL_EXTI_InitTypeDef;

    //===函数定义
    void LL_EXTI_DeInit(EXIT_TypeDef* EXITx);
    void LL_EXTI_StructInit(LL_EXTI_InitTypeDef* EXTI_InitStruct);
    void LL_EXTI_Init(EXIT_TypeDef* EXITx , LL_EXTI_InitTypeDef* EXTI_InitStruct);
    
    ///
#ifdef __cplusplus
}
#endif 

#endif /* HC32L1XX_LL_DAC_H */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值