ELF 1开发板配有功能扩展的接口P2和P6,可选取其中的GPIO口来进行功能开发。
之所以这样讲,是因此板上已命名的资源均已被系统占用,除非重新更改程序,否则无法在原基础上加以变更功能来使用。
以板载的3个LED为例,所占用的引脚分别为30、60和64。由于这些引脚已被占用,故无法再以“echo 1 > gpio64/value的方式来点亮,而只能以“echo 1 > led3/brightness” 的方式。
经查看,板上可以GPIO口方式直接使用的引脚只有2个,即IO3_24和IO5_06。
那该如何来使用这2个引脚呢?
在使用前,先要了解将引脚名称转换为引脚号的规则。
其转换规则为:
GPIOn_IOx =(n-1)*32 + x
以 GPIO3_IO24 为例,其引脚号为88,即GPIO4_IO22=(3-1)*32+24=88。
而IO5_06的引脚号则为134,即GPIO5_IO6=(5-1)*32+6=134。
弄清了引脚号,就可以进行使用了。
为进行GPIO口输出功能的测试,可在相应的引脚外挂一个LED模块。
以引脚IO5_06为例,要利用它来控制LED模块,在完成引脚连接后,需执行如下的操作步骤为:
1)生成GPIO88
其指令为:
cd /sys/class/gpio
echo 88 > export
2)将GPIO88设置为输出口
其指令为:
echo out > gpio88/direction
3)控制GPIO88输出高低电平
其指令为:
echo 1 > gpio88/value
4)控制GPIO88输出高低电平
其指令为:
echo 0 > gpio88/value
所实现的效果如图1和图2所示:
图1 点亮LED
图2熄灭LED
若将LED模块连接到引脚IO5_06,则应生成GPIO134,并通过对GPIO134的操作来控制LED的亮灭,其效果如图3和图4所示。
图3 点亮LED
图4熄灭LED
为进行GPIO口输入功能的测试,可在相应的引脚外挂一个触摸模块。
以引脚GPIO3_IO24为例,在完成引脚连接后,需执行如下的操作步骤为:
1)生成GPIO88
其指令为:
cd /sys/class/gpio
echo 88 > export
2)设置为输入口
其指令为:
echo in > gpio88/direction
3)读取触摸模块状态
其指令为:
cat gpio88/value
经测试,其效果如图5所示,即在触摸时,其输入状态为1(高电平状态);在常态下,其输入状态为0(低电平状态)。
图5触摸检测
此外,可使用下面的方法将状态检测值保存到变量来使用,见图6所示。
图6 状态存储
以触摸模块控制LED灯的程序为:
通过如下的指令可执行该脚本程序,其效果如图7和图8所示。
若想终止运行,则需同时按下CTRL+C键。
图7 点亮LED
图8 熄灭LED