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)。这究竟是如何让我们到达针脚的?
在我看来,这个问题有两个方面,
- 重定向运算符本身如何工作,以及...
- 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:
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 世界工作。
如网站所示: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)。这究竟是如何让我们到达针脚的?
在我看来,这个问题有两个方面,
- 重定向运算符本身如何工作,以及...
- 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:
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 世界工作。