Al ejecutar un programa en Python, ¿por qué querría el comando de limpieza cuando utilizo los GPIO?
Comentarios
Responder
Como se menciona en este artículo Conceptos básicos de RPi.GPIO 3 – Cómo salir de los programas GPIO de forma limpia, evitar advertencias y proteger su Pi , uso correcto de GPIO.cleanup (),
El uso correcto de GPIO.cleanup ()
RPi.GPIO proporciona una función incorporada GPIO.cleanup () para limpiar todos los puertos que ha utilizado. Pero tenga muy claro lo que hace. afecta los puertos que haya configurado en el programa actual. Restablece los puertos que ha utilizado en este programa de nuevo al modo de entrada. Esto evita daños por, digamos, una situación en la que tiene un puerto configurado HIGH como salida y lo conecta accidentalmente a GND (LOW), lo que provocaría un cortocircuito en el puerto y posiblemente lo freiría. Las entradas pueden manejar 0V (BAJO) o 3.3V (ALTO), por lo que es más seguro dejar los puertos como entradas.
Espero que aclare sus dudas.
Respuesta
No es necesario que utilice el método de limpieza.
Hasta donde yo sé, solo los módulos Python RPi.GPIO y RPIO.GPIO tienen un método de limpieza. El método de limpieza establece todos los gpios que ha utilizado como entradas y deshabilita los pull-ups / downs internos para esos gpios.
Mi módulo de Python pigpio no tiene un método de limpieza, ni el módulo de Python cableadoPi2 hasta donde yo sé.
Comentarios
- Entonces, ¿cuál es el propósito del comando de limpieza?
- @Human I Si ' no creo que haya mucho propósito, ' habría agregado un método de este tipo si creyera que era necesario. dastaan en su respuesta ha señalado el razonamiento utilizado por el autor de RPi.GPIO. Puede ser más una inclinación filosófica, supongo que los usuarios tienen una razón para hacer lo que hacen o no ' no hacen. Si quieren dejar un gpio como entrada después de que finalice el programa, deben configurarlo como entrada.
Responder
Me he encontrado con algunos problemas al utilizar GPIO, principalmente relacionados con intentar cambiar los modos y las direcciones de los pines que ya se han establecido en una sesión anterior. Por ejemplo, a veces, si ejecuto un programa que establece los pines para la salida y luego ejecuto un programa que establece los mismos pines para la entrada sin reiniciar el pi, recibo un montón de advertencias (como «RunTimeWarning: este canal ya está en usar»). Esto es especialmente problemático cuando se llaman a varias funciones relacionadas con GPIO desde un solo programa, ya que a veces el programa falla.
El uso del comando de limpieza antes o después de cambiar la configuración de GPIO elimina las advertencias y permite que el código se ejecute sin problemas sin que se produzcan advertencias de configuración de GPIO.
Cleanup()
. Parece que laGPIO.cleanup()
está disponible porque la funcionalidad de Python mantiene un registro de cambios para limpiar esos cambios. Consulte raspberrypi.stackexchange.com/questions/44807/ …