Wanneer ik een programma in Python draai, waarom zou ik dan het opschoningscommando willen als ik de GPIOs gebruik?
Opmerkingen
Antwoord
Zoals vermeld in dit artikel RPi.GPIO basics 3 – Hoe GPIO-programmas netjes afsluiten, waarschuwingen vermijden en je Pi beschermen , correct gebruik van GPIO.cleanup (),
Correct gebruik van GPIO.cleanup ()
RPi.GPIO biedt een ingebouwde functie GPIO.cleanup () om alle poorten die je hebt gebruikt. Maar wees heel duidelijk wat dit doet. Het is alleen f fecteert alle poorten die u in het huidige programma hebt ingesteld. Het zet alle poorten die u in dit programma hebt gebruikt terug naar de invoermodus. Dit voorkomt schade door bijvoorbeeld een situatie waarin je een poort HIGH hebt ingesteld als uitgang en je deze per ongeluk aansluit op GND (LOW), waardoor de poort zou kortsluiten en mogelijk frituren. Ingangen kunnen ofwel 0V (LAAG) of 3,3V (HOOG) aan, dus het is veiliger om poorten als invoer te laten.
Ik hoop dat het je twijfel wegneemt.
Answer
U hoeft de opschoonmethode niet te gebruiken.
Alleen voor zover ik weet de RPi.GPIO- en RPIO.GPIO Python-modules hebben een opschoonmethode. De opschoningsmethode stelt alle gpios in die je hebt gebruikt als invoer en schakelt de interne pull-ups / downs voor die gpios uit.
Mijn pigpio Python-module heeft geen opschoonmethode, en de bedrading Pi2 Python-module ook voor zover ik weet.
Reacties
- Wat is dan het doel van het opruimcommando?
- @Human I don ' niet denk dat er een groot doel is, ik ' had zon methode toegevoegd als ik dacht dat het nodig was. dastaan heeft in zijn antwoord gewezen op de redenering van de RPi.GPIO-auteur. Het is misschien meer een filosofische inslag, ik neem aan dat gebruikers een reden hebben om te doen wat ze doen of niet ' doen. Als ze een gpio als invoer willen achterlaten nadat het programma is voltooid, moeten ze deze als invoer instellen.
Answer
Ik ben een paar problemen tegengekomen bij het gebruik van GPIO, voornamelijk met betrekking tot het wijzigen van modi en pinrichtingen die al in een vorige sessie zijn ingesteld. Als ik bijvoorbeeld een programma uitvoer dat pinnen op uitvoer instelt, en dan een programma uitvoer dat dezelfde pinnen instelt op invoer zonder de pi opnieuw te starten, krijg ik een aantal waarschuwingen (zoals RunTimeWarning: dit kanaal is al in gebruik”). Dit is vooral problematisch bij het aanroepen van verschillende GPIO-gerelateerde functies vanuit een enkel programma, aangezien het programma soms crasht.
Door het cleanup-commando voor of na het wijzigen van GPIO-instellingen te gebruiken, worden de waarschuwingen verwijderd en kan de code soepel worden uitgevoerd zonder dat GPIO-instellingenwaarschuwingen optreden.
Cleanup()
-functie. het lijkt erop dat deGPIO.cleanup()
is beschikbaar omdat de python-functionaliteit een logboek bijhoudt van wijzigingen om die wijzigingen op te schonen. Zie raspberrypi.stackexchange.com/questions/44807/ …