pyb --- ฟังก์ชันที่เกี่ยวข้องกับบอร์ด

Warning

โมดูล pyb ถูกเลิกใช้งานแล้ว สำหรับโค้ดใหม่ให้ใช้โมดูล machine ที่รองรับหลายแพลตฟอร์มแทน -- โมดูลนั้นให้ฟังก์ชันการทำงานเหมือนกันบน OpenMV Cam ทุกรุ่นโดยไม่ขึ้นกับตระกูล MCU ในขณะที่ pyb มีเฉพาะบนบอร์ดที่ใช้ STM32 เท่านั้น pyb ยังคงรักษาไว้เพื่อความเข้ากันได้ย้อนหลังกับสคริปต์เก่า โดยจะไม่มีการเพิ่มฟีเจอร์ใหม่ และอาจถูกนำออกในรุ่นถัดไป

โมดูล pyb ประกอบด้วยฟังก์ชันเฉพาะสำหรับ STM32 ที่เกี่ยวข้องกับบอร์ด

ฟังก์ชันเบ็ดเตล็ด

pyb.have_cdc() bool

คืนค่า True หาก USB เชื่อมต่ออยู่ในรูปแบบอุปกรณ์อนุกรม หรือ False ในกรณีอื่น

Note

ฟังก์ชันนี้ถูกเลิกใช้งานแล้ว ให้ใช้ pyb.USB_VCP().isconnected() แทน

pyb.hid(data: Tuple[int, int, int, int]) None

รับ 4-tuple (หรือ list) และส่งไปยัง USB host (PC) เพื่อส่งสัญญาณเหตุการณ์การเคลื่อนไหวของเมาส์ HID

Note

ฟังก์ชันนี้ถูกเลิกใช้งานแล้ว ให้ใช้ pyb.USB_HID.send() แทน

pyb.info(dump_alloc_table: bool | None = None) None

แสดงข้อมูลจำนวนมากเกี่ยวกับบอร์ด

pyb.main(filename: str) None

กำหนดชื่อไฟล์ของสคริปต์หลักที่จะรันหลังจาก boot.py เสร็จสิ้น หากไม่ได้เรียกฟังก์ชันนี้ ไฟล์เริ่มต้น main.py จะถูกรัน

การเรียกฟังก์ชันนี้มีความหมายเฉพาะเมื่ออยู่ใน boot.py เท่านั้น

pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None

Note

ฟังก์ชันนี้ถูกเลิกใช้งานแล้ว ให้ใช้ vfs.mount() / vfs.umount() และอุปกรณ์ block device ที่สืบทอดจาก vfs.AbstractBlockDev แทน

เมาต์ block device ภายใต้ mountpoint โดย device ต้องใช้งาน legacy pyb block-device protocol (ซึ่งถูกเลิกใช้งานเช่นกัน -- ดู vfs.AbstractBlockDev สำหรับอินเทอร์เฟซสมัยใหม่):

เมธอด

วัตถุประสงค์

readblocks(self, blocknum, buf)

คัดลอกข้อมูลจำนวน buf ไบต์จากอุปกรณ์เริ่มต้นที่บล็อก blocknum โดยความยาวของ buf เป็นทวีคูณของ 512

writeblocks(self, blocknum, buf) (optional)

เขียน buf ไปยังอุปกรณ์เริ่มต้นที่บล็อก blocknum หากละเว้น อุปกรณ์จะถูกเมาต์แบบอ่านอย่างเดียว

count(self)

คืนค่าจำนวนบล็อกขนาด 512 ไบต์บนอุปกรณ์

sync(self) (optional)

ล้างการเขียนที่ถูกแคชไว้

mountpoint คือเส้นทางในรูทของระบบไฟล์เพื่อเมาต์อุปกรณ์ โดยต้องขึ้นต้นด้วย forward slash readonly บังคับเมาต์แบบอ่านอย่างเดียว mkfs สร้างระบบไฟล์ใหม่หากไม่มีอยู่

pyb.repl_uart(uart: UART | None = None) UART | None

รับหรือกำหนดออบเจกต์ UART ที่ REPL จะถูกส่งซ้ำไปที่นั้น

pyb.rng() int

คืนค่าตัวเลขสุ่ม 30 บิตที่สร้างโดยฮาร์ดแวร์

pyb.sync() None

ซิงค์ระบบไฟล์ทั้งหมด

pyb.unique_id() bytes

คืนค่า string ขนาด 12 ไบต์ (96 บิต) ซึ่งเป็น unique ID ของ MCU

pyb.usb_mode(modestr: str | None = None, port: int = -1, vid: int = 0xf055, pid: int = -1, msc: Tuple = (), hid: Tuple = pyb.hid_mouse, high_speed: bool = False) str | None

หากเรียกโดยไม่มีอาร์กิวเมนต์ จะคืนค่าโหมด USB ปัจจุบันในรูปแบบ string

หากเรียกพร้อม modestr จะพยายามกำหนดค่าโหมด USB โดยค่า modestr ที่รองรับมีดังนี้:

modestr

กำหนดค่า

None

ปิดใช้งาน USB

'VCP'

VCP (Virtual COM Port) เท่านั้น

'MSC'

MSC (USB mass storage class) เท่านั้น

'VCP+MSC'

VCP และ MSC

'VCP+HID'

VCP และ HID (human interface device)

'VCP+MSC+HID'

VCP, MSC และ HID พร้อมกัน ไม่รองรับบน OpenMV Cam ทุกรุ่น

เพื่อความเข้ากันได้ย้อนหลัง 'CDC' ถูกตีความว่าหมายถึง 'VCP' (และเช่นเดียวกันสำหรับ 'CDC+MSC' และ 'CDC+HID')

พารามิเตอร์ port ควรเป็นจำนวนเต็ม (0, 1, ...) และใช้เลือกพอร์ต USB ที่จะใช้หากบอร์ดรองรับหลายพอร์ต ค่า -1 ใช้พอร์ตเริ่มต้นหรือพอร์ตที่เลือกโดยอัตโนมัติ

พารามิเตอร์ vid และ pid ช่วยให้คุณระบุ VID (vendor id) และ PID (product id) ค่า pid ที่เป็น -1 จะเลือก PID ตามค่าของ modestr

หากเปิดใช้งานโหมด MSC พารามิเตอร์ msc สามารถใช้ระบุรายการ SCSI LUN ที่จะเปิดเผยบนอินเทอร์เฟซ mass storage ตัวอย่างเช่น msc=(pyb.Flash(), pyb.SDCard())

หากเปิดใช้งานโหมด HID คุณยังสามารถระบุรายละเอียด HID โดยส่งพารามิเตอร์คำสำคัญ hid ซึ่งรับ tuple ในรูปแบบ (subclass, protocol, max packet length, polling interval, report descriptor) ตามค่าเริ่มต้นจะกำหนดค่าที่เหมาะสมสำหรับเมาส์ USB นอกจากนี้ยังมีค่าคงที่ pyb.hid_keyboard ซึ่งเป็น tuple ที่เหมาะสมสำหรับคีย์บอร์ด USB

พารามิเตอร์ high_speed เมื่อกำหนดเป็น True จะเปิดใช้งานโหมด USB HS หากฮาร์ดแวร์รองรับ

ค่าคงที่

ค่าคงที่ทั้งสองด้านล่างนี้เป็น 5-tuple สำเร็จรูปในรูปแบบ

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

ที่เหมาะสำหรับส่งเป็นอาร์กิวเมนต์ hid ของ usb_mode() เพื่อให้ OpenMV Cam ปรากฏต่อ host เป็นอุปกรณ์ USB HID subclass = 1 หมายถึง "boot interface" และ protocol เลือกคลาสอุปกรณ์ boot (1 = keyboard, 2 = mouse) องค์ประกอบที่ห้าเป็นออบเจกต์ bytes ที่เก็บ HID report descriptor ที่ใช้เมื่อ host ทำการ enumerate อุปกรณ์

pyb.hid_mouse: tuple

HID descriptor สำเร็จรูปสำหรับ boot mouse 3 ปุ่มพร้อมการเคลื่อนไหว X/Y แบบสัมพัทธ์ tuple คือ (1, 2, 4, 8, <mouse report descriptor>): boot subclass, mouse protocol, input report 4 ไบต์ (button mask + X + Y + wheel), polling ทุก 8 ms report descriptor ที่ฝังตัวนี้คือสิ่งที่ใช้โดย pyb.USB_HID().send((buttons, dx, dy, wheel))

pyb.hid_keyboard: tuple

HID descriptor สำเร็จรูปสำหรับ USB boot keyboard tuple คือ (1, 1, 8, 8, <keyboard report descriptor>): boot subclass, keyboard protocol, input report 8 ไบต์ (modifier byte, หนึ่ง reserved byte, six concurrent key codes), polling ทุก 8 ms report descriptor ที่ฝังตัวตรงกับ layout มาตรฐาน HID boot-keyboard 8 ไบต์ ดังนั้น report ที่ส่งผ่าน USB_HID.send() ควรเป็น bytes ในรูปแบบ (modifiers, 0, key1, key2, key3, key4, key5, key6)

คลาส