ExtInt osztály – I/O lábak konfigurálása külső eseményekre történő megszakításhoz¶
Az STM32 MCU-k a külső megszakításvezérlőt (EXTI) két tartományra osztják: a 0-15 vonalakat GPIO lábak vezérlik, a 15 feletti vonalak pedig belső forrásokhoz (RTC riasztás, RTC ébresztés, USB ébresztés stb.) vannak kötve. A vonalak összesített száma és a 15 feletti belső vonalak hozzárendelése MCU-specifikus; a pontos hozzárendelésekért lásd az OpenMV Cam MCU-jának referencia-kézikönyvében az EXTI szakaszt.
Minden N GPIO vonalat egyszerre csak egy GPIO porton lévő PxN láb vezérelhet – például a 0-s vonal leképezhető a PA0, PB0, PC0 lábakra vagy az A-portól a K-portig bármely más port 0-s lábára, de egyszerre csak egyre.
Példa:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
Ezután a pin minden lefutó élénél meghívásra kerül a callback. Az ExtInt automatikusan bemenetként konfigurálja a GPIO vonalat; ezt nem kell saját magának elvégeznie.
Megjegyzés
A mechanikus nyomógombok „pattognak”, és egyetlen lenyomás vagy felengedés gyakran több élt is generál. A módszerekről lásd például ezt a pattogásszűrési útmutatót.
Két visszahívás regisztrálása ugyanarra a lábra kivételt vált ki.
Ha a pin egész számként van megadva, a rendszer feltételezi, hogy az a belső megszakításvonalak egyikét azonosítja, és értékének >= 16-nak, valamint az MCU EXTI vonalainak összesített számánál kisebbnek kell lennie. Minden más láb-érték a szabványos láb-leképezőn keresztül kerül feloldásra.
Az IRQ_* módokon felül léteznek EVT_RISING, EVT_FALLING és EVT_RISING_FALLING eseménymódok is, amelyek egy átmenetet a processzor eseménybemenetére irányítanak (a WFE utasítással használva alacsony fogyasztású várakozáshoz). Az EVT_* módok nem hívják meg a Python visszahívást, és alvási / energiagazdálkodási célokra szolgálnak; a hagyományos alkalmazáskódnak az IRQ_* módokat kell használnia.
Konstruktorok¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
ExtIntobjektum létrehozása.pin– az a láb, amelyen engedélyezni kell a megszakítást. Lehet egyPinobjektum, egy láb-névként megadott karakterlánc, vagy egy16-21tartományba eső egész szám egy belső megszakításforrás kiválasztásához.mode– a kiváltási mód. A következők egyike:Konstans
Kiváltó
Felfutó él.
Lefutó él.
Felfutó vagy lefutó él egyaránt.
pull– a láb felhúzási konfigurációja. Apyb.Pin.PULL_NONE,pyb.Pin.PULL_UPvagypyb.Pin.PULL_DOWNegyike.callback– a kiváltáskor meghívott hívható objektum. Pontosan egy argumentumot kell elfogadnia: a kiváltott EXTI vonal számát.
Osztálymetódusok¶
Metódusok¶
Konstansok¶
- EVT_RISING: int¶
Felfutó él irányítása a Cortex eseménybemenetére. Nem hívódik meg Python visszahívás; a
WFEutasítással való használatra szolgál alacsony fogyasztású kódban.