如何通过Python检查GPIO引脚的当前状态?

时间:2016-03-20 14:02:33

标签: raspberry-pi state gpio

我想在启动时检查GPIO引脚的状态,一个porgram。例如,我有另一个改变引脚状态的程序(如果低变为hihg,如果高变为低)。而现在我想写程序将读取当前状态的引脚。但是当我这样做的时候:

import RPi.GPIO as GP
GP.setmode(GP.BOARD)
NRpin=40
GP.setup(NRpin,GP.OUT) #now GPIO state is set to default (0)

当我在做的时候

 GP.setup(NRpin,GP.OUT)

当前状态正在替换默认状态(低)。

问题是:如果有办法检查当前状态吗?

我知道我可以这样做:

import RPi.GPIO as GP
import subprocess as sub
a=sub.check_output(['sudo', 'gpio', '-g','read','21'])
print a

但是如果我没有在Raspbeery Pi上安装wirespi怎么办? (gpio命令在wiringpi包中)。

我想它看起来像:

if GP.output(NRpin,1)==True:
  print "HI"
elif GP.output(NRpin,0)==True:
  print "LO"

但没有:

GP.setup(NRpin,GP.OUT)

我无法使用该代码。

给我一​​些建议,prease:)

1 个答案:

答案 0 :(得分:0)

使用功能GPIO.gpio_function(pin),您可以确定是否将引脚设置为INPUT或OUTPUT。

要检查INPUT是HIGH还是LOW,可以使用if(GPIO.input(channel)==GPIO.LOW))if(GPIO.input(channel)==GPIO.HIGH))