pyb --- các hàm liên quan đến bo mạch

Cảnh báo

Module pyb đã bị khai thác lỗi thời. Hãy sử dụng module machine có thể chuyển cổng cho mã mới -- module này cung cấp cùng chức năng trên mọi OpenMV Cam bất kể họ MCU, trong khi pyb chỉ tồn tại trên các bo mạch dựa trên STM32. pyb được giữ lại để tương thích ngược với các tập lệnh cũ hơn, không có tính năng mới nào sẽ được thêm vào, và nó có thể bị loại bỏ trong bản phát hành tương lai.

Module pyb chứa các hàm đặc trưng cho STM32 liên quan đến bo mạch.

Các hàm khác

pyb.have_cdc() bool

Trả về True nếu USB được kết nối như một thiết bị nối tiếp, False nếu không.

Ghi chú

Hàm này đã bị khai thác lỗi thời. Hãy sử dụng pyb.USB_VCP().isconnected() thay thế.

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

Nhận một tuple 4 phần tử (hoặc danh sách) và gửi nó đến máy chủ USB (PC) để báo hiệu sự kiện di chuyển chuột HID.

Ghi chú

Hàm này đã bị khai thác lỗi thời. Hãy sử dụng pyb.USB_HID.send() thay thế.

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

In ra nhiều thông tin về bo mạch.

pyb.main(filename: str) None

Đặt tên tệp của tập lệnh chính để chạy sau khi boot.py hoàn thành. Nếu hàm này không được gọi thì tệp mặc định main.py sẽ được thực thi.

Chỉ có ý nghĩa khi gọi hàm này từ bên trong boot.py.

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

Ghi chú

Hàm này đã bị khai thác lỗi thời. Hãy sử dụng vfs.mount() / vfs.umount() và thiết bị khối dẫn xuất từ vfs.AbstractBlockDev thay thế.

Gắn kết một thiết bị khối tại mountpoint. device phải triển khai giao thức thiết bị khối pyb kế thừa (cũng đã bị khai thác lỗi thời -- xem vfs.AbstractBlockDev cho giao diện hiện đại):

Phương thức

Mục đích

readblocks(self, blocknum, buf)

Sao chép buf byte từ thiết bị bắt đầu tại khối blocknum. Độ dài của buf là bội số của 512.

writeblocks(self, blocknum, buf) (tùy chọn)

Ghi buf vào thiết bị bắt đầu tại khối blocknum. Nếu bị bỏ qua, thiết bị được gắn kết chỉ đọc.

count(self)

Trả về số khối 512-byte trên thiết bị.

sync(self) (tùy chọn)

Xả tất cả các ghi được lưu vào bộ đệm.

mountpoint là đường dẫn trong gốc của hệ thống tệp để gắn kết thiết bị; nó phải bắt đầu bằng dấu gạch chéo về phía trước. readonly buộc gắn kết chỉ đọc. mkfs tạo một hệ thống tệp mới nếu chưa có.

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

Lấy hoặc đặt đối tượng UART nơi REPL được lặp lại.

pyb.rng() int

Trả về một số ngẫu nhiên 30-bit được tạo bởi phần cứng.

pyb.sync() None

Đồng bộ hóa tất cả các hệ thống tệp.

pyb.unique_id() bytes

Trả về một chuỗi 12 byte (96 bit), là ID duy nhất của 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

Nếu được gọi mà không có đối số, trả về chế độ USB hiện tại dưới dạng chuỗi.

Nếu được gọi với modestr, cố gắng cấu hình chế độ USB. Các giá trị sau của modestr được hiểu:

modestr

Cấu hình

None

Tắt USB.

'VCP'

Chỉ VCP (Cổng COM Ảo).

'MSC'

Chỉ MSC (lớp lưu trữ đại chúng USB).

'VCP+MSC'

VCP và MSC.

'VCP+HID'

VCP và HID (thiết bị giao diện người dùng).

'VCP+MSC+HID'

VCP, MSC và HID cùng nhau. Không được hỗ trợ trên mọi OpenMV Cam.

Để tương thích ngược, 'CDC' được hiểu là 'VCP' (và tương tự cho 'CDC+MSC''CDC+HID').

Tham số port phải là số nguyên (0, 1, ...) và chọn cổng USB nào sẽ sử dụng nếu bo mạch hỗ trợ nhiều cổng. Giá trị -1 sử dụng cổng mặc định hoặc được chọn tự động.

Tham số vidpid cho phép bạn chỉ định VID (ID nhà cung cấp) và PID (ID sản phẩm). Giá trị pid là -1 sẽ chọn PID dựa trên giá trị của modestr.

Nếu bật chế độ MSC, tham số msc có thể được sử dụng để chỉ định danh sách SCSI LUN cần hiển thị trên giao diện lưu trữ đại chúng. Ví dụ: msc=(pyb.Flash(), pyb.SDCard()).

Nếu bật chế độ HID, bạn cũng có thể chỉ định chi tiết HID bằng cách truyền tham số từ khóa hid. Nó nhận một tuple gồm (subclass, protocol, độ dài gói tối đa, khoảng thời gian polling, bộ mô tả báo cáo). Theo mặc định, nó sẽ đặt các giá trị thích hợp cho chuột USB. Ngoài ra còn có hằng số pyb.hid_keyboard, là một tuple thích hợp cho bàn phím USB.

Tham số high_speed, khi được đặt thành True, bật chế độ USB HS nếu phần cứng hỗ trợ.

Hằng số

Cả hai hằng số dưới đây đều là tuple 5 phần tử có sẵn ở dạng

(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)

phù hợp để truyền vào đối số hid của usb_mode() để làm cho OpenMV Cam xuất hiện với máy chủ như một thiết bị USB HID. subclass = 1 có nghĩa là "giao diện khởi động" và protocol chọn lớp thiết bị khởi động (1 = bàn phím, 2 = chuột). Phần tử thứ năm là đối tượng bytes chứa bộ mô tả báo cáo HID được sử dụng khi máy chủ liệt kê thiết bị.

pyb.hid_mouse: tuple

Bộ mô tả HID dựng sẵn cho chuột khởi động 3 nút với chuyển động X/Y tương đối. Tuple là (1, 2, 4, 8, <mouse report descriptor>): subclass khởi động, giao thức chuột, báo cáo đầu vào 4 byte (mặt nạ nút + X + Y + bánh xe), được polling mỗi 8 ms. Bộ mô tả báo cáo tích hợp là bộ được sử dụng bởi pyb.USB_HID().send((buttons, dx, dy, wheel)).

pyb.hid_keyboard: tuple

Bộ mô tả HID dựng sẵn cho bàn phím khởi động USB. Tuple là (1, 1, 8, 8, <keyboard report descriptor>): subclass khởi động, giao thức bàn phím, báo cáo đầu vào 8 byte (byte bộ điều chỉnh, một byte dự phòng, sáu mã phím đồng thời), được polling mỗi 8 ms. Bộ mô tả báo cáo tích hợp khớp với bố cục bàn phím khởi động HID 8 byte chuẩn, vì vậy báo cáo được gửi qua USB_HID.send() phải là bytes có dạng (modifiers, 0, key1, key2, key3, key4, key5, key6).

Các lớp