คลาส ExtInt -- กำหนดค่าพิน I/O เพื่ออินเทอร์รัปต์บนเหตุการณ์ภายนอก¶
MCU STM32 แบ่งตัวควบคุมอินเทอร์รัปต์ภายนอก (EXTI) ออกเป็นสองช่วง: สาย 0-15 ถูกขับจากพิน GPIO และสายที่สูงกว่า 15 เชื่อมต่อกับแหล่งภายใน (RTC alarm, RTC wakeup, USB wakeup เป็นต้น) จำนวนสายทั้งหมดและการแมปสายภายในที่สูงกว่า 15 นั้นขึ้นอยู่กับ MCU เฉพาะ โปรดดูส่วน EXTI ของคู่มืออ้างอิงสำหรับ MCU ของ OpenMV Cam เพื่อดูการกำหนดที่ชัดเจน
สาย GPIO แต่ละเส้น N สามารถถูกขับโดยพิน PxN บนพอร์ต GPIO ใดก็ได้ในแต่ละครั้ง -- ตัวอย่างเช่น สาย 0 อาจแมปไปยัง PA0, PB0, PC0 หรือพิน 0 ของพอร์ต A ถึงพอร์ต K อื่นๆ แต่ครั้งละหนึ่งเส้นทางเท่านั้น
ตัวอย่าง:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
ขอบขาลงทุกครั้งบน pin จะเรียก callback ExtInt กำหนดค่าสาย GPIO เป็นอินพุตโดยอัตโนมัติ คุณไม่จำเป็นต้องทำเองอีกต่อไป
Note
ปุ่มกดแบบกลไก "สั่น" และการกดหรือปล่อยครั้งเดียวมักสร้างขอบหลายขอบ ดูตัวอย่างเช่น บทนำการดีบาวนซ์นี้ สำหรับเทคนิคต่างๆ
การลงทะเบียนคอลแบ็กสองรายการบนพินเดียวกันจะทำให้เกิดข้อยกเว้น
หาก pin ถูกส่งเป็นจำนวนเต็ม ระบบจะถือว่ามันระบุหนึ่งในสายอินเทอร์รัปต์ภายในและต้องเป็น >= 16 และต่ำกว่าจำนวนสาย EXTI ทั้งหมดของ MCU ค่าพินอื่นๆ จะถูกแก้ไขผ่านตัวแมปพินมาตรฐาน
นอกจากโหมด IRQ_* แล้ว ยังมีโหมดเหตุการณ์ EVT_RISING, EVT_FALLING และ EVT_RISING_FALLING ที่กำหนดเส้นทางการเปลี่ยนแปลงไปยังอินพุตเหตุการณ์ของโปรเซสเซอร์ (ใช้กับคำสั่ง WFE สำหรับการรอแบบประหยัดพลังงาน) โหมด EVT_* ไม่เรียกคอลแบ็ก Python และมีไว้สำหรับการใช้งานโหมดสลีป / การจัดการพลังงาน โค้ดแอปพลิเคชันทั่วไปควรใช้โหมด IRQ_*
คอนสตรักเตอร์¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
สร้างออบเจ็กต์
ExtIntpin-- พินที่จะเปิดใช้งานอินเทอร์รัปต์ สามารถเป็นออบเจ็กต์Pin, สตริงชื่อพิน หรือจำนวนเต็มในช่วง16-21เพื่อเลือกแหล่งอินเทอร์รัปต์ภายในmode-- โหมดทริกเกอร์ หนึ่งใน:ค่าคงที่
ทริกเกอร์
ขอบขาขึ้น
ขอบขาลง
ขอบขาขึ้นหรือขาลงก็ได้
pull-- การกำหนดค่าพูลของพิน หนึ่งในpyb.Pin.PULL_NONE,pyb.Pin.PULL_UPหรือpyb.Pin.PULL_DOWNcallback-- callable ที่ถูกเรียกเมื่อเกิดทริกเกอร์ ต้องรับอาร์กิวเมนต์หนึ่งตัวพอดี: หมายเลขสาย EXTI ที่ทำงาน
เมธอดคลาส¶
เมธอด¶
ค่าคงที่¶