Відповіді:
Як згадується в цій статті Основи RPi.GPIO 3 - Як чисто вийти з програм GPIO, уникати попереджень і захистити свій Pi , правильне використання GPIO.cleanup (),
Правильне використання GPIO.cleanup ()
RPi.GPIO забезпечує вбудовану функцію GPIO.cleanup () для очищення всіх використовуваних портів. Але будьте дуже зрозумілі, що це робить. Це впливає лише на порти, які ви встановили в поточній програмі. Він скидає будь-які порти, які ви використовували в цій програмі, в режим введення. Це запобігає пошкодженню, скажімо, ситуації, коли у вас є вихід встановлений HIGH як вихід, і ви випадково підключите його до GND (LOW), який би коротко замикав порт і, можливо, його смажив. Входи можуть обробляти або 0 В (НИСЬ), або 3,3 В (ВИСОК), тому безпечніше залишати порти як входи.
Сподіваюся, це очистить ваші сумніви.
Не потрібно використовувати метод очищення.
Наскільки мені відомо, лише модулі RPi.GPIO та RPIO.GPIO Python мають метод очищення. Метод очищення встановлює всі gpios, які ви використовували для введення, і вимикає внутрішні підтягування / падіння для цих gpios.
Мій модуль pigpio Python не має методу очищення, а також модуля wiringPi2 Python, наскільки мені відомо.
У мене виникли декілька проблем із використанням GPIO, в основному стосуються спроб змінити режими та вказувати напрямки, які вже були встановлені в попередньому сеансі. Наприклад, іноді, якщо я запускаю програму, яка встановлює штифти для виведення, а потім я запускаю програму, яка встановлює ті самі штифти для введення, не перезавантажуючи пі, я отримую купу попереджень (наприклад, "RunTimeWarning: Цей канал вже в використовувати "). Це особливо проблематично при виклику різних функцій, пов'язаних з GPIO, з однієї програми, оскільки іноді програма виходить з ладу.
Використання команди очищення перед або після зміни налаштувань GPIO позбавляється від попереджень і дозволяє коду безперебійно працювати без будь-яких попереджень про налаштування GPIO.
Cleanup()
функції. виявляється, щоGPIO.cleanup()
доступний, оскільки функціональність python зберігає журнал змін, щоб очистити ці зміни. Дивіться raspberrypi.stackexchange.com/questions/44807/…