前面已实现了板载LED的控制,那么能否来控制外挂的LED模块呢?
回答是肯定的,那就是使用其内部的GPIO设备。这种GPIO设备,同样可以设置它输入、输出方向,以及输出高低电平和读取引脚的所处的状态。
通过开发板J12的扩展接口,可以充分来使用它所提供的GPIO口资源,以及电源引脚、I2C接口、 SPI接口等。
为控制外挂的LED模块,可以生成一个使用引脚GPIO88的设备,其生成的指令为:
echo 88 > export
然后使用指令ls 就可看到它的存在,见图1所示。
图1 生成设备
那如果不再使用它,又该如果去除呢?
所用的指令为:
echo 88 > unexport
然后使用指令ls 就可看到它被清除,见图2所示。
图2 清除设备
在生成GPIO88之后,如何来控制LED模块呢?
首先需要将它设置输出模式,然后再令其输出相应的高低电平,控制方法如图3所示。
其中:
echo out > gpio88/direction 是用来设置GPIO88为输出模式;
echo 1> gpio88/value 是用使GPIO88输出高电平;
echo 0> gpio88/value 是用使GPIO88输出低电平。
图3 控制电位输出
在输出高电平时,可点亮LED,见图4所示。在输出低电平时,则熄灭LED,见图5所示。
图4输出高电平
图5输出低电平
此外,还可以将GPIO88设为输入模式,来读取外接的按键模块,其控制方法如图6所示。
图6读取引脚状态
其中:
echo in > gpio88/direction 是用来设置GPIO88为输入模式;
cat gpio88/value 则是读取GPIO88的引脚状态。
在按键的释放状态,其读取值为“1“,见图7所示。在按键的触按状态,读取值为“0“,见图8所示。
图7 释放状态
图7 触按状态
这样就实现了以GPIO口来控制外部设备的目的,用起来还是十分方便的!
|