问题标签 [gpio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - 在嵌入式 Linux 中启用 GPIO 唤醒
我正在尝试在嵌入式 Linux 上为 GPIO 启用唤醒事件,在搜索了一段时间后我想出了如何做到这一点,但是当我尝试这个时:
我明白了
这是否意味着它不受硬件支持?还是我需要在内核中启用某些东西?
编辑:
只是为了记录,sysfs GPIO已启用并且工作正常,我可以读/写GPIO值,但我似乎无法启用唤醒事件,我一直在阅读内核文档,它说:
“输入通常可以用作 IRQ 信号,通常是边沿触发,但有时是电平触发。此类 IRQ 可配置为系统唤醒事件,以将系统从低功耗状态唤醒。”
所以我想知道,我是否需要在内核中为 GPIO 配置唤醒事件?如果硬件不支持它,为什么我在sysfs/class/gpio/gpio#/power/wakeup下有一个唤醒文件?
embedded-linux - 如何控制嵌入式linux gpio?
以下 shell 命令可以很好地切换 Leopardboard gpio 31:
这用作以下代码的示例。知道为什么以下 .vala 代码不会切换 gpio 31 吗?
linux - 如何在gpio上循环?
如何使用 gpio 来控制执行?以下用于显示 gpio63 的输入值
但我尝试了很多东西,比如
没有成功。
python - GPIO 引脚的 Python 代码正在重新调整错误 NameError: name 'n' is not defined
我是 python 新手,我已经为我的 Raspberry Pi 上的 GPIO 引脚编写了一些代码,但是当我运行它时,我得到了这个:
因为我是 python 新手,所以我似乎找不到任何错误——即使有错误检查器,所以我有点困惑代码是......
代码集设置了 3 个 GPIO 引脚(将它们打开)。然后代码会在询问用户打开或关闭哪个 LED 之前关闭所有 LED
任何有关改进等的帮助建议将不胜感激
谢谢
linux - 将 GPIO 状态从一台 linux 机器传送到另一台机器的最佳方法是什么
我正在运行一个 beaglebone 和一个树莓派。我可以在路径 /sys/class/gpio 中轻松读取 gpio。我可以轻松地使用 Web 服务器从一台机器读取 gpio 状态到另一台机器,但我想知道是否有更好的较低级别的方法来通过网络映射 gpio 文件夹。我尝试了 NFS,但在运行 debian wheezy 映像的树莓派上收到此警告:
所以看起来 gpio 不支持通过 NFS 映射。有谁知道另一种方法吗?
谢谢!贾斯汀
linux - Beaglebone gpio 输入不起作用
我正在使用 beaglebone 使用 sysfs 接口从特定引脚访问数字输入。而且我可以更改输出状态,但不能更改输入:(。我所做的是,我有两个引脚 pinA 和 pinB。pinA 我使它输出,pinB 我输入。将 pinA 连接到 pinB。通过发送将 pinA 配置为输出引脚通过传入将 sysfs 和 pinB 中的方向属性作为输入。我将 PinA 的值更改为 1,它给出 1 作为输出(我使用 LED 测试)。但是当我读取 PinB 的值时,它只给出 0,即使我将 0 传递给 pinA 的值。可能是什么原因?
谢谢 :)
linux - 在没有 ``sudo`` 的情况下访问(树莓派的)GPIO
当然,这个问题可能不是特定于树莓派的。另外,我对 Linux 比较陌生。
我想编写一个小库(在 node.js 中,如果重要的话)来使用 sysfs 访问树莓派的 GPIO。但是,访问 sysfs 需要 sudo 访问权限,这很糟糕,原因很明显。
Quick2Wire似乎有解决方案,但我想更好地理解它,而不是盲目地使用它。他们当然使用过 C,但据我了解,代码并不复杂,可能只用 bash 就可以完成,即使不那么优雅。但是,最重要的是,我不确定它为什么会起作用。
任何帮助都会很棒。
编辑:感谢您的评论。很明显,我需要重新表述这个问题。这里有:一旦安装(作为root),应用程序不需要任何更多的root权限才能使用?在这种情况下,将某人添加到组有什么帮助?/sys/devices/virtual/gpio
不是gpio sysfs可用的位置,那有什么诡计?我真的是一个n00b,所以这些问题可能是n00b-ish,所以请多多包涵。
c++ - 如何使用 C/C++ 获得对特定内存地址的 R/W 访问权限
因此,考虑如何制作自己的硬件/驱动程序,我正在使用 GPIO,并且我知道 GPIO 实际上对所有硬件都使用特定范围内的特定内存库,但是我将如何将它们读取和写入这些内存银行?
USB 是否以类似的方式工作?
PS我用的是树莓派。
embedded-linux - 在嵌入式 Linux 设备上使用 GPIO 触发电平触发中断
我正在将使用电平触发中断的现有系统移植到嵌入式 Linux 设备。我遇到了一些麻烦,希望有人可以提供帮助。我的计划是使用 poll() 函数(在用户空间中,没有低级别驱动程序的计划)来检测 gpio 线何时为高电平。这是做某事的迹象。
不幸的是,我还没有弄清楚如何启用该条件。现在我正在做以下事情:
- 将 gpio 编号写入 /sys/class/gpio/export
- 将方向设置为“in”
- 将边缘设置为 ?
我可以设置 GPIO 以便当 gpio 线为高时 poll 将返回,即使 poll() 被多次调用而不清除条件,但如果线为低它会等待?我应该使用其他东西而不是尝试使用 poll() 吗?谢谢!
更新
我以为我有一个解决方案,但显然没有。我将 GPIO 线上的边缘设置为“上升”。在硬件方面,该线路与数据缓冲区的“FIFO used”计数相关联。如果 FIFO 中有数据,则该行为高电平。否则就低了。然后我设置了以下系统:
第一个“If”语句在那里,因为我一次只读取一个字节,如果条件没有改变,poll() 在超时之前不会返回(如果有多个字节,它不会在我的系统中先进先出)。我现在看到的问题是 poll() 有时会返回,但 FIFO 中没有任何数据。实际上,poll() 返回 '1',但 FIFO 报告它是空的。
我希望 poll() 只会在 gpioXX/value 文件由于 GPIO 线的“上升”边缘设置从 0 更改为 1 时检测到更改。那是对的吗?这是使用 poll() 的合理方式还是我应该考虑不同的设计。
linux - linux中的GPIO API在时间上是确定性的吗?
我需要在我的驱动程序中调用gpio_get_value
, gpio_set_value
,gpio_direction_input/output
并且有一个时间要求,要求函数调用在短时间内返回5us
。
能gpiolib
满足这个要求还是不是确定性的?如果没有,有什么解决办法?直接访问GPIO寄存器?
非常感谢。