class Pin – control de pines de E/S¶
Un objeto Pin representa un único GPIO del STM32. Proporciona métodos para configurar el modo del pin (entrada, salida, función alternativa, analógico) y las resistencias de pull, así como para leer o establecer su nivel digital. Para el muestreo analógico, consulte pyb.ADC; para la enumeración de funciones alternativas, consulte PinAF.
Todos los pines del conector están predefinidos como pyb.Pin.board.<name>. La mayoría de las OpenMV Cam basadas en STM32 exponen los pines del conector de E/S P0 … P9; la OpenMV Cam N6 expone pines adicionales hasta P18:
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
El puerto/pin subyacente del STM32 también puede direccionarse directamente a través de pyb.Pin.cpu.<name>, nombrado con la letra del puerto seguida del número de pin (por ejemplo, pyb.Pin.cpu.A0). La asignación de cada pin del conector OpenMV a un pin de la CPU es fija y la determina la placa.
Los pines también pueden seleccionarse por nombre de cadena:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Se pueden añadir nombres definidos por el usuario con Pin.dict():
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
y consultarse de vuelta:
pin = pyb.Pin("LeftMotorDir")
Alternativamente, se puede instalar una función de asignación personalizada con Pin.mapper():
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
de modo que una llamada a pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) pasa "LeftMotorDir" directamente a la función de asignación.
El siguiente orden determina cómo se asigna un nombre a un pin físico:
Se pasa directamente un objeto
Pin.La función de asignación proporcionada por el usuario devuelve un pin.
El diccionario proporcionado por el usuario contiene una clave coincidente.
La cadena coincide con un nombre de pin de placa (
P0,P1, …).La cadena coincide con un nombre de puerto/pin de la CPU (
A0,B7, …).
Llame a pyb.Pin.debug(True) para imprimir información de diagnóstico sobre cómo se asigna cada objeto a un pin.
Constructores¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Crea un nuevo objeto Pin asociado al
iddado. Si se proporcionan argumentos adicionales, se reenvían aPin.init()para configurar el pin.Métodos de clase¶
- classmethod debug(state: bool | None = None) bool | None¶
Obtiene o establece el estado de depuración (
TrueoFalsepara activado o desactivado).
Métodos¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Inicializa el pin:
mode puede ser uno de:
Pin.IN- configura el pin como entrada;Pin.OUT_PP- configura el pin como salida, con control push-pull;Pin.OUT_OD- configura el pin como salida, con control de drenaje abierto;Pin.ALT- configura el pin como función alternativa, entrada o salida;Pin.AF_PP- configura el pin como función alternativa, push-pull;Pin.AF_OD- configura el pin como función alternativa, drenaje abierto;Pin.ANALOG- configura el pin como analógico.
pull puede ser uno de:
Pin.PULL_NONE- sin resistencias de pull-up ni pull-down;Pin.PULL_UP- habilita la resistencia de pull-up;Pin.PULL_DOWN- habilita la resistencia de pull-down.
Cuando un pin tiene habilitado el modo de pull
Pin.PULL_UPoPin.PULL_DOWN, ese pin se conecta a 3V3 o GND respectivamente a través de una resistencia interna (típicamente decenas de kOhm – consulte las características eléctricas en la hoja de datos del STM32 de la OpenMV Cam en uso).value, si no es None, establecerá el valor de salida del puerto antes de habilitar el pin.
alt puede utilizarse cuando el modo es
Pin.ALT,Pin.AF_PPoPin.AF_ODpara establecer el índice o el nombre de una de las funciones alternativas asociadas a un pin. Este argumento se llamaba anteriormenteaf, que aún puede utilizarse si es necesario.
- value(value: Any | None = None) int | None¶
Obtiene o establece el nivel lógico digital del pin:
Sin argumentos, devuelve 0 o 1 según el nivel lógico del pin.
Con
valuedado, establece el nivel lógico del pin.valuepuede ser cualquier cosa que se convierta en un booleano. Si se convierte enTrue, el pin se pone a nivel alto; de lo contrario, se pone a nivel bajo.
- af() int¶
Devuelve la función alternativa configurada actualmente para el pin. El entero devuelto coincidirá con una de las constantes permitidas para el argumento af de la función init.
Constantes¶