Odpowiedzi:
Jak wspomniano w tym artykule Podstawy RPi.GPIO 3 - Jak w czysty sposób wyjść z programów GPIO, unikać ostrzeżeń i chronić swoje Pi , poprawne użycie GPIO.cleanup (),
Prawidłowe użycie GPIO.cleanup ()
RPi.GPIO zapewnia wbudowaną funkcję GPIO.cleanup () do czyszczenia wszystkich używanych portów. Ale wyjaśnij, co to robi. Wpływa tylko na porty ustawione w bieżącym programie. Resetuje wszystkie porty używane w tym programie z powrotem do trybu wprowadzania. Zapobiega to uszkodzeniom, powiedzmy, w sytuacji, gdy masz port WYSOKI jako wyjście i przypadkowo podłączasz go do GND (NISKI), co spowodowałoby zwarcie portu i prawdopodobnie jego usmażenie. Wejścia mogą obsługiwać 0 V (NISKIE) lub 3,3 V (WYSOKIE), więc bezpieczniej jest pozostawić porty jako wejścia.
Mam nadzieję, że rozwiąże to twoje wątpliwości.
Nie musisz używać metody czyszczenia.
O ile mi wiadomo, tylko moduły Python RPi.GPIO i RPIO.GPIO mają metodę czyszczenia. Metoda czyszczenia ustawia wszystkie gpios, które kiedyś były wejściami, i wyłącza wewnętrzne podciągania / obniżania dla tych gpi.
Mój Pigpio moduł Python nie ma metody czyszczenia, podobnie jak moduł Python wiringPi2, o ile mi wiadomo.
Podczas korzystania z GPIO napotkałem kilka problemów, głównie związanych z próbą zmiany trybów i kierowania pinów, które zostały już ustawione w poprzedniej sesji. Na przykład czasami, gdy uruchamiam program, który ustawia piny na wyjście, a następnie uruchamiam program, który ustawia te same piny na wejście bez restartowania pi, pojawia się kilka ostrzeżeń (takich jak „RunTimeWarning: ten kanał jest już w posługiwać się"). Jest to szczególnie problematyczne w przypadku wywoływania różnych funkcji związanych z GPIO z jednego programu, ponieważ czasami program ulega awarii.
Użycie polecenia czyszczenia przed lub po zmianie ustawień GPIO pozbywa się ostrzeżeń i pozwala na płynne działanie kodu bez ostrzeżeń o ustawieniach GPIO.
Cleanup()
funkcji. wygląda na to, żeGPIO.cleanup()
jest dostępny, ponieważ funkcjonalność Pythona prowadzi dziennik zmian w celu ich wyczyszczenia. Zobacz raspberrypi.stackexchange.com/questions/44807/...