这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【S32K3XX】SIUL2 之 GPIO 功能使用

共1条 1/1 1 跳转至

【S32K3XX】SIUL2 之 GPIO 功能使用

高工
2025-08-27 18:41:22     打赏

【简介】

了解一个芯片对于GPIO 的使用就像学习一门编程语言打印输出"hello world" 一样的入门体验,我们结合芯片手册来了解下GPIO 的配置使用。

S32K3 系列芯片对于GPIO 的管理是通过SIUL2(System Integration Unit Lite2) 模块拉实现的,对应的SIUL2 的框图如下。

image.png

从上述框图可以看出S32K3 通过SIUL2 的IOMUX 单元来配置PAD连接至内部的GPIO模块或者其他IP modules,当把某个pad 配置为GPIO功能时,IOMUX 回通过MSCR/IMCR 寄存器配置PAD连接至内部GPIO模块。

image.png

从以下 MSCR/IMCR 的寄存器功能框图IMCR 用来输入信号的路由控制,MSCR 寄存器用来控制输出信号的通路控制

image.png

对应MSCR 的寄存器信号控制说明如下:

image.png

GPIO 功能根据上述的IOMUX 的配置即可将PAD 配置为GPIO引脚,配置为GPIO 功能后软件操作GPIO 的数据寄存器即可控制GPIO 的输出及获取输入的状态。

image.png


有了上述的理论基础我们使用S32DS 工具来配置GPIO 输出功能,配置以下PTA22 引脚为输出功能。


image.png

S32K3 的GPIO 的驱动是通过DIO 模块来配置加载的,我们在外设中开启DIO 模块。

image.png


配置完成后添加如下的测试代码

while(1)
{
volatile uint32_t i = 0x10000,j = 0x20000;

Siul2_Dio_Ip_SetPins(FS26_DEBUG_PORT,1 << FS26_DEBUG_PIN);
while(i--);
Siul2_Dio_Ip_ClearPins(FS26_DEBUG_PORT,1 << FS26_DEBUG_PIN);
while(j--);
}


代码与能行后发现GPIO 已经按照预期的被拉高、拉低了


image.png



 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]