我想使用sysfs在用户空间上使用GPIO中断.我使用这些命令:
[root@at91]:gpio109 > echo 109 > export
[root@at91]:gpio109 > cd gpio109/
[root@at91]:gpio109 > ll
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 direction
drwxr-xr-x 2 root 0 0 Jan 1 00:17 power
lrwxrwxrwx 1 root 0 0 Jan 1 00:17 subsystem -> ../../gpio
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 uevent
-rw-r--r-- 1 root 0 4096 Jan 1 00:17 value
Run Code Online (Sandbox Code Playgroud)
gpio运行良好,但我无法使用中断.我到处读到我必须有一个边缘文件来轮询这个文件.但在我的系统上,此文件不存在.我做了很多尝试找到解决方案,但仍然没有成功.
我的目标是Linux内核2.6.30上的AT91SAM9263.
在我的电路板启动时,我收到了关于中断的消息:
AT91: 160 gpio irqs in 5 banks
Run Code Online (Sandbox Code Playgroud)
这表明该功能at91_gpio_irq_setup()执行得很好.
你知道吗?
我试图让我的Raspberry Pi的GPIO引脚工作,我正在遵循教程:如何像Arduino一样使用你的Raspberry Pi.
(我正在通过运行Raspbian的SSH工作.)我已经成功安装了分发版.
在尝试安装PIP时,我收到如下所示的错误.
我该如何解决?
pi@DuckPi ~ $ sudo curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 85929 100 85929 0 0 89250 0 --:--:-- --:--:-- --:--:-- 103k
Downloading/unpacking pip
Running setup.py egg_info for package pip
warning: no files found matching '*.html' under directory 'docs'
warning: no previously-included files matching '*.txt' found under directory 'docs/_build'
no previously-included directories found matching 'docs/_build/_sources'
Installing …Run Code Online (Sandbox Code Playgroud) 我正在为我的PI制作一个传感器包.我已经添加了Sparkfun的TMP102温度传感器.在GPIO上,它由引脚1供电,在引脚6上接地,引脚3和5处理串行数据.我写了一个python脚本来读取数据,一切正常.
我的问题是我现在想在GPIO上添加第二个传感器,BMP085压力传感器也在Sparkfun的分线板上.我发现的接线示例表明它需要挂接到与TMP102相同的GPIO引脚.它们都应该注册为串行设备,但我不确定如何将所有内容连接在一起.
我是一个内心的程序员,所以连接电子产品让人感到紧张.:-)
任何建议将不胜感激.
谢谢.
我正在玩我的 Raspberry Pi GPIO。我将 4 个开关连接到 GPIO。
我要实现的功能是
按住开关1。停止当前电影,播放M01.mp4。
按住开关2。停止当前电影,播放M02.mp4。
...
如果没有按住开关,播放器 M00.mp4 将循环播放。
我只学习了 3 天的 Python。我非常感谢您可以帮助我提供详细代码。
Popen.Terminate() 或 Kill() 可以杀死scratch,为什么不能杀死omxplayer?
#!/usr/bin/env python2.7
import subprocess,time
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(25, GPIO.IN)
GPIO.setup(24, GPIO.IN)
GPIO.setup(23, GPIO.IN)
GPIO.setup(22, GPIO.IN)
while True:
if GPIO.input(25) == True:
time.sleep(1)
playProcess=subprocess.Popen(['scratch'],stdout=True)
#Terminate() or Kill() can kill scratch.
playProcess=subprocess.Popen(['omxplayer','/home/pi/pyStudy/DSCF4021.MP4'],stdout=True)
#Terminate() or Kill() CAN?NOT kill scratch.
time.sleep(5)
playProcess.terminate()
Run Code Online (Sandbox Code Playgroud) 正如问题所述,我想知道控制器是否可以同时检测两个按钮按下.
我是控制器编程的新手,从基础知识开始 - 闪烁的LED,然后移动到按钮,现在尝试按下按钮.当两个按钮被按在一起时,我想设置一些标志.
但据我所知,在这种情况下只会调用一个ISR,从而检测到一次按下.我们怎样才能做到这一点......
(在某些电子设备中,当我们按下某些按钮时它具有特定的功能,例如当同时按下3个适当的按钮时重置电话)
梅西
我一直在努力使用一个脚本,将Pi的BCM引脚17,27和10打开1秒,然后关闭1秒,依次100次.当我运行脚本时,LED1将打开,然后它会关闭,程序会因此错误而关闭:
Traceback (most recent call last):
File "LedBlink.py", line 47, in <module>
LED2Blink()
File "LedBlink.py", line 27, in LED2Blink
GPIO.setup(LED2, GPIO.OUT)
RuntimeError: Please set pin numbering mode using GPIO.setmode(GPIO.BOARD) or GPIO.setmode(GPIO.BCM)
import RPi.GPIO as GPIO
import time
LED1 = 17
LED2 = 27
LED3 = 10
GPIO.setmode(GPIO.BCM)
def LED1Blink():
GPIO.setup(LED1, GPIO.OUT)
GPIO.output(LED1,True)
time.sleep(1)
GPIO.output(LED1,False)
time.sleep(1)
GPIO.cleanup()
def LED2Blink():
GPIO.setup(LED2, GPIO.OUT)
GPIO.output(LED2,True)
time.sleep(1)
GPIO.output(LED2,False)
time.sleep(1)
GPIO.cleanup()
def LED3Blink():
GPIO.setup(LED3, GPIO.OUT)
GPIO.output(LED3,True)
time.sleep(1)
GPIO.output(LED3,False)
time.sleep(1)
GPIO.cleanup()
i = 0
while i < …Run Code Online (Sandbox Code Playgroud) 我有一台Cincoze DE-1000工业 PC,它配备了Fintek F81866A芯片组。我必须管理 DIO 引脚才能从物理按钮读取输入并设置开/关 LED。我有 C++ 编程的经验,但不是低级/硬件级的。
在 PC 随附的文档中,有以下 C 代码:
#define AddrPort 0x4E
#define DataPort 0x4F
//<Enter the Extended Function Mode>
WriteByte(AddrPort, 0x87)
WriteByte(AddrPort, 0x87) //Must write twice to entering Extended mode
//<Select Logic Device>
WriteByte(AddrPort, 0x07)
WriteByte(DataPort, 0x06)
//Select logic device 06h
//<Input Mode Selection> //Set GP74 to GP77 input mode
WriteByte(AddrPort, 0x80) //Select configuration register 80h
WriteByte(DataPort, 0x0X)
//Set (bit 4~7) = 0 to select GP 74~77 as Input mode. …Run Code Online (Sandbox Code Playgroud) 我正在重写我的代码,从 sysfs 接口更改为 libgpiod。在请求一条线之后,方向是固定的,我需要弄清楚如何动态切换这条线的方向以在输入和输出之间进行更改。目前我看不到正确的方法,进一步的请求被拒绝。
当我以不同的方向进行请求-使用-释放-再次请求的循环时,这对我来说似乎是错误的开销。
我更喜欢有一个函数调用,它改变从内到外的方向,反之亦然。
有什么事情是我监督过的吗?
嗨,大家好,
我一直通过分压器(2个电阻)将5V输入连接到我的Raspberry Pi.但我现在想知道为什么?究竟是什么原因?
像"5V - >电阻 - > GPIO"这样的电路是否安全?如果没有,为什么?
非常感谢你.
我正在尝试学习如何使用我的Raspberry Pi做一些很酷的事情.我正试图在我的覆盆子pi上运行带有3.3V gpio引脚的NMOS晶体管.我很确定它能够提供3.3V输出,但我一直都会遇到错误.我检查了我的布线和代码.我没有看到任何问题.请查看下面的代码,如果您发现任何错误,请告诉我.谢谢!
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
GPIO.setup(12,GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(17,GPIO.OUT)
GPIO.output(17,GPIO.HIGH)
while True:
input_state = GPIO.input(12)
if input_state == False:
#command for running 5v/3.3v output below
GPIO.output(17,GPIO.LOW)
time.sleep(3.5)
GPIO.output(17,GPIO.HIGH)
Run Code Online (Sandbox Code Playgroud)
我使用"sudo python myscript.py"运行我的脚本.这是我不断得到的错误:
GPIO.setup(17,GPIO.OUT)ValueError:在Raspberry Pi上发送的通道无效