klass ExtInt – konfigurera I/O-stift att avbryta vid externa händelser¶
STM32-MCU:er delar upp den externa avbrottsstyrenheten (EXTI) i två intervall: linjerna 0-15 drivs från GPIO-stift, och linjerna över 15 är knutna till interna källor (RTC-larm, RTC-väckning, USB-väckning osv.). Det totala antalet linjer och mappningen av de interna linjerna över 15 är MCU-specifika; se EXTI-avsnittet i referensmanualen för OpenMV Cam:s MCU för de exakta tilldelningarna.
Varje GPIO-linje N kan drivas av stift PxN på en GPIO-port åt gången – till exempel kan linje 0 mappas till PA0, PB0, PC0 eller vilket annat stift 0 som helst på port A till port K, men bara en åt gången.
Exempel:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
Varje fallande flank på pin anropar sedan callback. ExtInt konfigurerar automatiskt GPIO-linjen som en ingång; du behöver inte göra det själv.
Anteckning
Mekaniska tryckknappar ”studsar” och en enda tryckning eller släppning genererar ofta flera flanker. Se till exempel denna introduktion till avstudsning för tekniker.
Att registrera två återanrop på samma stift ger upphov till ett undantag.
Om pin skickas som ett heltal antas det identifiera en av de interna avbrottslinjerna och måste vara >= 16 och under MCU:ns totala antal EXTI-linjer. Alla andra stiftvärden löses upp via den vanliga stiftmapparen.
Förutom IRQ_*-lägena finns det händelselägena EVT_RISING, EVT_FALLING och EVT_RISING_FALLING som dirigerar en övergång till processorns händelseingång (används med WFE-instruktionen för lågeffektsväntan). EVT_*-lägena anropar inte Python-återanropet och är avsedda för viloläge / strömhantering; vanlig applikationskod bör använda IRQ_*-lägena.
Konstruktorer¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
Skapa ett
ExtInt-objekt.pin– stiftet att aktivera avbrottet på. Kan vara ettPin-objekt, en stiftnamnssträng eller ett heltal i intervallet16-21för att välja en intern avbrottskälla.mode– utlösningsläget. Ett av:Konstant
Utlösning
Stigande flank.
Fallande flank.
Antingen stigande eller fallande flank.
pull– stiftets pull-konfiguration. En avpyb.Pin.PULL_NONE,pyb.Pin.PULL_UPellerpyb.Pin.PULL_DOWN.callback– anropbar funktion som anropas vid utlösningen. Måste acceptera exakt ett argument: numret på den EXTI-linje som utlöstes.
Klassmetoder¶
Metoder¶
Konstanter¶
- EVT_RISING: int¶
Dirigera en stigande flank till Cortex-händelseingången. Inget Python-återanrop anropas; avsett för användning med
WFE-instruktionen i lågeffektskod.