Yanıtlar:
Bu makalede belirtildiği gibi RPi.GPIO temel bilgileri 3 - GPIO programlarından temiz bir şekilde çıkma, uyarılardan kaçınma ve Pi'nizi koruma , GPIO.cleanup () kullanımını doğru kullanma,
GPIO.cleanup () yönteminin doğru kullanımı
RPi.GPIO, kullandığınız tüm bağlantı noktalarını temizlemek için yerleşik bir GPIO.cleanup () işlevi sağlar. Ama bunun ne yaptığını çok açık olun. Yalnızca geçerli programda ayarladığınız bağlantı noktalarını etkiler. Bu programda kullandığınız portları giriş moduna sıfırlar. Bu, örneğin, çıkış olarak YÜKSEK olarak ayarlanmış bir bağlantı noktasına sahip olduğunuz ve yanlışlıkla bağlantı noktasını kısa devre yapacak ve muhtemelen kızartacak olan GND'ye (DÜŞÜK) bağladığınız bir durumun zarar görmesini önler. Girişler 0V (DÜŞÜK) veya 3,3V (YÜKSEK) işleyebilir, bu nedenle bağlantı noktalarını giriş olarak bırakmak daha güvenlidir.
Umarım şüpheni temizler.
Temizleme yöntemini kullanmanız gerekmez.
Bildiğim kadarıyla sadece RPi.GPIO ve RPIO.GPIO Python modüllerinin bir temizleme yöntemi var. Temizleme yöntemi, önceden kullandığınız tüm gpios'ları giriş olarak ayarlar ve bu gpioslar için dahili pull-up'ları / çıkışları devre dışı bırakır.
Benim pigpio Python modülümün temizleme yöntemi yok, bildiğim kadarıyla wiringPi2 Python modülü de yok.
Özellikle önceki bir oturumda ayarlanmış modları ve pin yönlerini değiştirmeye çalışmakla ilgili olarak GPIO'yu kullanırken birkaç sorunla karşılaştım. Örneğin, bazen pinleri çıkışa ayarlayan bir program çalıştırırsam ve daha sonra pi'yi yeniden başlatmadan girişe aynı pinleri ayarlayan bir program çalıştırırsam, bir sürü uyarı alırım (örneğin "RunTimeWarning: Bu kanal zaten ) "kullanın. Bu, özellikle program çöktüğü için, GPIO ile ilgili çeşitli işlevleri tek bir programdan çağırırken özellikle sorunludur.
Temizleme komutunu GPIO ayarlarını değiştirmeden önce veya sonra kullanmak uyarılardan kurtulur ve GPIO ayarları uyarıları olmadan kodun sorunsuz bir şekilde çalışmasını sağlar.
Cleanup()
işlevi yoktur.GPIO.cleanup()
python işlevselliği bu değişiklikleri temizlemek için bir değişiklik günlüğü tuttuğu için kullanılabilir olduğu anlaşılıyor . Bkz. Raspberrypi.stackexchange.com/questions/44807/…