RPi - 使用">"访问GPIO引脚操作者

时间:2016-10-13 07:37:50

标签: bash raspberry-pi gpio

如网站所示:https://luketopia.net/2013/07/28/raspberry-pi-gpio-via-the-shell/

  

因此,如果我们希望能够访问引脚4,我们将输入echo 4> / SYS /类/ GPIO /出口

  

为了指定我们想要将引脚用作输出,我们可以做出回显> / SYS /类/ GPIO / GPIO4 /方向

我是一个bash noob,我想通过终端访问RPi的GPIO引脚。我搜索谷歌,找出究竟是什么">"运算符,但我找到的只是字符串比较(我认为返回1或0)。这究竟是如何使我们达到销钉的?

1 个答案:

答案 0 :(得分:3)

在我看来,这个问题有两个方面,

  1. 重定向操作符本身如何工作,以及......
  2. GPIO驱动程序如何通过RPi linux工作
  3. 我将在下面单独回答:

    1。重定向运算符>

    >是"重定向运算符"。它接受进程或函数的输出,并将其从终端重定向到其他位置。 echo命令将输出写入终端。在这种特定情况下,来自echo 4的终端输出(即值4)被传递给/sys/class/gpio/export。有关实际操作的详细信息,请参阅第2节。

    >的另一个常见用途,可能是一个更明确的例子,是将输出重定向到一个文件,例如:

    $ echo "This text will go into a file." > "myfile.txt"
    

    将创建文件myfile.txt,并将我们回显的行放入其中,因此其内容将为"此文本将进入文件。"

    它不仅仅是echo,任何命令的控制台输出都可以被重定向,例如:

    $ ls -la > "directoryListing.txt"
    

    上面将列出所有文件的目录,并将结果输出到文本文件" directoryListing.txt"而不是控制台。

    有关linux概念的更多详细信息,特别是重定向>和管道|等有用的概念,我建议您尝试以下链接:

    https://unix.stackexchange.com/questions/159513/what-are-the-shells-control-and-redirection-operators

    2。 GPIO驱动程序访问

    通过阅读this RPi linux site上的说明,看起来/sys/class/gpio/export点击了GPIO引脚的设备驱动程序并告诉它您希望使用提供的引脚(在本例中为引脚4)。您可以通过从控制台重定向来为此虚拟目录提供输入(参见上面的第1节)。

    一旦你打电话给导出,你就告诉司机你希望使用哪个(或多个)引脚,它会创建一个类似于虚拟文件系统的东西来控制。

    这是gpio4/direction部分的来源。当您导出上面的gpio4时,创建了pin 4文件夹。在该目录中有许多(您可以想到的)虚拟文件,然后可以设置引脚配置。 direction告诉驱动器引脚是输入引脚(在这种情况下是通过字in)还是输出引脚(在这种情况下我们将字{{1}传递给它) })。

    同样,我们使用控制台重定向操作符out设置它,我们可以像普通文件一样读取它,以获取指定的值,如下所示:

    >

    要读取/写入引脚的值(即是否设置为打开或关闭),只需遵循与$ cat /sys/class/gpio/gpio4/direction 文件相同的想法:

    value

    将引脚4的值设置为$ echo 1 > /sys/class/gpio/gpio4/value ,表示打开。等效地,可以通过执行

    来关闭它
    1

    最后,如果您已将引脚的方向指定为输入,请执行以下操作:

    $ echo 0 > /sys/class/gpio/gpio4/value
    

    你可以这样读取这个值:

    $ echo in > /sys/class/gpio/gpio4/direction
    

    如果您想将其存储在变量中,您可能会执行以下操作:

    $ cat /sys/class/gpio/gpio4/value
    

    请注意这些示例未经测试,我的Linux-fu有点生疏,因为我现在很遗憾地在Windows世界中工作。