pyb — функции, связанные с платой¶
Предупреждение
Модуль pyb устарел. Для нового кода используйте кросс-портовый модуль machine – он предоставляет ту же функциональность на любой OpenMV Cam независимо от семейства MCU, тогда как pyb существует только на платах на базе STM32. pyb сохранён для обратной совместимости со старыми скриптами, новые возможности в него добавляться не будут, и он может быть удалён в будущем выпуске.
Модуль pyb содержит специфичные для STM32 функции, связанные с платой.
Прочие функции¶
- pyb.have_cdc() bool¶
Возвращает True, если USB подключён как последовательное устройство, иначе False.
Примечание
Эта функция устарела. Вместо неё используйте pyb.USB_VCP().isconnected().
- pyb.hid(data: Tuple[int, int, int, int]) None¶
Принимает 4-кортеж (или список) и отправляет его USB-хосту (ПК), чтобы сигнализировать о событии перемещения HID-мыши.
Примечание
Эта функция устарела. Вместо неё используйте
pyb.USB_HID.send().
- pyb.main(filename: str) None¶
Устанавливает имя файла основного скрипта, который будет запущен после завершения boot.py. Если эта функция не вызвана, то будет выполнен файл по умолчанию main.py.
Эту функцию имеет смысл вызывать только из boot.py.
- pyb.mount(device: Any, mountpoint: str, *, readonly: bool = False, mkfs: bool = False) None¶
Примечание
Эта функция устарела. Вместо неё используйте
vfs.mount()/vfs.umount()и блочное устройство, производное отvfs.AbstractBlockDev.Монтирует блочное устройство в точку
mountpoint.deviceдолжно реализовывать устаревший протокол блочного устройства pyb (также устаревший – современный интерфейс см. вvfs.AbstractBlockDev):Метод
Назначение
readblocks(self, blocknum, buf)Копирует
bufбайт с устройства, начиная с блокаblocknum. Длинаbufкратна 512.writeblocks(self, blocknum, buf)(необязательный)Записывает
bufна устройство, начиная с блокаblocknum. Если опущен, устройство монтируется только для чтения.count(self)Возвращает число 512-байтовых блоков на устройстве.
sync(self)(необязательный)Сбрасывает все кэшированные записи.
mountpoint– это путь в корне файловой системы, по которому монтируется устройство; он должен начинаться с прямого слеша.readonlyпринудительно монтирует только для чтения.mkfsсоздаёт новую файловую систему, если ни одной нет.
- pyb.repl_uart(uart: UART | None = None) UART | None¶
Получает или устанавливает объект UART, на который дублируется REPL.
- pyb.unique_id() bytes¶
Возвращает строку из 12 байт (96 бит), являющуюся уникальным идентификатором 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 в виде строки.
Если вызвана с предоставленным modestr, пытается настроить режим USB. Распознаются следующие значения modestr:
modestr
Настраивает
NoneОтключает USB.
'VCP'Только VCP (Virtual COM Port).
'MSC'Только MSC (класс USB-устройств массового хранения).
'VCP+MSC'VCP и MSC.
'VCP+HID'VCP и HID (устройство пользовательского интерфейса).
'VCP+MSC+HID'VCP, MSC и HID вместе. Поддерживается не на каждой OpenMV Cam.
Для обратной совместимости
'CDC'понимается как'VCP'(и аналогично для'CDC+MSC'и'CDC+HID').Параметр port должен быть целым числом (0, 1, …) и выбирает, какой USB-порт использовать, если плата поддерживает несколько портов. Значение -1 использует порт по умолчанию или выбранный автоматически.
Параметры vid и pid позволяют указать VID (идентификатор производителя) и PID (идентификатор продукта). Значение pid, равное -1, выберет PID на основе значения modestr.
При включении режима MSC параметр msc можно использовать для указания списка SCSI LUN, отображаемых на интерфейсе массового хранения. Например,
msc=(pyb.Flash(), pyb.SDCard()).При включении режима HID вы также можете указать параметры HID, передав ключевой параметр hid. Он принимает кортеж (subclass, protocol, max packet length, polling interval, report descriptor). По умолчанию он устанавливает подходящие значения для USB-мыши. Также существует константа
pyb.hid_keyboard, которая является подходящим кортежем для USB-клавиатуры.Параметр high_speed, если установлен в
True, включает режим USB HS, если он поддерживается аппаратно.
Константы¶
Обе константы ниже представляют собой готовые 5-кортежи в форме
(subclass, protocol, max_packet_size, polling_interval_ms, report_descriptor)
подходящие для передачи в качестве аргумента hid функции usb_mode(), чтобы OpenMV Cam отображалась для хоста как USB-устройство HID. subclass = 1 означает «boot interface», а protocol выбирает класс boot-устройства (1 = клавиатура, 2 = мышь). Пятый элемент – это объект bytes, содержащий дескриптор отчёта HID, используемый при перечислении устройства хостом.
- pyb.hid_mouse: tuple¶
Готовый дескриптор HID для 3-кнопочной boot-мыши с относительным перемещением по X/Y. Кортеж имеет вид
(1, 2, 4, 8, <mouse report descriptor>): boot-подкласс, протокол мыши, 4-байтовые входные отчёты (маска кнопок + X + Y + колесо), опрос каждые 8 мс. Встроенный дескриптор отчёта – это тот, который используется вpyb.USB_HID().send((buttons, dx, dy, wheel)).
- pyb.hid_keyboard: tuple¶
Готовый дескриптор HID для USB boot-клавиатуры. Кортеж имеет вид
(1, 1, 8, 8, <keyboard report descriptor>): boot-подкласс, протокол клавиатуры, 8-байтовые входные отчёты (байт модификаторов, один зарезервированный байт, шесть одновременных кодов клавиш), опрос каждые 8 мс. Встроенный дескриптор отчёта соответствует стандартной 8-байтовой раскладке HID boot-клавиатуры, поэтому отчёт, отправляемый черезUSB_HID.send(), должен быть объектомbytesвида(modifiers, 0, key1, key2, key3, key4, key5, key6).
Классы¶
- class ADC – аналого-цифровое преобразование
- class ADCAll – доступ ко всем каналам ADC
- class CAN – шина связи controller area network
- класс DAC – цифро-аналоговое преобразование
- класс ExtInt – настройка выводов I/O для прерывания по внешним событиям
- класс Flash – доступ к встроенной флеш-памяти
- класс I2C – двухпроводной последовательный протокол
- класс LED – встроенный светодиод
- класс Pin – управление выводами ввода-вывода
- класс PinAF – альтернативные функции выводов
- класс RTC – часы реального времени
- класс Servo – драйвер 3-проводного хобби-сервопривода
- класс SPI – управляемый контроллером последовательный протокол
- класс Timer – управление внутренними таймерами
- класс TimerChannel – настройка канала для таймера
- class UART – дуплексная последовательная коммуникационная шина
- class USB_HID – USB-устройство человеко-машинного интерфейса (HID)
- class USB_VCP – виртуальный COM-порт USB