gpio - 在 Armbian 3.4.113 及更新版本上访问 OrangePI PC Plus (H3) 上的 GPIO

标签 gpio orange-pi

现在使用旧方法 gpio-sunxi 如何在 OrangePi PC plus ( SoC H3 ) 上访问 Armbian 3.4.113 上的 GPIO并编辑 .fex -file 已过时(想分享这个...)

最佳答案

一般程序在 https://linux-sunxi.org/GPIO 中有所描述。

GPIO 引脚通过 sysfs 访问文件系统。要启用特定引脚,必须将其导出到 /sys/class/gpio/export
对于引脚 PA1,命令为 echo 1 > sys/class/gpio/export .引脚数由以下公式计算:

  (position of letter in alphabet - 1) * 32 + pin number

PA1 有引脚编号('A' 是第一个字母)1 , PB2 有引脚号 34 ('B' 是第二个字母),PG7 的引脚号 199 ('G' 是第 7 个字母 (7-1)*32+7=199 )

上的仓位物理标题再次不同,参见。下图

因此可以使用物理接头上的引脚 40 来启用 PG7
   echo 199 > sys/class/gpio/export

OrangePi PC plus GPIO header

图片来源:https://orange314.com/Hardware

通常是像 echo "199" sys/class/gpio/export 这样的 echo 命令给出 Permission denied错误

一个简单的解决方案如下:

要对 GPIO 引脚进行一次性操作,您必须启动一个
首先将 shell 作为 super 用户分开,然后使用 echo。例如到
打开引脚 A10:
$ sudo sh
# echo 10 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio10/direction
# echo 1 > /sys/class/gpio/gpio10/value

或者您可以使用 tee 来避免创建子shell:
$ echo 10 | sudo tee /sys/class/gpio/export
$ echo out | sudo tee /sys/class/gpio/gpio10/direction
$ echo 1 | sudo tee /sys/class/gpio/gpio10/value

来源:https://forum.armbian.com/index.php?/topic/4052-problem-using-gpio-pins-on-legacy-kernel/

另一种方法是创建一个新组并将/sys/class/gpio 目录的组更改为这个新组:

您可以创建一个名为 gpio 的组,将用户添加到其中,导出 gpio
等如下:
sudo groupadd gpio
sudo usermod -aG gpio <myusername>
su <myusername>
sudo chgrp gpio /sys/class/gpio/export
sudo chgrp gpio /sys/class/gpio/unexport
sudo chmod 775 /sys/class/gpio/export
sudo chmod 775 /sys/class/gpio/unexport

这使您的用户能够导出和取消导出。

导出引脚后,您也可以对它们进行 chgrp 和 chmod(不要
忘记它们的内容)并照常使用它们。
echo "18" > /sys/class/gpio/export
chgrp -HR /sys/class/gpio/gpio18
chmod -R 775 /sys/class/gpio/gpio18

现在您的用户可以访问第一个 GPIO 引脚 18。

来源:https://www.raspberrypi.org/forums/viewtopic.php?t=5185

执行 echo 时具有权限的新目录出现在 /sys/class/gpio即对于 PA2(它是物理接头上的引脚编号 2 和编号 22),它是 /sys/class/gpio/gpio2
要配置引脚编号 2,您必须将特定值写入 /sys/class/gpio/gpio2 中的文件中

例如,将引脚 2 设置为输出和“高”写入
echo "out" > /sys/class/gpio/gpio2/directionecho "1" > /sys/class/gpio/gpio2/value
关闭 GPIO 时,引脚应该不导出,即
echo 2 > /sys/class/gpio/unexport用于引脚 2(PA2,物理接头上的编号 22)

访问 GPIO 的另一种方法是使用 python,但是对于基于 H3 的板,WiringOP 尚不可用

关于gpio - 在 Armbian 3.4.113 及更新版本上访问 OrangePI PC Plus (H3) 上的 GPIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46463724/

相关文章:

python - Orange Pi 接线Pi

linux - 在 Armbian(在 Orange Pi Zero 上)上安装 .Net 5 运行时时出现错误

Mysql 返回 NULL 而不是值

embedded-linux - 具有只读文件系统的 Buildroot : allow writing on/etc

python - python是匀速迭代的吗?

c - 从 CC2530 上的 GPIO 引脚读取

linux - 如何计算我的 GPIO 端口地址

python - 树莓派到 AB controllogix : how to trigger output in GPIO based on continuosly reading plc tag value