class Pin – styr I/O-stift¶
Ett pin-objekt används för att styra I/O-stift (även kallade GPIO - general-purpose input/output). Pin-objekt är vanligtvis kopplade till ett fysiskt stift som kan driva en utspänning och läsa inspänningar. Pin-klassen har metoder för att ställa in stiftets läge (IN, OUT, osv.) och metoder för att läsa och ställa in den digitala logiknivån. För analog styrning av ett stift, se klassen ADC.
Ett pin-objekt skapas med hjälp av en identifierare som entydigt anger ett visst I/O-stift. De tillåtna formerna för identifieraren och det fysiska stift som identifieraren mappar till är portspecifika. Möjliga former för identifieraren är ett heltal, en sträng eller en tupel med port och stiftnummer.
Användningsmodell:
from machine import Pin
# create an output pin on header pin P0
p0 = Pin("P0", Pin.OUT)
# set the value low then high
p0.value(0)
p0.value(1)
# create an input pin on header pin P2, with a pull-up resistor
p2 = Pin("P2", Pin.IN, Pin.PULL_UP)
# read and print the pin value
print(p2.value())
# reconfigure P0 in input mode with a pull-down resistor
p0.init(p0.IN, p0.PULL_DOWN)
# install an IRQ callback
p0.irq(lambda p: print(p))
Konstruktorer¶
- class machine.Pin(id: int | str, mode: int = -1, pull: int = -1, *, value: Any = None, drive: int = 0, alt: int = -1)¶
Få åtkomst till den stiftkringutrustning (GPIO-stift) som är kopplad till det angivna
id. Om ytterligare argument anges i konstruktorn används de för att initiera stiftet. Alla inställningar som inte anges behåller sitt tidigare tillstånd.Argumenten är:
idär obligatoriskt och kan vara ett godtyckligt objekt. Bland möjliga värdetyper finns: int (en intern Pin-identifierare), str (ett Pin-namn) och tupel (paret [port, stift]).modeanger stiftläget, som kan vara ett av:Pin.IN- Stiftet är konfigurerat för inmatning. Sett som utgång befinner sig stiftet i högimpedanstillstånd.Pin.OUT- Stiftet är konfigurerat för (normal) utmatning.Pin.OPEN_DRAIN- Stiftet är konfigurerat för open-drain-utmatning. Open-drain-utmatning fungerar på följande sätt: om utvärdet sätts till 0 är stiftet aktivt på låg nivå; om utvärdet är 1 befinner sig stiftet i högimpedanstillstånd. Inte alla portar implementerar detta läge, och vissa kan göra det endast på vissa stift.Pin.ALT- Stiftet är konfigurerat för att utföra en alternativ funktion, som är portspecifik. För ett stift som konfigurerats på detta sätt är inga andra Pin-metoder (utomPin.init()) tillämpliga (att anropa dem leder till ett odefinierat, eller hårdvaruspecifikt, resultat). Inte alla portar implementerar detta läge.Pin.ALT_OPEN_DRAIN- Samma somPin.ALT, men stiftet är konfigurerat som open-drain. Inte alla portar implementerar detta läge.Pin.ANALOG- Stiftet är konfigurerat för analog inmatning, se klassenADC.
pullanger om stiftet har ett (svagt) pull-motstånd anslutet, och kan vara ett av:None- Inget pull-up- eller pull-down-motstånd.Pin.PULL_UP- Pull-up-motstånd aktiverat.Pin.PULL_DOWN- Pull-down-motstånd aktiverat.
valueär giltigt endast för lägena Pin.OUT och Pin.OPEN_DRAIN och anger det initiala utvärdet för stiftet om det ges, annars förblir stiftkringutrustningens tillstånd oförändrat.driveanger stiftets uteffekt och kan vara ett av:Pin.DRIVE_0,Pin.DRIVE_1, osv., med ökande drivstyrka. Den faktiska strömdrivningskapaciteten är portberoende. Inte alla portar implementerar detta argument.altanger en alternativ funktion för stiftet och de värden det kan anta är portberoende. Detta argument är giltigt endast för lägenaPin.ALTochPin.ALT_OPEN_DRAIN. Det kan användas när ett stift stöder mer än en alternativ funktion. Om endast en alternativ stiftfunktion stöds krävs inte detta argument. Inte alla portar implementerar detta argument.
Som angetts ovan tillåter Pin-klassen att en alternativ funktion ställs in för ett visst stift, men den anger inga ytterligare operationer på ett sådant stift. Stift som konfigurerats i läget för alternativa funktioner används vanligtvis inte som GPIO utan drivs istället av annan hårdvarukringutrustning. Den enda operation som stöds på ett sådant stift är ominitiering, genom att anropa konstruktorn eller metoden
Pin.init(). Om ett stift som är konfigurerat i läget för alternativa funktioner ominitieras medPin.IN,Pin.OUTellerPin.OPEN_DRAINtas den alternativa funktionen bort från stiftet.Metoder¶
- init(mode: int = -1, pull: int = -1, *, value: Any = None, drive: int = 0, alt: int = -1) None¶
Ominitiera stiftet med hjälp av de angivna parametrarna. Endast de argument som anges ställs in. Resten av stiftkringutrustningens tillstånd förblir oförändrat. Se konstruktordokumentationen för detaljer om argumenten.
Returnerar
None.
- value(x: Any = None, /) int | None¶
Denna metod tillåter att stiftets värde ställs in och läses, beroende på om argumentet
xanges eller inte.Om argumentet utelämnas läser denna metod stiftets digitala logiknivå och returnerar 0 eller 1 som motsvarar låg respektive hög spänningssignal. Beteendet för denna metod beror på stiftets läge:
Pin.IN- Metoden returnerar det faktiska invärde som för närvarande finns på stiftet.Pin.OUT- Metodens beteende och returvärde är odefinierat.Pin.OPEN_DRAIN- Om stiftet befinner sig i tillstånd ’0’ är metodens beteende och returvärde odefinierat. Annars, om stiftet befinner sig i tillstånd ’1’, returnerar metoden det faktiska invärde som för närvarande finns på stiftet.
Om argumentet anges ställer denna metod in stiftets digitala logiknivå. Argumentet
xkan vara vad som helst som konverteras till ett booleskt värde. Om det konverteras tillTruesätts stiftet till tillstånd ’1’, annars sätts det till tillstånd ’0’. Beteendet för denna metod beror på stiftets läge:Pin.IN- Värdet lagras i utbufferten för stiftet. Stiftets tillstånd ändras inte, det förblir i högimpedanstillstånd. Det lagrade värdet blir aktivt på stiftet så snart det ändras till lägetPin.OUTellerPin.OPEN_DRAIN.Pin.OUT- Utbufferten sätts till det angivna värdet omedelbart.Pin.OPEN_DRAIN- Om värdet är ’0’ sätts stiftet till ett lågspänningstillstånd. Annars sätts stiftet till högimpedanstillstånd.
När värdet ställs in returnerar denna metod
None.
- __call__(x: Any = None, /) int | None¶
Pin-objekt är anropbara. Anropsmetoden ger en (snabb) genväg för att ställa in och läsa stiftets värde. Den är likvärdig med Pin.value([x]). Se
Pin.value()för mer information.
- irq(handler: Callable[[Pin], None] | None = None, trigger: int = Pin.IRQ_FALLING | Pin.IRQ_RISING, *, priority: int = 1, wake: int | None = None, hard: bool = False) None¶
Konfigurera en avbrottshanterare som ska anropas när stiftets utlösningskälla är aktiv. Om stiftläget är
Pin.INär utlösningskällan det externa värdet på stiftet. Om stiftläget ärPin.OUTär utlösningskällan stiftets utbuffert. Annars, om stiftläget ärPin.OPEN_DRAIN, är utlösningskällan utbufferten för tillstånd ’0’ och det externa stiftvärdet för tillstånd ’1’.Argumenten är:
handlerär en valfri funktion som ska anropas när avbrottet utlöses. Hanteraren måste ta exakt ett argument, vilket ärPin-instansen.triggerkonfigurerar den händelse som kan generera ett avbrott. Möjliga värden är:Pin.IRQ_FALLINGavbrott på fallande kant.Pin.IRQ_RISINGavbrott på stigande kant.
Dessa värden kan OR:as samman för att utlösa på flera händelser.
priorityställer in avbrottets prioritetsnivå. De värden det kan anta är portspecifika, men högre värden representerar alltid högre prioritet.wakeväljer det energiläge i vilket detta avbrott kan väcka systemet. Stöds inte på någon OpenMV-port; lämna som standardvärdet.hardom sant används ett hårdvaruavbrott. Detta minskar fördröjningen mellan stiftändringen och att hanteraren anropas. Hårda avbrottshanterare får inte allokera minne; se Skriva avbrottshanterare. Inte alla portar stöder detta argument.
Denna metod returnerar ett återanropsobjekt.
Följande metoder är tillägg till det centrala Pin-API:et. De är grupperade efter porttillgänglighet.
Metoder tillgängliga på alla OpenMV-portar¶
endast mimxrt + alif¶
endast STM32¶
Konstanter¶
Konstanterna nedan används för att konfigurera
Pin-objekt via konstruktorn,init()ochirq(). De är grupperade efter porttillgänglighet.Konstanter tillgängliga på alla OpenMV-portar¶
endast STM32¶
- ALT: int¶
Stiftläge: alternativ funktion (push-pull). Använd med
alt=för att välja vilken kringutrustningsfunktion stiftet dirigeras till. Alias förAF_PP.
- ANALOG: int¶
Stiftläge: analog inmatning – den digitala in-/utbufferten kopplas bort så att stiftet kan drivas av en
ADC-kanal.
- AF_OD: int¶
Open-drain-läge för alternativ funktion (samma värde som
ALT_OPEN_DRAIN).
- OUT_OD: int¶
Open-drain-utmatningsläge (samma värde som
OPEN_DRAIN).
endast mimxrt¶
- PULL_HOLD: int¶
Aktivera padens bus-keeper-/hållfunktion – stiftet låser sin nuvarande logiknivå istället för att flyta fritt.