Ответы:
Как уже упоминалось в этой статье, Основы RPi.GPIO 3 - Как правильно выходить из программ GPIO, избегать предупреждений и защищать свой Pi , правильно использовать GPIO.cleanup (),
Правильное использование GPIO.cleanup ()
RPi.GPIO предоставляет встроенную функцию GPIO.cleanup () для очистки всех используемых вами портов. Но очень ясно, что это делает. Это влияет только на любые порты, которые вы установили в текущей программе. Он сбрасывает все порты, которые вы использовали в этой программе, обратно в режим ввода. Это предотвращает повреждение, скажем, в ситуации, когда у вас установлен порт HIGH в качестве выхода, и вы случайно подключаете его к GND (LOW), что приведет к короткому замыканию порта и, возможно, к его зажарению. Входы могут обрабатывать 0 В (НИЗКИЙ) или 3,3 В (ВЫСОКИЙ), поэтому безопаснее оставить порты в качестве входов.
Надеюсь, это очистит ваши сомнения.
Вам не нужно использовать метод очистки.
Насколько мне известно, только модули RPi.GPIO и RPIO.GPIO Python имеют метод очистки. Метод очистки устанавливает все gpi, которые вы использовали в качестве входных данных, и отключает внутренние подтяжки / спады для этих gpi.
Мой модуль Python pigpio не имеет метода очистки, как и модуль Python wiringPi2, насколько я знаю.
Я столкнулся с несколькими проблемами при использовании GPIO, в основном касающимися попыток изменить режимы и направления выводов, которые уже были установлены в предыдущем сеансе. Например, иногда, если я запускаю программу, которая устанавливает вывод для вывода, а затем запускаю программу, которая устанавливает те же выводы для ввода без перезапуска pi, я получаю кучу предупреждений (например, «RunTimeWarning: этот канал уже находится в использовать "). Это особенно проблематично при вызове различных связанных с GPIO функций из одной программы, так как иногда происходит сбой программы.
Использование команды очистки до или после изменения настроек GPIO избавляет от предупреждений и позволяет программному обеспечению работать без каких-либо предупреждений о настройках GPIO.
Cleanup()
функции. похоже, чтоGPIO.cleanup()
он доступен, потому что функциональность python ведет журнал изменений, чтобы очистить эти изменения. См raspberrypi.stackexchange.com/questions/44807/...