所以我在RPi上运行了一些代码, 在我运行的python脚本的末尾:
finally:
GPIO.cleanup()
并且它有效,在程序期间打开的LED关闭。
但是当我再次运行程序时,led会重新打开,而它应该在程序开始时关闭。为什么会这样,我认为清理方法会将引脚重置为默认值(如果程序没有运行,它会执行此操作)。
如果指示灯熄灭并且我结束程序它会保持关闭...,当我重新运行它时,指示灯仍处于关闭状态,因此如果我结束上一次运行,则指示灯会在程序启动时打开领导开始时的计划。
我错过了什么吗?有什么东西得到保存吗? 有没有办法解决这个问题(除了最后将引脚设置为False)??
自己动手:https://imgur.com/a/YpV81
from time import sleep
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
#uncomment to set led pin to False(this seems to be important)
#GPIO.output(23, False)
try:
while(1):
print("led, should be off")
sleep(1)
GPIO.output(23, True)
print("led, should be on")
sleep(1)
GPIO.output(23, False)
print("led, should be off")
sleep(1)
finally:
print("You ended the program.")
GPIO.cleanup()
运行一次,然后按ctrl + c将其停止,(确保在LED指示灯亮起时按下)然后再次运行程序并观察它是否在指示灯亮起。
编辑: 似乎清理工作没有按照我的想法做到。不管怎样,我得到了答案。