[综合信息] HC32 中断实现

[复制链接]
小海师 发表于 2025-8-26 08:44 | 显示全部楼层 |阅读模式
1.hc32 中断函数

hd_exti.c

#include "ddl.h"
#include "gpio.h"
#include "hd_exti.h"
#include "interrupts_hc32l19x.h"


void GPIO_In_Init(en_gpio_port_t enPort, en_gpio_pin_t enPin)
{
    stc_gpio_cfg_t stcGpioCfg;

    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

    ///< 端口方向配置->输入
    stcGpioCfg.enDir = GpioDirIn;

    stcGpioCfg.enPu = GpioPuDisable; //关闭上拉电阻
    stcGpioCfg.enPd = GpioPdEnable;  //使能下拉电阻

    stcGpioCfg.enOD = GpioOdDisable; //关闭开漏

    Gpio_Init(enPort, enPin, &stcGpioCfg); //初始化GPIO
}

void GPIO_EXIT_Init(en_gpio_port_t enPort, en_gpio_pin_t enPin)
{
    stc_gpio_cfg_t stcGpioCfg;

    ///< 打开GPIO外设时钟门控
    Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE);

    ///< 端口方向配置->输入
    stcGpioCfg.enDir = GpioDirIn;
    ///< 端口驱动能力配置->低驱动能力
    stcGpioCfg.enDrv = GpioDrvL;
    ///< 端口上下拉配置->无
    stcGpioCfg.enPu = GpioPuDisable;
    stcGpioCfg.enPd = GpioPdDisable;
    ///< 端口开漏输出配置->开漏输出关闭
    stcGpioCfg.enOD = GpioOdDisable;
    ///< 端口输入/输出值寄存器总线控制模式配置->AHB
    stcGpioCfg.enCtrlMode = GpioAHB;
    ///< GPIO初始化
    Gpio_Init(enPort, enPin, &stcGpioCfg);

    // 设置中断触发类型(根据需要选择)
    Gpio_EnableIrq(enPort, enPin, GpioIrqFalling); // 下降沿触发

    // 使能对应端口的中断并设置优先级
    EnableNvic(PORTA_IRQn, IrqLevel3, TRUE); // 示例为PORTD/A中断
}
// 以PortA中断为例
void PortA_IRQHandler(void)
{
    if(TRUE == Gpio_GetIrqStatus(GpioPortA, GpioPin7)) // 检查具体哪个引脚触发中断
    {
        if(Gpio_GetInputIO(GpioPortA, GpioPin7) == 0) // 再次确认引脚状态
        {
           printf("\nexit ok!! ");
        }
        Gpio_ClearIrq(GpioPortA, GpioPin7); // 清除中断标志
    }
}



hd_exti.h

#ifndef __HD_EXTI_H__
#define __HD_EXTI_H__

#include "gpio.h"

void GPIO_In_Init(en_gpio_port_t enPort, en_gpio_pin_t enPin);
void GPIO_EXIT_Init(en_gpio_port_t enPort, en_gpio_pin_t enPin);

#endif




————————————————
版权声明:本文为CSDN博主「chem4111」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46286415/article/details/149611568

您需要登录后才可以回帖 登录 | 注册

本版积分规则

67

主题

210

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部