class Pin – contrôle des broches d’E/S¶
Un objet Pin représente une seule broche GPIO du STM32. Il fournit des méthodes pour configurer le mode de la broche (entrée, sortie, fonction alternée, analogique) et les résistances de tirage, ainsi que pour lire ou imposer son niveau logique. Pour l’échantillonnage analogique, voir pyb.ADC ; pour l’énumération des fonctions alternées, voir PinAF.
Toutes les broches du connecteur sont prédéfinies sous la forme pyb.Pin.board.<name>. La plupart des OpenMV Cam STM32 exposent les broches d’E/S du connecteur P0 … P9 ; l’OpenMV Cam N6 expose des broches supplémentaires jusqu’à P18
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
La broche/port STM32 sous-jacente peut aussi être adressée directement via pyb.Pin.cpu.<name>, nommée par la lettre du port suivie du numéro de broche (par exemple pyb.Pin.cpu.A0). La correspondance entre chaque broche du connecteur OpenMV et une broche du CPU est fixée par la carte.
Les broches peuvent également être sélectionnées par leur nom sous forme de chaîne
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Des noms définis par l’utilisateur peuvent être ajoutés avec Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
et interrogés en retour
pin = pyb.Pin("LeftMotorDir")
Une fonction de correspondance personnalisée peut également être installée avec Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
ainsi un appel à pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) transmet "LeftMotorDir" directement à la fonction de correspondance.
L’ordre suivant détermine comment un nom est associé à une broche physique :
Un objet
Pinest passé directement.La fonction de correspondance fournie par l’utilisateur retourne une broche.
Le dictionnaire fourni par l’utilisateur contient une clé correspondante.
La chaîne correspond à un nom de broche de carte (
P0,P1, …).La chaîne correspond à un nom de port/broche du CPU (
A0,B7, …).
Appelez pyb.Pin.debug(True) pour afficher des informations de diagnostic sur la manière dont chaque objet est associé à une broche.
Constructeurs¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Crée un nouvel objet Pin associé à l”
iddonné. Si des arguments supplémentaires sont fournis, ils sont transmis àPin.init()pour configurer la broche.Méthodes de classe¶
- classmethod debug(state: bool | None = None) bool | None¶
Obtient ou définit l’état de débogage (
TrueouFalsepour activé ou désactivé).
Méthodes¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Initialise la broche :
mode peut être l’une des valeurs suivantes :
Pin.IN- configure la broche en entrée ;Pin.OUT_PP- configure la broche en sortie, avec commande push-pull ;Pin.OUT_OD- configure la broche en sortie, avec commande à drain ouvert ;Pin.ALT- configure la broche en fonction alternée, entrée ou sortie ;Pin.AF_PP- configure la broche en fonction alternée, push-pull ;Pin.AF_OD- configure la broche en fonction alternée, à drain ouvert ;Pin.ANALOG- configure la broche en analogique.
pull peut être l’une des valeurs suivantes :
Pin.PULL_NONE- aucune résistance de tirage haut ou bas ;Pin.PULL_UP- active la résistance de tirage haut ;Pin.PULL_DOWN- active la résistance de tirage bas.
Lorsqu’une broche a le mode de tirage
Pin.PULL_UPouPin.PULL_DOWNactivé, cette broche est tirée respectivement vers 3V3 ou GND par une résistance interne (typiquement de quelques dizaines de kOhm – voir les caractéristiques électriques dans la fiche technique du STM32 de l’OpenMV Cam utilisée).value, s’il n’est pas None, définira la valeur de sortie du port avant d’activer la broche.
alt peut être utilisé lorsque le mode est
Pin.ALT,Pin.AF_PPouPin.AF_ODpour définir l’index ou le nom de l’une des fonctions alternées associées à une broche. Cet argument s’appelait auparavantaf, qui peut encore être utilisé si nécessaire.
- value(value: Any | None = None) int | None¶
Obtient ou définit le niveau logique numérique de la broche :
Sans argument, retourne 0 ou 1 selon le niveau logique de la broche.
Avec
valuefourni, définit le niveau logique de la broche.valuepeut être tout ce qui se convertit en booléen. S’il se convertit enTrue, la broche est mise à l’état haut, sinon elle est mise à l’état bas.
- af() int¶
Retourne la fonction alternée actuellement configurée de la broche. L’entier retourné correspondra à l’une des constantes autorisées pour l’argument af de la fonction init.
Constantes¶