S32K144-Auto SAR MCAL层 Port/Dio驱动模块配置详解

Port

老规矩,直接新建Port,双击进入

进入PortContainer标签页,新建一个引脚容器

双击进入容器,输入要配置引脚数目

然后进入PortPin标签栏,新建一个引脚

双击进入

这里有几个点需要注意一下:

引脚的PCR值

Pin Contral Register引脚控制寄存器

对于S32K144来说,有五个端口ABCDE,每个端口32个引脚。

举例,PT D 16:32*3+16=112

是否允许上下拉

只有使能之后,才能设置下面的上拉还是下拉

未配置引脚怎么处理?

一般悬空处理,但考虑到功耗的影响,未使用的引脚均作为输入,内部上拉。

引脚这么多一个一个配置,那得多麻烦,不怕EB里面有直接配置所有未使用引脚的功能:

回到最初的界面:

常用接口函数

DIO

DIO Digital Input/Output Driver主要是对微控制器硬件引脚的访问进行了抽象。

说白了,就是没有实际用处,等于在Port外面又套了一层衣服。

所以要注意:Dio模块中涉及的DIO Channel,即单片机引脚(Pin),若要正常使用,必须在Port模块中对该引脚进行属性配置,即配置为GPIO(General Purpose I/O)模式。

配置如下:

老规矩,新建,双击进入

进入DioPort标签页,新建DioPort,然后双击进入

这个Dio Port Id是这么算的:对于S32K144来说,有五个端口ABCDE,A=0、B=1、C=2、D=3……

所以我们的PTD16,对应端口序号是3。

然后进入DioChannel标签栏下:新建通道

注意这里的Dio Channel Id是通道的ID,和上面的端口ID不是一个东西,比如我们的PTD16,通道ID就是16。

Port代表着端口,ABCDE……

Channel代表着通道,1234567……

总结

如果说Port是配置了每一个引脚的功能状态,那么Dio更像是给每个引脚取一个名字,并给它们下发指令,比如让他们变成高电平,或者低电平,或者翻转。