class Pin – controle de pinos de I/O¶
Um objeto Pin representa um único GPIO no STM32. Ele fornece métodos para configurar o modo do pino (entrada, saída, função alternativa, analógico) e os resistores de pull, além de ler ou acionar seu nível digital. Para amostragem analógica veja pyb.ADC; para a enumeração de funções alternativas veja PinAF.
Todos os pinos do header são predefinidos como pyb.Pin.board.<name>. A maioria das OpenMV Cams STM32 expõe os pinos do header de I/O P0 … P9; a OpenMV Cam N6 expõe pinos adicionais até P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
O port/pin subjacente do STM32 também pode ser endereçado diretamente através de pyb.Pin.cpu.<name>, nomeado como a letra do port seguida pelo número do pino (por exemplo pyb.Pin.cpu.A0). O mapeamento de cada pino do header da OpenMV para um pino da CPU é fixo na placa.
Os pinos também podem ser selecionados por nome em string:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Nomes definidos pelo usuário podem ser adicionados com Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
e consultados de volta:
pin = pyb.Pin("LeftMotorDir")
Alternativamente, uma função de mapeamento personalizada pode ser instalada com Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
assim, uma chamada a pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) passa "LeftMotorDir" diretamente para o mapeador.
A ordem a seguir determina como um nome é mapeado para um pino físico:
Um objeto
Piné passado diretamente.A função de mapeamento fornecida pelo usuário retorna um pino.
O dicionário fornecido pelo usuário contém uma chave correspondente.
A string corresponde a um nome de pino da placa (
P0,P1, …).A string corresponde a um nome de port/pin da CPU (
A0,B7, …).
Chame pyb.Pin.debug(True) para imprimir informações de diagnóstico sobre como cada objeto é mapeado para um pino.
Construtores¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Cria um novo objeto Pin associado ao
idfornecido. Se argumentos adicionais forem dados, eles são repassados paraPin.init()para configurar o pino.Métodos de classe¶
- classmethod debug(state: bool | None = None) bool | None¶
Obtém ou define o estado de depuração (
TrueouFalsepara ligado ou desligado).
Métodos¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Inicializa o pino:
mode pode ser um dos seguintes:
Pin.IN- configura o pino para entrada;Pin.OUT_PP- configura o pino para saída, com controle push-pull;Pin.OUT_OD- configura o pino para saída, com controle open-drain;Pin.ALT- configura o pino para função alternativa, entrada ou saída;Pin.AF_PP- configura o pino para função alternativa, push-pull;Pin.AF_OD- configura o pino para função alternativa, open-drain;Pin.ANALOG- configura o pino para analógico.
pull pode ser um dos seguintes:
Pin.PULL_NONE- sem resistores de pull-up ou pull-down;Pin.PULL_UP- habilita o resistor de pull-up;Pin.PULL_DOWN- habilita o resistor de pull-down.
Quando um pino tem o modo de pull
Pin.PULL_UPouPin.PULL_DOWNhabilitado, esse pino é puxado para 3V3 ou GND respectivamente através de um resistor interno (tipicamente dezenas de kOhm – veja as características elétricas no datasheet do STM32 da OpenMV Cam em uso).value se não for None definirá o valor de saída do port antes de habilitar o pino.
alt pode ser usado quando o modo for
Pin.ALT,Pin.AF_PPouPin.AF_ODpara definir o índice ou nome de uma das funções alternativas associadas a um pino. Este argumento era anteriormente chamado deaf, que ainda pode ser usado se necessário.
- value(value: Any | None = None) int | None¶
Obtém ou define o nível de lógica digital do pino:
Sem argumento, retorna 0 ou 1 dependendo do nível lógico do pino.
Com
valuefornecido, define o nível lógico do pino.valuepode ser qualquer coisa que converta para um booleano. Se converter paraTrue, o pino é colocado em nível alto, caso contrário é colocado em nível baixo.
- af() int¶
Retorna a função alternativa atualmente configurada do pino. O inteiro retornado corresponderá a uma das constantes permitidas para o argumento af da função init.
Constantes¶