【问题标题】:Get function of GPIO pin?获取GPIO引脚的功能?
【发布时间】:2014-12-20 06:55:42
【问题描述】:

我目前正在尝试为我的 Raspberry Pi 的 GPIO 引脚构建一个基于 Web 的小型接口。 我正在使用内置的 Python RPi.GPIO 库。

我们的想法是查看所有 GPIO 引脚的功能和当前状态 - 如果引脚为 GPIO.OUT,则应显示开/关,如果引脚为 GPIO.IN,则应测量输入并显示。

我几乎所有东西都准备好了,除了要查明一个引脚是否设置为GPIO.INGPIO.OUT。 我一直在这个地方搜索,谷歌和任何我能得到的东西,但没有运气(主要是找到解释如何阅读GPIO.INGPIO.OUT状态的教程)。

是否有可能(使用RPi.GPIO 库)找出一个引脚是GPIO.IN 还是GPIO.OUT?如果是这样 - 如何?

【问题讨论】:

    标签: python raspberry-pi gpio


    【解决方案1】:

    它只是文件系统中的一个文件

    类似

    print open("/sys/class/gpio/gpio1/direction").read()
    

    您可以通过 ssh 进入并ls 目录来查看文件

    我想你可以做这样的事情

    class GPIOData:
        directions={}
        def __call__(self,pin,direction=None):
            GPIOData.directions[pin]=direction
            GPIO.setup(pin,direction)
        def getPinDirection(self,pin):
            return GPIOData.directions[pin]
        def __init__(self,*args):
            pass
    
    class GPIOSetup(object):
        __metaclass__ = GPIOData
    
    
    
    GPIOSetup(6,7)
    print "GOT:",GPIOSetup.getPinDirection(6)
    

    【讨论】:

    • 我一直在寻找那个解决方案,但我在/sys/class/gpio 中没有/sys/class/gpio/gpioX 文件夹...我只有exportunexportgpiochip0 - 这就是为什么我希望在RPi.GPIO 库中有一个冷的功能。
    • 试试echo 123 > /sys/class/gpio/export .... 你可能需要超级用户(其中​​ 123 是所需的 gpio123)
    • 或者真的……你为什么要检查方向?这可能是一个更相关的问题
    • 我尝试使用 8(物理引脚)和 14(bcm(我认为它被称为?)引脚) - 两者都给了我 echo: write error: Device or resource busy... 即使我停止了使用该引脚的网络服务.
    • 嗯,这是出乎意料的 - 我现在有 gpio8gpio14 文件夹,但是当我打开/关闭引脚时它们似乎都没有改变(尝试使用 tail -f gpio8/direction gpio14/direction , 没啥事儿)。如果引脚设置为GPIO.INGPIO.OUT,我想知道能够在我的界面中显示的方向:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2021-07-19
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多