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 P0P9 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:

  1. Egy Pin objektum közvetlenül kerül átadásra.

  2. A felhasználó által megadott leképező függvény egy lábat ad vissza.

  3. A felhasználó által megadott szótár tartalmaz egy egyező kulcsot.

  4. A karakterlánc megegyezik egy kártya-lábnévvel (P0, P1, …).

  5. 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 id azonosítóhoz társítva. Ha további argumentumokat ad meg, azok továbbításra kerülnek a Pin.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 (True vagy False a be- vagy kikapcsoláshoz).

classmethod dict(dict: dict | None = None) dict | None

A láb-leképező szótár lekérdezése vagy beállítása.

classmethod mapper(fun: Callable[[str], Pin] | None = None) Callable[[str], Pin] | None

A láb-leképező függvény lekérdezése vagy beállítása.

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_UP vagy Pin.PULL_DOWN felhú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_PP vagy Pin.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ábban af né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 value megadásával beállítja a láb logikai szintjét. A value bármi lehet, ami logikai értékké alakítható. Ha True értékre alakul, a láb magas szintre kerül, egyébként alacsony szintre.

__str__() str

A lábobjektumot leíró karakterlánc visszaadása.

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.

af_list() List[PinAF]

Visszaadja az ehhez a lábhoz elérhető alternatív funkciók tömbjét.

gpio() int

Visszaadja az ehhez a lábhoz társított GPIO-blokk bázíscímét.

mode() int

Visszaadja a láb aktuálisan konfigurált módját. A visszaadott egész szám megegyezik az init függvény mode argumentumához megengedett konstansok egyikével.

name() str

A láb nevének lekérése.

names() List[str]

Visszaadja ennek a lábnak a cpu- és kártyaneveit.

pin() int

A láb számának lekérése.

port() int

A láb portjának lekérése.

pull() int

Visszaadja a láb aktuálisan konfigurált felhúzását. A visszaadott egész szám megegyezik az init függvény pull argumentumához megengedett konstansok egyikével.

Konstansok

IN: int

A láb konfigurálása digitális bemenetként (nagy impedanciás).

OUT_PP: int

A láb konfigurálása digitális kimenetként push-pull meghajtóval.

OUT_OD: int

A láb konfigurálása digitális kimenetként nyitott kollektoros (open-drain) meghajtóval.

ANALOG: int

A láb konfigurálása analóg bemenetként (pl. az ADC osztállyal való használathoz).

ALT: int

A láb konfigurálása alternatív funkcióként (bemenet vagy kimenet).

AF_PP: int

A láb konfigurálása alternatív funkcióként push-pull meghajtóval.

AF_OD: int

A láb konfigurálása alternatív funkcióként nyitott kollektoros (open-drain) meghajtóval.

PULL_NONE: int

A felhúzó és a lehúzó ellenállás letiltása a lábon.

PULL_UP: int

A belső felhúzó ellenállás engedélyezése a lábon.

PULL_DOWN: int

A belső lehúzó ellenállás engedélyezése a lábon.