class ExtInt -- konfigurasi pin I/O untuk interupsi pada event eksternal¶
MCU STM32 membagi kontroler interupsi eksternal (EXTI) menjadi dua rentang: baris 0-15 digerakkan dari pin GPIO, dan baris di atas 15 terhubung ke sumber internal (alarm RTC, wakeup RTC, wakeup USB, dll.). Jumlah total baris dan pemetaan baris internal di atas 15 bersifat spesifik terhadap MCU; konsultasikan bagian EXTI dari manual referensi MCU OpenMV Cam untuk penugasan yang tepat.
Setiap baris GPIO N dapat digerakkan oleh pin PxN pada salah satu port GPIO pada satu waktu -- misalnya baris 0 dapat memetakan ke PA0, PB0, PC0 atau pin 0 port-A hingga port-K lainnya, tetapi hanya satu pada satu waktu.
Contoh:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
Setiap tepi turun pada pin kemudian memanggil callback. ExtInt secara otomatis mengonfigurasi baris GPIO sebagai input; Anda tidak perlu melakukannya sendiri.
Catatan
Tombol tekan mekanis "memantul" dan satu tekanan atau pelepasan sering menghasilkan beberapa tepi. Lihat misalnya primer debouncing ini untuk teknik-tekniknya.
Mendaftarkan dua callback pada pin yang sama akan memunculkan pengecualian.
Jika pin dilewatkan sebagai bilangan bulat, diasumsikan mengidentifikasi salah satu baris interupsi internal dan harus >= 16 dan di bawah jumlah total baris EXTI MCU. Nilai pin lainnya diselesaikan melalui mapper pin standar.
Selain mode IRQ_*, ada mode event EVT_RISING, EVT_FALLING dan EVT_RISING_FALLING yang merutekan transisi ke input event prosesor (digunakan dengan instruksi WFE untuk tunggu daya rendah). Mode EVT_* tidak memanggil callback Python dan dimaksudkan untuk penggunaan sleep / manajemen daya; kode aplikasi biasa harus menggunakan mode IRQ_*.
Konstruktor¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
Buat objek
ExtInt.pin-- pin untuk mengaktifkan interupsi. Dapat berupa objekPin, string nama pin, atau bilangan bulat dalam rentang16-21untuk memilih sumber interupsi internal.mode-- mode pemicu. Salah satu dari:Konstanta
Pemicu
Tepi naik.
Tepi turun.
Tepi naik atau turun.
pull-- konfigurasi pull pin. Salah satu daripyb.Pin.PULL_NONE,pyb.Pin.PULL_UPataupyb.Pin.PULL_DOWN.callback-- callable yang dipanggil pada pemicu. Harus menerima tepat satu argumen: nomor baris EXTI yang terpicu.
Metode kelas¶
Metode¶
Konstanta¶
- EVT_RISING: int¶
Rutekan tepi naik ke input event Cortex. Tidak ada callback Python yang dipanggil; dimaksudkan untuk digunakan dengan instruksi
WFEdalam kode daya rendah.