问题标签 [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.

0 投票
2 回答
2216 浏览

c++ - Linux下C/C++ select如何与gpio一起工作?

Linux下select如何与gpio一起工作?

是否可以使用 select 创建一种中断驱动程序,也许在一些线程的帮助下?

当我使用 select 调用时,我应该考虑什么?

谢谢


注意:我已经阅读了有关 select 的手册页,但我认为我需要有关此主题的更多帮助。

  • 人 3posix 选择
  • 男人 2 选择
  • 男人 2 select_tut

更新: gpio 在 sysfs gpio 块中公开。但我不知道我是否可以将它与选择一起使用。

0 投票
2 回答
1358 浏览

android - 扩展 UEventObserver.java

嘿!为了观察 GPIO 中断,我想创建一个观察者类,它应该是 UEventObserver.java 的子类,可以在 frameworks/base/core/java/android/os 中找到。问题是,这个类不包含在标准 SDK android.jar 中。有没有人知道如何从这个类扩展?非常感谢!

0 投票
1 回答
2584 浏览

embedded - 我可以为 STM32F103ZE 芯片上的 GPIO 引脚配置中断吗?

STM32F103ZE 是否有可用的 GPIO 中断?我浏览了数据表,但没有找到与此相关的任何内容。我是这个处理器的新手,但最近使用了 TI 的 MSP430。在 MSP430 中,我们可以使用一些 GPIO 寄存器来配置中断。谁能告诉我我该怎么做?

0 投票
2 回答
5189 浏览

linux-device-driver - 基于 ARM 的嵌入式 Linux 上的 GPIO IRQ

我正在尝试在 AT91SAM9M10-EKES 评估板上编写一个 GPIO IRQ。我成功注册了 IRQ,并且 IRQ 正在工作。但是,会遗漏一些中断。我发送了 26 个,但我只收到了 22 个。

编码:

这不是整个驱动程序,但这是处理 IRQ 的实际部分。如果有人在代码中看到问题,或者可以提出一种方法来了解我为什么会丢失 4 个中断,请回复。我被困在这几个小时... :(

谢谢。拉蒙。

0 投票
1 回答
3712 浏览

linux - Linux内核模块中的周期性任务

目前我正在为友好的 Linux 2.6.32.2 (mini2440) 开发 GPIO 内核模块。我来自电子背景,是 Linux 新手。

/dev启动时加载的内核模块和相关的设备文件位于gpiofreq.

第一次写入设备文件时,GPIO 引脚以 50kHz 连续切换。在第二次写它停止切换。第三次,它再次开始,依此类推。

我已经编写了单独的内核模块来生成频率。但第一次写入设备文件后 CPU 冻结。显示终端提示,但之后我无法运行任何命令。

这是代码片段:

这是设备写入代码,它以写入设备文件的任何数据开始或停止。

0 投票
4 回答
31421 浏览

arm - 如何正确初始化 I2C stm32?

我想从 ADXL345 加速度计获取数据,但似乎我连接错误。

SCL-PC6(带10k电阻)

SDA-PC7(带10k电阻)

SDO-地

CS - VCC

地 - 地

3.3v - VCC

这是我的初始化代码:

在我看到的一个例子中

但我没有这个 API 可用。

请帮我。我尝试了很多解决方案,也尝试通过 SPI 连接,但没有成功:(请帮助 I2C。

0 投票
1 回答
8718 浏览

linux - 在没有忙循环的情况下,如何在 Linux 上通过 GPIO 获取边缘事件?

我正在使用嵌入式 Linux(内核 2.6.31)的系统。

内部是一个AT91SAM9G20芯片,部分Pin转发到外部。

现在我想将它们用作 GPIO 输入。

我阅读了有关通过文件系统使用 GPIO 的 gpio.txt 文档,直到这里都运行良好。我将一些开关连接到 gpio 引脚,我可以在/sys/class/gpio/gpioX/value. 但现在我想对更改做出反应,而不是在循环中忙着等待。(即回声“Switch1 被按下”)。

我想我在这里需要中断,但如果不编写自己的内核驱动程序,我无法找到如何使用它们。我对 Linux 和 C 比较陌生(我通常用 Java 编程),所以我也想通过 sysfs 处理中断。但我的问题是,我的 GPIO 目录中没有“边缘”文件(我猜是因为这只是从内核版本 2.6.33+ 开始)。那正确吗?我uevent在那里有一个文件,而不是“边缘”,这在gpio.txt.

在 gpio.txt 文档中提到了一个标准内核驱动程序:“gpio_keys”。可以用它来解决我的问题吗?

我想使用这个驱动程序比允许用户空间程序操作内核任务要好。我找到了很多用于编写自己的驱动程序的代码片段,但我什至无法找出gpio.h要包含的 600 个文件中的哪一个,以及如何引用该库(交叉编译器找不到 gpio.h 文件) .

新手有问题,望大家多多指教。

提前致谢

0 投票
1 回答
10558 浏览

linux - 使用 sysfs 的 Linux 用户空间 GPIO 中断

我想使用 sysfs 在用户空间上使用带有 GPIO 的中断。我使用这些命令:

gpio 运行良好,但我不能使用中断。我到处阅读我必须有一个边缘文件来轮询这个文件。但是在我的系统上这个文件不存在。我做了很多尝试来寻找解决方案,但仍然没有成功。

我的目标是 Linux 内核 2.6.30 上的 AT91SAM9263。

在我的电路板启动时,我收到了有关中断的消息:

这表明该功能at91_gpio_irq_setup()执行良好。

你有什么想法吗?

0 投票
2 回答
5154 浏览

io - 飞思卡尔处理器中的打击垫控制功能的解释?

阅读第 1368 页的MCIMX50 应用处理器参考手册(第 33.3 节),其中列出了处理器焊盘的不同可能控制功能。

名单是:

  • SRE(1 位转换速率控制)。
  • DSE(2 位驱动强度控制)。
  • ODE(1 位开漏控制)。
  • HYS(1 位滞后控制)。
  • PULL_KEEP_CTL(4 位上拉/下拉和保持器控制)
  • PUS(2位上拉/下拉配置值)
  • PUE(1 位拉/保持选择)
  • PKE(1 位启用/禁用上拉、下拉或保持功能)
  • DDR_MODE_SEL(1 位 ddr_mode 控制)
  • DDR_INPUT(1 位 ddr_input 控制)

有人可以解释其中的每一个是什么,最好以具有教育意义的方式并提供附加信息的链接吗?

提前致谢。

0 投票
1 回答
5914 浏览

gpio - 写入 /sys/class/gpio/export 失败

我正在做一个需要我配置 gpio 引脚并将传感器添加到原子板的项目。内核已经配置了 gpio ...CONFIG_GPIO_SYSFS=y是内核选项之一。

我正在使用Fedora 版本 2.6.29-10
但我无法使用写入 gpio 文件夹中的导出文件

我得到错误
bash: echo: write error: Invalid argument

我也尝试了同样的方法sudosh -c但没有用,除非我可以将这些引脚暴露给用户空间,否则我无法编写任何代码。我做错了什么?
是内核版本问题还是需要设置其他一些内核选项?

提前致谢