前言
大家好,又见面了。前文我们详细介绍了 S32K3 RTD MCAL 开发环境的搭建过程,包括软件的下载、安装、例程介绍等。本文将在开发环境都完备的前提下继续展开,如果你还没有搭建好 S32K3 开发环境,请参考:
S32K3 RTD MCAL 开发环境搭建(详细教程):
https://www.wpgdadatong.com/reurl/zQzaIv
如果不使用 MCAL(Microcontroller Abstraction Layer),只想生成 LLD (Low Level Driver)程序的话,我们该如何配置呢? 下面我们用版本号为 “SW32K3_RTD_4.4_2.0.0”的 RTD 软件包为例,创建一个简单的工程,编译、烧录并进行功能演示。
1. 建立工程
2. 配置 CT(Configuration Tool)
标识符:使用标识符字段给每个引脚一个有意义的 ID,可用于 API 函数。
Slew Rate:寄存器位MSCR_SRC
Output Buffer Enable:寄存器位MSCR_OBE
Pad keep enable:寄存器位MSCR_PKE
Driver Strength Field:寄存器位MSCR_DSE
Initial Value:寄存器位GPDO_PDO
3. 编写程序
S32DS CT 生成的文件结构
Siul2_Port 相关的驱动代码文件:
RTD\include\Siul2_Port_Ip_Types.h
RTD\include\Siul2_Port_Ip.h
RTD\src\Siul2_Port_Ip.c
Siul2_Port包含引脚配置结构的文件:
Board\Siul2_Port_Ip_Cfg.h
Board\Siul2_Port_Ip_Cfg.c
Siul2_Dio 相关的驱动代码文件:
RTD\include\Siul2_Dio_Ip.h
RTD\src\Siul2_Dio_Ip.c
Siul2_Dio 包含引脚配置结构的文件:
generate\include\Siul2_Dio_Ip_Cfg.h
打开 Siul2_ToggleLed_S32K344 工程的c 文件,引入相关的头文件
通过《S32K3xx Reference Manual》附件中的《S32K344 IOMUX_Rev1.1.xlsx》表格可看出 IO 口按照A、B、C、D、E、F、G编号分成了7组(以 BGA257 为例),每组有0~31号共32个IO口,而H和L分别代表高16位和低16位,所以 PTA29实际属于高16位的第13-Pin,其他引脚以此类推。
Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0);
//初始化所有引脚配置,“g_pin_mux_InitConfigArr0”在之前生成的代码中定义。
Siul2_Dio_Ip_TogglePins(LED_PTA29_PORT, 1<<(LED_PTA29_PIN+led_Switch));
//切换指定GPIO端口的电平。
4. 编译并烧录到开发板
本次 S32K3 RTD LLD 工程建立已经完成。之后会以大联大世平集团推出的 S32K3xx-EVB 方案为硬件平台,介绍 S32K3 MCAL 各模块应用,也是对自己的学习过程做一个总结(不定期更新 =_=),如果有任何问题欢迎在博文下方留言,我们下次继续~
《S32K3 RTD MCAL 开发环境搭建(详细教程)》:
https://www.wpgdadatong.com/reurl/zQzaIv
参考资料
[1] S32K3xx Reference Manual, Rev.2 Draft C, 04/2021, NXP
[2] Cavalry (S32K3 Core Board) Rev.1 - Schematic