当前位置: 首页 > news >正文

HC32 中断实现

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;///< 端口输入/输出值寄存器总线控制模式配置->AHBstcGpioCfg.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

效果

http://www.dtcms.com/a/298014.html

相关文章:

  • ubuntu上将TempMonitor加入开机自动运行的方法
  • Python异常,模块与包
  • 电厂液压执行器自动化升级:Modbus TCP与DeviceNet的协议贯通实践
  • 从热点到刚需:SmartMediaKit为何聚焦B端视频系统建设?
  • 「iOS」——GCD其他方法详解
  • 自然语言处理技术应用领域深度解析:从理论到实践的全面探索
  • Unity 多人游戏框架学习系列十一
  • http-proxy-middleware MaxListenersExceededWarning
  • [2025CVPR-图象分类方向]SPARC:用于视觉语言模型中零样本多标签识别的分数提示和自适应融合
  • 【STM32】FreeRTOS任务的挂起与解挂(四)
  • 学习游戏制作记录(克隆技能)7.25
  • 踩坑记录:因版本不匹配导致 Boost 1.85 编译失败的完整解决过程
  • 二层隧道协议(PPP、PPTP、L2TP)
  • STM32的WI-FI通讯(HAL库)
  • 2025-07-25设置使用权限N次内
  • 《计算机组成原理与汇编语言程序设计》实验报告一 基本数字逻辑及汉字显示
  • OpenGLRender开发记录(二): 阴影(shadowMap,PCF,PCSS)
  • 升级目标API级别到35,以Android15为目标平台(三 View绑定篇)
  • Fluent自动化仿真(TUI命令脚本教程)
  • SQL Server数据库
  • 破局与重构:King’s LIMS 引领电子行业实验室智能化转型
  • 从kHz到GHz:晶振频率范围如何决定其应用场景
  • 打破渠道壁垒:SEO+ASO协同作战实现用户获取量翻倍
  • Spring Cloud Gateway 服务网关
  • Docker 实战大纲
  • HC32 睡眠
  • SpringBoot整合Liquibase提升数据库变更的可控性、安全性、自动化程度(最详细)
  • Claude Code 基于 VUE + KonvaJS 实现海报生成器(附源码)
  • 基于springboot的候鸟监测管理系统
  • 杂谈:前端开发中的常见问题