S32DS for S32 Platform GPIO输入中断实践

1、配置GPIO

新建完项目后,右键项目找到"S32 Configuration Tools"--》"Open Pins"进入PIN脚操作页面配置GPIO。这里用的MCU为S32K144:

打开界面后在引脚窗口选择要配置的PIN脚,点击后选择GPIO功能,选择输入"Input",选择后在下方的路由详情会显示当前选择的所有pin脚和功能

在路由详情里面的"Interrupt Configruation"里面选择对应的中断源

我这里选择下降沿产生中断,选择后保存,点击"更新源代码";更新代码

2、中断初始化

c 复制代码
/* 假设您要为 PORTC 端口中断编写处理函数 */
void My_PORTC_IRQHandler(void);

void Init_My_Interrupt(void)
{
    /* 第一步:安装(注册)中断处理函数
     * 告诉系统,当 PORTC_IRQn 这个中断发生时,去调用 My_PORTC_IRQHandler 这个函数。
     */
    INT_SYS_InstallHandler(PORTC_IRQn, &My_PORTC_IRQHandler, NULL);

    /* 第二步:设置中断优先级
     * 优先级数值(如8)需根据您的系统需求设置,数值越小优先级越高。
     */
    INT_SYS_SetPriority(PORTC_IRQn, 8U);

    /* 第三步:使能("打开")这个中断
     * 执行此函数后,该中断线才会被NVIC(嵌套向量中断控制器)响应。
     */
    INT_SYS_EnableIRQ(PORTC_IRQn);
}

3、中断回调函数

c 复制代码
void My_PORTC_IRQHandlerr(){

//确认是哪个引脚触发的中断,是PTC15则tim++;然后清除中断标志位

//寄存器方式
//	if (PORTC->ISFR & (1U << 15U)){
//		tim++;
//		PORTC->ISFR = (1U << 15U);
//	}

//SDK函数方式
	if(PINS_DRV_GetPortIntFlag(PORTC) == (1U << 15U)){
		tim++;
		PINS_DRV_ClearPinIntFlagCmd(PORTC, 15U);//
	}

}
相关推荐
代码游侠7 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
CODECOLLECT11 小时前
京元 I62D Windows PDA 技术拆解:Windows 10 IoT 兼容 + 硬解码模块,如何降低工业软件迁移成本?
stm32·单片机·嵌入式硬件
BackCatK Chen11 小时前
STM32+FreeRTOS:嵌入式开发的黄金搭档,未来十年就靠它了!
stm32·单片机·嵌入式硬件·freertos·低功耗·rtdbs·工业控制
全栈游侠14 小时前
STM32F103XX 02-电源与备份寄存器
stm32·单片机·嵌入式硬件
Lsir10110_14 小时前
【Linux】中断 —— 操作系统的运行基石
linux·运维·嵌入式硬件
深圳市九鼎创展科技16 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算
辰哥单片机设计16 小时前
STM32项目分享:车辆防盗报警系统
stm32·单片机·嵌入式硬件
小龙报18 小时前
【51单片机】从 0 到 1 玩转 51 蜂鸣器:分清有源无源,轻松驱动它奏响新年旋律
c语言·数据结构·c++·stm32·单片机·嵌入式硬件·51单片机
范纹杉想快点毕业18 小时前
嵌入式与单片机开发核心学习指南——从思维转变到第一性原理的深度实践
单片机·嵌入式硬件
Industio_触觉智能18 小时前
瑞芯微RK3566开发板规格书,详细参数配置,型号EVB3566-V1,基于RK3566核心板SOM3566邮票孔封装
嵌入式硬件·开发板·rk3568·rk3566·核心板·瑞芯微