Antworten:
Wie in diesem Artikel erwähnt, RPi.GPIO-Grundlagen 3 - So beenden Sie GPIO-Programme sauber, vermeiden Warnungen und schützen Ihren Pi . Richtige Verwendung von GPIO.cleanup ().
Richtige Verwendung von GPIO.cleanup ()
RPi.GPIO bietet eine integrierte Funktion GPIO.cleanup (), um alle von Ihnen verwendeten Ports zu bereinigen. Aber sei dir ganz klar, was dies bewirkt. Dies betrifft nur die Ports, die Sie im aktuellen Programm festgelegt haben. Alle in diesem Programm verwendeten Ports werden in den Eingabemodus zurückgesetzt. Dies verhindert beispielsweise Schäden, wenn Sie einen Port auf HIGH als Ausgang eingestellt haben und ihn versehentlich an GND (LOW) anschließen, wodurch der Port kurzgeschlossen und möglicherweise gebraten würde. Die Eingänge können entweder 0 V (LOW) oder 3,3 V (HIGH) verarbeiten, daher ist es sicherer, Ports als Eingänge zu belassen.
Hoffe, es klärt deinen Zweifel.
Sie müssen die Bereinigungsmethode nicht verwenden.
Soweit mir bekannt ist, verfügen nur die Python-Module RPi.GPIO und RPIO.GPIO über eine Bereinigungsmethode. Die Bereinigungsmethode setzt alle gpios, die Sie als Eingaben verwendet haben, und deaktiviert die internen Pullups / Downs für diese gpios.
Mein Pigpio-Python-Modul verfügt weder über eine Bereinigungsmethode noch über das WiringPi2-Python-Modul, soweit mir bekannt ist.
Bei der Verwendung von GPIO sind einige Probleme aufgetreten, hauptsächlich im Zusammenhang mit dem Versuch, Modi und Pin-Richtungen zu ändern, die bereits in einer früheren Sitzung festgelegt wurden. Wenn ich beispielsweise manchmal ein Programm ausführe, das die Pins für die Ausgabe festlegt, und dann ein Programm, das die gleichen Pins für die Eingabe festlegt, ohne den pi neu zu starten, erhalte ich eine Reihe von Warnungen (z. B. "RunTimeWarning: Dieser Kanal ist bereits in" verwenden"). Dies ist besonders problematisch, wenn verschiedene GPIO-bezogene Funktionen von einem einzigen Programm aus aufgerufen werden, da das Programm manchmal abstürzt.
Wenn Sie den Befehl cleanup entweder vor oder nach dem Ändern der GPIO-Einstellungen verwenden, werden die Warnungen beseitigt, und der Code kann problemlos ausgeführt werden, ohne dass Warnungen zu GPIO-Einstellungen auftreten.
Cleanup()
Funktion. Es scheint, dass dasGPIO.cleanup()
verfügbar ist, da die Python-Funktionalität ein Protokoll der Änderungen führt, um diese Änderungen zu bereinigen. Siehe raspberrypi.stackexchange.com/questions/44807/…