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

基于MCAL的S32K3 GPIO外部中断使用

0、简介

本文基于S32K312 介绍GPIO的外部中断,主要是记录开发流程,本文基于《基于MCAL的S32K3 MCU使用》的工程,环境如下:

MCU:NXP S32k312

RTD版本:SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311

EB版本:tresos Studio 29.0

本文是软件模拟SPI(后简称SSPI)的前提,故使用相关pin。

2、MCAL

2.1 PORT配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.2 ICU配置

IcuHwInterruptConfigList

根据需求添加硬件物理中断通道,并使能中断。
在这里插入图片描述

IcuSiul2

在IcuSiul2中添加中断通道号
在这里插入图片描述

IcuChannel

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
请记得将相关MCAL 静态代码放入工程,并添加相关include路径:
同时,需要依赖Rte_TS_T40D34M40I0R0,同理处理。
在这里插入图片描述

在这里插入图片描述

2.3 Platform

Interrupt controller

在这里插入图片描述

在这里插入图片描述
SUIL_0_IRQn对应0-7的外部引脚中断
SUIL_1_IRQn对应8-15的外部引脚中断
SUIL_2_IRQn对应16-23的外部引脚中断
SUIL_3_IRQn对应24-31的外部引脚中断

本项目使用的中断通道号为22,23。故只需使能SUIL_2_IRQn中断。

SIUL2_EXT_IRQ_16_23_ISR中断的处理函数如下:
在这里插入图片描述

2.3 代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
其中Icu_ChannelType Channel号见Icu_Cfg.h
在这里插入图片描述

int main(void)
{
    /* Initialize Platform driver */
    Platform_Init(NULL_PTR);

    /* Install ISRs */
    Platform_InstallIrqHandler(SIUL_2_IRQn, &SIUL2_EXT_IRQ_16_23_ISR, NULL_PTR);
    /* Enable ISRs*/
    Platform_SetIrq(SIUL_2_IRQn, TRUE);

    Icu_Init(&Icu_Config);
    Port_Init(&Port_Config);

    Icu_EnableEdgeDetection(IcuChannel_0_PTC14_EIRQ22); //使能边沿检测
    Icu_EnableEdgeDetection(IcuChannel_1_PTC15_EIRQ23);
    Icu_EnableNotification(IcuChannel_0_PTC14_EIRQ22); //使能回调
	Icu_EnableNotification(IcuChannel_1_PTC15_EIRQ23);
}
void IcuSginalEdgeDetection_SSPI_CS_Notification(void){
	static uint32_t SSPI_CS_count=0;
	SSPI_CS_count++;
}

void IcuSginalEdgeDetection_SSPI_SCK_Notification(void){
	static uint32_t SSPI_SCK_count=0;
	SSPI_SCK_count++;
}

2.4 试验

另一端接spi主机产品。
在这里插入图片描述

2.5 AUTOSAR OS

若引入AUTOSAR OS之后,应将ISR注册给OS。
(OS配置对应中断,并在程序中注册处理函数)
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/581138.html

相关文章:

  • 怎么实现: 大语言模型微调案例
  • 从零开始实现大语言模型(十三):预训练大语言模型GPTModel
  • Netty基础—2.网络编程基础四
  • MoonSharp 文档三
  • Session、Cookie、Token的区别
  • 【每日学点HarmonyOS Next知识】状态变量、动画UI残留、Tab控件显示、ob前缀问题、文字背景拉伸
  • SICK Ranger3源码分析——断线重连
  • python之使用scapy扫描本机局域网主机,输出IP/MAC表
  • 算法面试题深度解析:LeetCode 2012.数组元素的美丽值求和计算与多方案对比
  • Acknowledgment.nack方法重试消费kafka消息异常
  • 【SpringMVC】深入解析使用 Postman 在请求中传递对象类型、数组类型、参数类型的参数方法和后端参数重命名、及非必传参数设置的方法
  • 【物联网-以太网-W5500】
  • Django ORM自定义排序的实用示例
  • 神经网络优化
  • DeepSeek-R1本地化部署(Mac)
  • 电机控制常见面试问题(四)———
  • 量子效应模拟:Python中的奇妙世界
  • DeepSeek刷力扣辅助题单 存留记录
  • 在 MAC mini4 上安装与使用 ComfyUI 文生图软件完整指南
  • 小橙优选创新发展