原理图
在这一节中,实现的是通过按键控制LED的亮灭,按下按键时LED亮,松开按键后LED灭,其他的拓展就靠各位自己的发挥了。
按键部分
在这个原理图中,不用纠结电路的连接方式,这个是在官方DEMO板原理图上搬过来的,其实其他连接方式也可以用,这里就以官方板子的电路为例,编写它的控制程序。
这里的R8为下拉电阻,按键没有按下时PTC14引脚保持低电平,按下按键后PTC14引脚为高电平。
LED部分
LED的控制程序在上一节中介绍过了,详见 S32K144(2)点亮LEDhttp://t.csdn.cn/ZfCd1
一、双击打开pin_mux组件
通过pin_mux配置GPIO的状态。
二、配置pin_mux
因为按键是状态输入,所以需要将PTC14配置为输入(Input)。
三、组件生成代码
上述配置都设置完以后,点击代码生成,会自动生成GPIO的初始化程序。
自动生成的代码如下图所示:
四、调用pin_mux的库函数
PINS_DRV_ReadPins为读取引脚状态的库函数,这个结尾“s”说明它读取的是PTC全部引脚的状态,我们需要的仅仅是PTC14的状态,所以需要在这个函数的基础上“与”一个(1<<14),即
PINS_DRV_ReadPins(PTC)&(1<<14)
while(1)
{
unsigned char a = PINS_DRV_ReadPins(PTC)&(1<<14);//将PTC14的值赋给a
if(a)//判断a的状态,a=1为真,代表按键按下,否则就是按键没按下
{
PINS_DRV_WritePin(PTB,2,0);//PTB2为低电平,LED点亮
}
else
{
PINS_DRV_WritePin(PTB,2,1);//PTB2为高电平,LED熄灭
}
}
五、时钟、GPIO初始化
代码:
CLOCK_DRV_Init(&clockMan1_InitConfig0);
PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr);
六、整体程序编译
七、烧录
通过J-Link烧录进芯片。