class Pin – controlo de pinos de E/S¶
Um objeto Pin representa um único GPIO no STM32. Fornece métodos para configurar o modo do pino (entrada, saída, função alternativa, analógico) e resistências de pull, e para ler ou acionar o nível digital. Para amostragem analógica consulte pyb.ADC; para enumeração de funções alternativas consulte PinAF.
Todos os pinos do conector estão predefinidos como pyb.Pin.board.<name>. A maioria das OpenMV Cams STM32 expõe os pinos de E/S 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 par porta/pino STM32 subjacente também pode ser endereçado diretamente através de pyb.Pin.cpu.<name>, designado pela letra da porta seguida do número do pino (por exemplo pyb.Pin.cpu.A0). O mapeamento de cada pino do conector OpenMV para um pino da CPU é fixo pela placa.
Os pinos também podem ser selecionados pelo nome em formato de cadeia de caracteres:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Podem ser adicionados nomes definidos pelo utilizador 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")
Em alternativa, pode ser instalada uma função de mapeamento personalizada 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 ao mapeador.
A ordem seguinte determina como um nome é mapeado para um pino físico:
É passado diretamente um objeto
Pin.A função de mapeamento fornecida pelo utilizador devolve um pino.
O dicionário fornecido pelo utilizador contém uma chave correspondente.
A cadeia de caracteres corresponde a um nome de pino do conector (
P0,P1, …).A cadeia de caracteres corresponde a um nome de porta/pino da CPU (
A0,B7, …).
Execute 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 forem dados argumentos adicionais, estes são encaminhados 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 ativar ou desativar).
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 como entrada;Pin.OUT_PP- configura o pino como saída, com controlo push-pull;Pin.OUT_OD- configura o pino como saída, com controlo de dreno aberto;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, dreno aberto;Pin.ANALOG- configura o pino como analógico.
pull pode ser um dos seguintes:
Pin.PULL_NONE- sem resistências de pull-up ou pull-down;Pin.PULL_UP- ativa a resistência de pull-up;Pin.PULL_DOWN- ativa a resistência de pull-down.
Quando um pino tem o modo de pull
Pin.PULL_UPouPin.PULL_DOWNativado, esse pino é ligado a 3V3 ou GND, respetivamente, através de uma resistência interna (tipicamente dezenas de kOhm – consulte as características elétricas na folha de dados do STM32 para a OpenMV Cam em uso).value se não for None irá definir o valor de saída da porta antes de ativar o pino.
alt pode ser usado quando o modo é
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 denominadoaf, que ainda pode ser usado se necessário.
- value(value: Any | None = None) int | None¶
Obtém ou define o nível lógico digital do pino:
Sem argumento, devolve 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 a alto, caso contrário é colocado a baixo.
- af() int¶
Devolve a função alternativa atualmente configurada do pino. O inteiro devolvido corresponderá a uma das constantes permitidas para o argumento af da função init.
Constantes¶