class Pin – I/O lábak vezérlése¶
A Pin objektum az STM32 egyetlen GPIO-ját képviseli. Metódusokat biztosít a láb módjának (bemenet, kimenet, alternatív funkció, analóg) és a felhúzóellenállásoknak a beállításához, valamint a digitális szintjének olvasásához vagy meghajtásához. Az analóg mintavételezéshez lásd a pyb.ADC osztályt; az alternatív funkciók felsorolásához lásd a PinAF osztályt.
Minden fejléc-láb előre definiálva van pyb.Pin.board.<name> formában. A legtöbb STM32 OpenMV Cam a P0 … P9 I/O fejléc-lábakat teszi elérhetővé; az OpenMV Cam N6 további lábakat tesz elérhetővé egészen P18-ig:
p0 = pyb.Pin.board.P0
g = pyb.Pin(pyb.Pin.board.P0, pyb.Pin.IN)
Az alapul szolgáló STM32 port/láb közvetlenül is megcímezhető a pyb.Pin.cpu.<name> segítségével, amelynek neve a port betűjéből és az azt követő lábszámból áll (például pyb.Pin.cpu.A0). Az egyes OpenMV fejléc-lábak CPU-lábhoz való hozzárendelését a kártya rögzíti.
A lábak karakterlánc-névvel is kiválaszthatók:
g = pyb.Pin("P0", pyb.Pin.OUT_PP)
Felhasználó által definiált nevek adhatók hozzá a Pin.dict() segítségével:
MyMapperDict = {"LeftMotorDir": pyb.Pin.cpu.A0}
pyb.Pin.dict(MyMapperDict)
g = pyb.Pin("LeftMotorDir", pyb.Pin.OUT_OD)
és lekérdezhetők:
pin = pyb.Pin("LeftMotorDir")
Alternatív megoldásként egyéni leképező függvény telepíthető a Pin.mapper() segítségével:
def MyMapper(pin_name):
if pin_name == "LeftMotorDir":
return pyb.Pin.cpu.A0
pyb.Pin.mapper(MyMapper)
így a pyb.Pin("LeftMotorDir", pyb.Pin.OUT_PP) hívás közvetlenül a "LeftMotorDir" értéket adja át a leképezőnek.
A következő sorrend határozza meg, hogy egy név hogyan kerül leképezésre fizikai lábra:
Egy
Pinobjektum közvetlenül kerül átadásra.A felhasználó által megadott leképező függvény egy lábat ad vissza.
A felhasználó által megadott szótár tartalmaz egy egyező kulcsot.
A karakterlánc megegyezik egy kártya-lábnévvel (
P0,P1, …).A karakterlánc megegyezik egy CPU port/láb névvel (
A0,B7, …).
Hívja meg a pyb.Pin.debug(True) parancsot, hogy diagnosztikai információkat írasson ki arról, hogy az egyes objektumok hogyan vannak lábhoz rendelve.
Konstruktorok¶
- class pyb.Pin(id: str | Pin, *args, **kwargs)¶
Új Pin objektum létrehozása az adott
idazonosítóhoz társítva. Ha további argumentumokat ad meg, azok továbbításra kerülnek aPin.init()metódusnak a láb konfigurálásához.Osztálymetódusok¶
- classmethod debug(state: bool | None = None) bool | None¶
A hibakeresési állapot lekérdezése vagy beállítása (
TruevagyFalsea be- vagy kikapcsoláshoz).
Metódusok¶
- init(mode: int, pull: int = Pin.PULL_NONE, *, value: int | None = None, alt: int | str = -1) None¶
A láb inicializálása:
A mode a következők egyike lehet:
Pin.IN- a láb konfigurálása bemenetként;Pin.OUT_PP- a láb konfigurálása kimenetként, push-pull vezérléssel;Pin.OUT_OD- a láb konfigurálása kimenetként, nyitott kollektoros (open-drain) vezérléssel;Pin.ALT- a láb konfigurálása alternatív funkcióra, bemenetként vagy kimenetként;Pin.AF_PP- a láb konfigurálása alternatív funkcióra, push-pull üzemmódban;Pin.AF_OD- a láb konfigurálása alternatív funkcióra, nyitott kollektoros (open-drain) üzemmódban;Pin.ANALOG- a láb konfigurálása analóg üzemmódra.
A pull a következők egyike lehet:
Pin.PULL_NONE- nincs felhúzó vagy lehúzó ellenállás;Pin.PULL_UP- a felhúzó ellenállás engedélyezése;Pin.PULL_DOWN- a lehúzó ellenállás engedélyezése.
Ha egy lábon a
Pin.PULL_UPvagyPin.PULL_DOWNfelhúzó mód engedélyezve van, akkor az adott láb egy belső ellenálláson keresztül 3V3-ra, illetve GND-re van húzva (jellemzően néhány tíz kOhm – lásd a használt OpenMV Cam STM32 adatlapjának elektromos jellemzőit).A value ha nem None, akkor beállítja a port kimeneti értékét a láb engedélyezése előtt.
Az alt akkor használható, ha a mód
Pin.ALT,Pin.AF_PPvagyPin.AF_OD, a lábhoz társított alternatív funkciók egyikének indexének vagy nevének beállítására. Ezt az argumentumot korábbanafnéven hívták, amely szükség esetén továbbra is használható.
- value(value: Any | None = None) int | None¶
A láb digitális logikai szintjének lekérdezése vagy beállítása:
Argumentum nélkül 0-t vagy 1-et ad vissza a láb logikai szintjétől függően.
A
valuemegadásával beállítja a láb logikai szintjét. Avaluebármi lehet, ami logikai értékké alakítható. HaTrueértékre alakul, a láb magas szintre kerül, egyébként alacsony szintre.
- af() int¶
Visszaadja a láb aktuálisan konfigurált alternatív funkcióját. A visszaadott egész szám megegyezik az init függvény af argumentumához megengedett konstansok egyikével.
Konstansok¶
- OUT_OD: int¶
A láb konfigurálása digitális kimenetként nyitott kollektoros (open-drain) meghajtóval.