RPi - 使用“>”运算符访问 GPIO 引脚

RPi - Accessing GPIO Pins with ">" Operator

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

So if we want to be able to access pin 4, we would type echo 4 > /sys/class/gpio/export

To specify that we want to use the pin as an output, we can do echo out > /sys/class/gpio/gpio4/direction

我是一个 bash 菜鸟,我想通过终端访问 RPi 的 GPIO 引脚。我搜索了 Google 以找出“>”运算符到底做了什么,但我发现的只是字符串比较(我认为 returns 1 或 0)。这究竟是如何让我们到达针脚的?

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

  1. 重定向运算符本身如何工作,以及...
  2. GPIO 驱动程序如何通过 RPi 工作linux

下面我会一一解答:

1。重定向运算符 >

> 就是所谓的“重定向运算符”。它获取进程或函数的输出,并将其从终端重定向到其他地方。 echo 命令将输出写入终端。在这种特定情况下,来自 echo 4 的终端输出(即值 4)被传递给 /sys/class/gpio/export。请参阅第 2 部分以了解有关实际功能的更多详细信息。

> 的另一个常见用法是将输出重定向到一个文件中,例如:

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

文件 myfile.txt 将被创建,我们回显的行将被放入其中,所以它的内容将是“This text will go into a file.”。

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

$ ls -la > "directoryListing.txt"

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

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

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 一词)还是输出引脚(在这种情况下我们传递 [=35= 一词) ]).

同样,我们使用控制台重定向运算符 > 设置它,我们可以像读取普通文件一样读取它,以获取分配的值,如下所示:

$ cat /sys/class/gpio/gpio4/direction

到read/write引脚的值(即是否设置为打开或关闭),只需遵循与value文件相同的想法:

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

将引脚 4 的值设置为 1,即打开。等价地,它可以通过

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

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

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

您可以这样读取该值:

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

如果您想将其存储在变量中,您可以这样做:

$ $myPinValue = $(cat /sys/class/gpio/gpio4/value)

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