无法读取GPIO引脚状态
我一直在尝试读取树莓派上一个输出GPIO引脚的当前状态,但一直没有成功。
代码:
#!/usr/bin/python
import RPi.GPIO as GPIO
import time
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(4, GPIO.OUT)
while True:
if GPIO.output(4) == True:
print "pin is high"
else:
print "pin is low"
time.sleep(0.500)
我总是收到一个错误提示,告诉我在if语句的第一行需要两个参数。如果我提供了两个参数,结果就是引脚变为高电平,并且循环中继续打印。我相信我快成功了,但就是搞不定。提前感谢任何帮助!
2 个回答
0
我猜你需要把
GPIO.setup(4, GPIO.OUT)
改成
GPIO.setup(4, GPIO.IN)
如果你想从中读取数据的话。
GPIO引脚不能同时进行读和写(它们只能读或者写,不能两者都做)……你必须明确地把它设置为写模式才能写数据,把它设置为读模式才能读数据……
1
我猜你是想确认一下你的引脚状态,而不是测量它。
我遇到的情况是,有两个插件(在Kodi/XBMC下)可以控制一个引脚。在其中一个插件更改设置之前,它需要先读取这个引脚的状态:
if GPIO.input(17) is 1:
line2 = 'The pin is high'
else:
line2 = 'The pin is low'