Proč bych měl při spuštění programu v Pythonu chtít příkaz vyčištění při použití GPIO?

Komentáře

Odpověď

Jak je uvedeno v tento článek Základy RPi.GPIO 3 – Jak čistě ukončit programy GPIO, vyhnout se varování a chránit své Pi , správné používání GPIO.cleanup (),

Správné použití GPIO.cleanup ()

RPi.GPIO poskytuje integrovanou funkci GPIO.cleanup () k vyčištění všech porty, které jste použili. Ale buďte velmi jasní, co to dělá. Je to jen af ovlivní všechny porty, které jste nastavili v aktuálním programu. Obnoví všechny porty, které jste v tomto programu použili, zpět do režimu zadávání. Tím se zabrání poškození například ze situace, kdy máte jako výstup nastaven port VYSOKÝ a omylem ho připojíte k GND (NÍZKÝ), což by port zkratovalo a případně smažilo. Vstupy mohou zpracovávat buď 0 V (NÍZKÉ) nebo 3,3 V (VYSOKÉ), takže je bezpečnější ponechat porty jako vstupy.

Doufám, že to vyjasní vaše pochybnosti.

Odpověď

Nemusíte používat metodu čištění.

Pokud vím jen pythonovské moduly RPi.GPIO a RPIO.GPIO mají čisticí metodu. Metoda vyčištění nastaví všechny gpios, které jste zvykli být vstupy, a zakáže interní pull-up / downs pro tyto gpios.

Můj pythonovský modul pigpio nemá metodu vyčištění, ani modul wiringPi2 Python pokud vím.

Komentáře

  • Jaký je tedy účel příkazu vyčištění?
  • @Human I don ' si nemyslím, že to má velký smysl, přidal jsem takovou metodu, pokud jsem si myslel, že je to potřeba, ' d. dastaan ve své odpovědi poukázal na úvahy použité autorem RPi.GPIO. Může to být spíše philisophical Bent, předpokládám, že uživatelé mají důvod dělat to, co dělají, nebo to nedělají '. Pokud chtějí po dokončení programu ponechat gpio jako vstup, měli by jej nastavit jako vstup.

Odpovědět

Při používání GPIO jsem narazil na několik problémů, které se týkaly hlavně pokusů o změnu režimů a směrování pinů, které již byly nastaveny v předchozí relaci. Například někdy, když spustím program, který nastaví piny na výstup, a poté spustím program, který nastaví stejné piny na vstup bez restartování pí, zobrazí se spousta varování (například „RunTimeWarning: This channel is already in použití“). To je obzvláště problematické při volání různých funkcí souvisejících s GPIO z jednoho programu, protože někdy dojde k chybě programu.

Pomocí příkazu cleanup před změnou nastavení GPIO nebo po něm se zbavíte varování a umožníte plynulý běh kódu, aniž by se vyskytla varování ohledně nastavení GPIO.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *