香蕉派W2(6)---控制GPIO

以BPI-W2需要给 P11引脚输出0或1为例

1、根据GPIO引脚图确定GPIO的位置以及标识

在这里插入图片描述

2、写入GPIO号

/sys/class/gpio/export 写入此编号,比如P11号引脚对应GPIO17,在 shell 中可以通过以下命令实现:

echo 17 > /sys/class/gpio/export

命令完成后会生成一个 /sys/class/gpio/gpio17 的目录,如果没有这个目录,说明这个引脚不能导出。

3、定义输入输出

direction文件定义输入还是输出,可以通过下面命令定义为输出

echo out > /sys/class/gpio/gpio17/direction

direction 能用的参数是:in、out、high、low。其中 high / low 在设置方向为输出的同时,将 value 设置为相应的 1 / 0

4、输入高低电平

value 文件是端口的数值,为1或0,通过下面命令将 gpio17设置为底电平。

echo 0 > /sys/class/gpio/gpio17/value

5、控制40个引脚的流水灯脚本

#bin/bash
#GPIO40_NO_IGPIO="13 14 3 17 58 25 27 7 4 5 6 8 12 11 100 21 54 59 57 22 23 24 60"
#IGPIOSORG="21 3 2 5 4 9"
#IGPIO + 101 = GPIO
#IGPIOS="122  104 103 106 105 110"
GPIO40="13 14 122 104 103 3 17 58 25 27 106 105 7 4 110 5 6 8 12 11 100 21 54 59 57 22 23 24 60"
GPIOLED="128 97 98" 

GPIOS="$GPIO40 $GPIOLED"

export_gpio() {
  for IN in $GPIOS ; do
    EXPORT=/sys/class/gpio/export
    VALUE=/sys/class/gpio/gpio$IN/value
    if [ ! -f $VALUE ] ; then
      echo $IN > $EXPORT
    fi
  done
}

out_gpio() {
  for IN in $GPIOS ; do
    DIR=/sys/class/gpio/gpio$IN/direction
    if [ -f $DIR ] ; then
      echo  out > $DIR
    fi
  done
}

hi_gpio() {
  for IN in $GPIOS ; do
    VALUE=/sys/class/gpio/gpio$IN/value
    if [ -f $VALUE ] ; then
      echo 1 > $VALUE
    fi
  done
}

on_off_led()                                                                    
{                                                                               
ONOFF=$1                                                                        
  for IN in $GPIOS ; do
    VALUE=/sys/class/gpio/gpio$IN/value
    if [ -f $VALUE ] ; then
      echo $ONOFF > $VALUE
    fi
  done
}                                                                               
                                                                                
export_gpio
out_gpio
hi_gpio

while [ 1 ] ; do
  on_off_led 0                                                            
  sleep .5                                                                
  on_off_led 1                                                            
  sleep .5                                                                
done
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值