GPIO.cleanup()无法正常工作吗?

时间:2018-03-15 14:11:11

标签: python raspberry-pi

所以我在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指示灯亮起时按下)然后再次运行程序并观察它是否在指示灯亮起。

编辑: 似乎清理工作没有按照我的想法做到。不管怎样,我得到了答案。

0 个答案:

没有答案