为什么要清理GPIO引脚?


Answers:


14

如本文所述,RPi.GPIO基础知识3 –如何干净地退出GPIO程序,避免警告并保护您的Pi,正确使用GPIO.cleanup(),

正确使用GPIO.cleanup()

RPi.GPIO提供内置函数GPIO.cleanup()来清理您已使用的所有端口。但是要非常清楚这是做什么的。它仅影响您在当前程序中设置的任何端口。它将您在该程序中使用的所有端口重设为输入模式。例如,这可以防止因端口设置为高电平而将输出端口设置为高电平而意外将其连接至GND(LOW)的情况,从而导致端口短路并炸掉。输入可以处理0V(LOW)或3.3V(HIGH),因此将端口保留为输入更为安全。

希望它清除您的疑问。


5

您不必使用清除方法。

据我所知,只有RPi.GPIO和RPIO.GPIO Python模块具有清除方法。cleanup方法将所有曾经用作输入的gpios设置为输入,并禁用这些gpios的内部上拉/下拉。

据我所知,我的pigpio Python模块没有清理方法,wireingPi2 Python模块也没有。


那么,清理命令的目的是什么?
人类

1
@人我认为没有什么目的,如果我认为有必要,可以添加这样的方法。dastaan​​在他的回答中指出了RPi.GPIO作者所使用的推理。我认为用户有理由去做他们做或不做的事情,这可能更多是出于哲学上的考虑。如果他们希望在程序完成后保留gpio作为输入,则应将其设置为输入。
2015年

1

我在使用GPIO时遇到了一些问题,主要与尝试更改上一个会话中已设置的模式和引脚方向有关。例如,有时如果我运行一个将引脚设置为输出的程序,然后又运行了一个将引脚设置为输入的程序而没有重新启动pi,则会收到一堆警告(例如“ RunTimeWarning:此通道已经在采用”)。当从单个程序调用各种与GPIO相关的功能时,这尤其成问题,因为有时程序会崩溃。

在更改GPIO设置之前或之后使用cleanup命令可以消除警告,并允许代码平稳运行,而不会发生任何GPIO设置警告。

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.