class Pin – I/O-pinnen besturen¶
Een Pin-object vertegenwoordigt een enkele GPIO op de STM32. Het biedt methoden om de modus van de pin (input, output, alternatieve functie, analoog) en de pull-weerstanden te configureren, en om het digitale niveau ervan te lezen of aan te sturen. Voor analoge bemonstering zie pyb.ADC; voor het opsommen van alternatieve functies zie PinAF.
Alle headerpinnen zijn vooraf gedefinieerd als pyb.Pin.board.<name>. De meeste STM32 OpenMV Cams stellen de I/O-headerpinnen P0 … P9 beschikbaar; de OpenMV Cam N6 stelt extra pinnen tot P18 beschikbaar:
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
De onderliggende STM32-poort/pin kan ook rechtstreeks worden aangesproken via pyb.Pin.cpu.<name>, benoemd als de poortletter gevolgd door het pinnummer (bijvoorbeeld pyb.Pin.cpu.A0). De toewijzing van elke OpenMV-headerpin aan een CPU-pin ligt vast door het board.
Pinnen kunnen ook worden geselecteerd op stringnaam:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Door de gebruiker gedefinieerde namen kunnen worden toegevoegd met Pin.dict()
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
en weer worden opgevraagd:
pin = pyb.Pin("LeftMotorDir")
Als alternatief kan een aangepaste toewijzingsfunctie worden geïnstalleerd met Pin.mapper()
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
zodat een aanroep van pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) "LeftMotorDir" rechtstreeks doorgeeft aan de mapper.
De volgende volgorde bepaalt hoe een naam wordt toegewezen aan een fysieke pin:
Een
Pin-object wordt rechtstreeks doorgegeven.De door de gebruiker opgegeven mapperfunctie retourneert een pin.
De door de gebruiker opgegeven dictionary bevat een overeenkomende sleutel.
De string komt overeen met een boardpinnaam (
P0,P1, …).De string komt overeen met een CPU-poort/pinnaam (
A0,B7, …).
Roep pyb.Pin.debug(True) aan om diagnostische informatie af te drukken over hoe elk object aan een pin wordt toegewezen.
Constructors¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Maak een nieuw Pin-object dat is gekoppeld aan de opgegeven
id. Als er aanvullende argumenten worden opgegeven, worden deze doorgestuurd naarPin.init()om de pin te configureren.Klassemethoden¶
- classmethod debug(state: bool | None = None) bool | None¶
Verkrijg of stel de debugtoestand in (
TrueofFalsevoor aan of uit).
Methoden¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
Initialiseer de pin:
mode kan een van de volgende zijn:
Pin.IN- configureer de pin voor input;Pin.OUT_PP- configureer de pin voor output, met push-pull-besturing;Pin.OUT_OD- configureer de pin voor output, met open-drain-besturing;Pin.ALT- configureer de pin voor alternatieve functie, input of output;Pin.AF_PP- configureer de pin voor alternatieve functie, push-pull;Pin.AF_OD- configureer de pin voor alternatieve functie, open-drain;Pin.ANALOG- configureer de pin voor analoog.
pull kan een van de volgende zijn:
Pin.PULL_NONE- geen pull-up- of pull-down-weerstanden;Pin.PULL_UP- schakel de pull-up-weerstand in;Pin.PULL_DOWN- schakel de pull-down-weerstand in.
Wanneer een pin de pull-modus
Pin.PULL_UPofPin.PULL_DOWNingeschakeld heeft, wordt die pin via een interne weerstand naar respectievelijk 3V3 of GND getrokken (doorgaans enkele tientallen kOhm – zie de elektrische specificaties in het STM32-datasheet voor de gebruikte OpenMV Cam).value zal, indien niet None, de uitgangswaarde van de poort instellen voordat de pin wordt ingeschakeld.
alt kan worden gebruikt wanneer de modus
Pin.ALT,Pin.AF_PPofPin.AF_ODis om de index of naam in te stellen van een van de alternatieve functies die aan een pin zijn gekoppeld. Dit argument heette voorheenafen kan zo nodig nog steeds worden gebruikt.
- value(value: Any | None = None) int | None¶
Verkrijg of stel het digitale logische niveau van de pin in:
Zonder argument wordt 0 of 1 geretourneerd, afhankelijk van het logische niveau van de pin.
Met
valueopgegeven, wordt het logische niveau van de pin ingesteld.valuekan alles zijn wat naar een boolean converteert. Als het naarTrueconverteert, wordt de pin hoog gezet, anders wordt deze laag gezet.
- af() int¶
Retourneert de momenteel geconfigureerde alternatieve functie van de pin. Het geretourneerde getal komt overeen met een van de toegestane constanten voor het af-argument van de init-functie.
- af_list() List[PinAF]¶
Retourneert een array van alternatieve functies die voor deze pin beschikbaar zijn.
Constanten¶