切换设置为输出的GPIO引脚


9

在这里读到我可以使用以下命令切换GPIO引脚设置为在Python中输出的状态:

GPIO.output(LED, not GPIO.input(LED))

LED引脚值在哪里。我可以使用以下代码打开LED:

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
LED = 17
GPIO.setup(LED,GPIO.OUT)
GPIO.output(LED,True)

但是,当我尝试时GPIO.output(LED, not GPIO.input(LED)),将引发以下错误。

RPi.GPIO.WrongDirectionException:尚未设置GPIO通道或方向设置错误

我是否应该以不同于上面的方式设置GPIO通道,或者我引用的站点发布了错误的信息?

Answers:


13

您无法读取输出。只需将引脚的状态存储在变量中即可。

import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
LED = 17
ledState = False
GPIO.setup(LED,GPIO.OUT)

ledState = not ledState
GPIO.output(LED, ledState)

8

尽管在其他地方另有说明,但是您可以通过输入相同的GPIO引脚来读取输出,并获得您刚才设置的返回值:

GPIO.setup(LED_red, GPIO.OUT) #set Pin LED_red as aoutput

GPIO.output(LED_red, GPIO.HIGH) #set Pin LED_red = HIGH (ON)

GPIO.input(LED_red) returns 1 

实际上,您可以读取输出端口。但是请注意,如果您从其他进程执行此操作,然后调用GPIO.cleanup(),则将导致端口状态更改为零。
Diomidis Spinellis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.