Kiedy uruchamiam program w Pythonie, dlaczego miałbym chcieć polecenie czyszczenia podczas korzystania z GPIO?
Komentarze
Odpowiedź
Jak wspomniano w ten artykuł Podstawy RPi.GPIO 3 – Jak czysto wyjść z programów GPIO, unikać ostrzeżeń i chronić swoje Pi , poprawne użycie GPIO.cleanup (),
Poprawne użycie GPIO.cleanup ()
RPi.GPIO udostępnia wbudowaną funkcję GPIO.cleanup () do czyszczenia wszystkich portów, z których korzystałeś. Ale bądź bardzo jasny, co to robi. To tylko af wykrywa wszystkie porty ustawione w bieżącym programie. Resetuje wszystkie porty używane w tym programie z powrotem do trybu wejściowego. Zapobiega to uszkodzeniom, powiedzmy, gdy masz port ustawiony na WYSOKI jako wyjście i przypadkowo podłączysz go do GND (LOW), co spowoduje zwarcie portu i prawdopodobnie go usmaży. 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 to rozwiąże Twoje wątpliwości.
Odpowiedź
Nie musisz używać metody czyszczenia.
O ile mi wiadomo, tylko moduły RPi.GPIO i RPIO.GPIO Python mają metodę czyszczenia. Metoda czyszczenia ustawia wszystkie gpios, których użyłeś jako dane wejściowe i wyłącza wewnętrzne podciągnięcia / spadki dla tych gpios.
Mój moduł Pigpio Python nie ma metody czyszczenia, podobnie jak moduł WirePi2 Python o ile wiem.
Komentarze
- Jaki jest zatem cel polecenia czyszczenia?
- @Human I nie ' nie sądzę, że ma to jakiś cel, ' d dodałem taką metodę, jeśli uważałem, że jest potrzebna. dastaan w swojej odpowiedzi wskazał na rozumowanie zastosowane przez autora RPi.GPIO. Może to być bardziej skłonność filizoficzna, zakładam, że użytkownicy mają powód, aby robić to, co robią lub nie ' nie robią. Jeśli chcą zostawić gpio jako dane wejściowe po zakończeniu programu, powinni ustawić je jako dane wejściowe.
Odpowiedź
Podczas korzystania z GPIO napotkałem kilka problemów, głównie związanych z próbą zmiany trybów i kierunków pinów, które zostały już ustawione w poprzedniej sesji. Na przykład, czasami, jeśli uruchamiam program, który ustawia szpilki na wyjście, a następnie uruchamiam program, który ustawia te same szpilki na wejście bez ponownego uruchamiania pi, otrzymuję kilka ostrzeżeń (takich jak „RunTimeWarning: Ten kanał jest już w posługiwać się”). Jest to szczególnie problematyczne podczas wywoływania różnych funkcji związanych z GPIO z jednego programu, ponieważ czasami program ulega awarii.
Użycie polecenia cleanup przed lub po zmianie ustawień GPIO usuwa ostrzeżenia i pozwala na płynne działanie kodu bez żadnych ostrzeżeń dotyczących ustawień GPIO.
Cleanup()
. Wygląda na to, że jest dostępny, ponieważ funkcja Pythona prowadzi dziennik zmian w celu oczyszczenia tych zmian. Zobacz raspberrypi.stackexchange.com/questions/44807/ …