硬件:S32K144开发板
软件:S32DS 2.2
1,S32K144硬件连接说明
IO口分配情况如下,S32K144开发板具有3个按键和4个LED灯,具体与芯片的引脚连接情况如下所示。
* IO口分配情况
* KEY1 PTC12
* KEY2 PTC13
* KEY3 PTB2
* LED1 PTD16
* LED2 PTD15
* LED3 PTD1
* LED4 PTD0
2,S32K144的GPIO配置
S32DS的外设配置通过图形配置工具Component Inspector来实现。双击Components下方的pin_mux按钮打开图形配置工具Component Inspector(可能要多次双击)。可以双击图形配置工具Component Inspector空白处让它最大化方便我们进行配置。
选择GPIO进行配置,将按键引脚配置成输入input,将LED灯引脚配置成输出output。
接下来配置输入引脚为下拉模式,默认电平为低电平。这样按键按下则为高电平,抬起则为低电平。右击PTC12,选择第二个选项Pin Functional Properties,将上下拉模式选择为下拉,默认电平为低电平。完成后点击Done完成GPIO引脚配置。关闭图形配置工具Component Inspector回到工程。
3,S32K144的GPIO常用函数说明
1,GPIO引脚初始化函数。输入变量pinCount为GPIO引脚目录,输入变量config为GPIO引脚配置结构体。
status_t PINS_DRV_Init(uint32_t pinCount,const pin_settings_config_t config[]);
2,GPIO引脚写入函数。输入变量base为端口号,输入变量pin为引脚号,输入变量value为电平状态。PINS_SRV_WritePin是对单个引脚进行操作,PINS_SRV_WritePins是对整个端口进行操作。
void PINS_DRV_WritePin(GPIO_Type * const base,pins_channel_type_t pin,pins_level_type_t value);
void PINS_DRV_WritePins(GPIO_Type * const base,pins_channel_type_t pins);
3,GPIO引脚读出函数。输入变量base为端口号,输出变量为端口的电平状态。
pins_channel_type_t PINS_DRV_ReadPins(const GPIO_Type * const base);
4,S32K144的GPIO实战
实现四个LED灯的按键控制点亮,按下KEY1后四个LED点亮,松开后熄灭。
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);//初始化引脚
while(1)
{
pinstate = (PINS_DRV_ReadPins(PTC) >> 12) & 0X01;
if(pinstate)
{
PINS_DRV_WritePin(PTD,16,0);//LED全部点亮
PINS_DRV_WritePin(PTD,15,0);
PINS_DRV_WritePin(PTD,1,0);
PINS_DRV_WritePin(PTD,0,0);
}
else
{
PINS_DRV_WritePin(PTD,16,1);//LED全部熄灭
PINS_DRV_WritePin(PTD,15,1);
PINS_DRV_WritePin(PTD,1,1);
PINS_DRV_WritePin(PTD,0,1);
}
}