MicroPython:Библиотеки/pyb

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Модуль pyb – функции для Pyboard-платы[1]

Модуль pyb содержит функции, связанные с функционалом платы Pyboard.

Функции для работы со временем

Функции для работы со сбросом

Функции для работы с прерываниями

Функции для работы с электропитанием

Прочие функции

  • pyb.have_cdc() – возвращает True, если к USB-порту подключено последовательное устройство. В противном случае возвращает False.

Примечание: Эта функция устарела. Вместо нее используйте yb.USB_VCP().isconnected().

  • pyb.hid((buttons, x, y, z)) – берет 4-элементный кортеж (или список) и отправляет его USB-хосту (ПК), чтобы сообщить о HID-событии движения мышки.

Примечание: Эта функция устарела. Вместо нее используйте pyb.USB_HID.send().

  • pyb.info([dump_alloc_table]) – печатает много информации о плате.
  • pyb.main(filename) – задает название для главного скрипта, который будет запущен после завершения «boot.py». Если не вызвать эту функцию, будет выполнен «main.py», заданный по умолчанию.

Эту функцию имеет смысл вызывать только из «boot.py».

  • pyb.mount(device, mountpoint, *, readonly=False, mkfs=False)

Примечание: Эта функция устарела. Монтирование и размонтирование устройств теперь делаются при помощи функций uos.mount() и uos.umount(). Монтирует блочное устройство и делает его доступным в виде части файловой системы. В аргументе device должен быть задан объект с блочным протоколом. Функции ниже тоже устарели. О том, как правильно создавать блочные устройства, читайте в описании класса uos.AbstractBlockDev().

    • readblocks(self, blocknum, buf)
    • writeblocks(self, blocknum, buf) (опционально)
    • count(self)
    • sync(self) (опционально)

Функции readblocks() и writeblocks() отвечают за копирование данных между буфером buf и блочным устройством, начиная с блока под номером blocknum на устройстве. В buf будет массив байтов с размером, кратным 512. Если функция writeblocks() не определена, то устройство монтируется только для чтения. Значение, возвращаемое двумя этими функциями, игнорируется. Функция count() возвращает количество блоков, доступных на устройстве. Функция sync(), если реализована, синхронизирует данные на устройстве. Аргумент mountpoint – это место в корне файловой системы, куда будет смонтировано устройство. Значение в нем должно начинаться с прямого слэша. Если в readonly задано True, то устройство будет смонтировано только для чтения, в противном случае на нем будет доступно и чтение, и запись. Если в mkfs задано True и если файловой системы еще нет, то она будет создана.

  • pyb.repl_uart(uart) – задает или считывает объект UART, на котором запущен REPL.
  • pyb.rng() – возвращает 30-битное аппаратно-сгенерированное случайное число.
  • pyb.sync() – синхронизирует все файловые системы.
  • pyb.unique_id() – возвращает строку с 12 байтами (96 битами), являющуюся уникальным ID микроконтроллера.
  • pyb.usb_mode([modestr, ]port=-1, vid=0xf055, pid=-1, msc=(), hid=pyb.hid_mouse, high_speed=False) – если вызвать эту функцию без аргументов, она вернет строку, содержащую информацию о текущем USB-режиме.

Если вызвать ее с аргументом modestr, она попытается задать USB-режим. Вот доступные значения для этого аргумента:

    • None – отключает USB.
    • 'VCP' – включает USB с VCP-интерфейсом (от англ. «virtual COM port», т.е. «виртуальный COM-порт»).
    • 'MSC' – включает USB с MSC-интерфейсом (от англ. «mass storage device class», т.е. «устройство-накопитель»).
    • 'VCP+MSC' – включает USB с VCP- и MSC-интерфейсами.
    • 'VCP+HID' – включает USB с VCP- и HID-интерфейсами (от англ. «human interface device», т.е. «человеко-машинный интерфейс»).
    • 'VCP+MSC+HID' – включает USB с VCP-, MSC- и HID-интерфейсами (этот вариант доступен только на PYBD-платах).

В целях обратной совместимости под 'CDC' также подразумевается 'VCP' (то же самое касается режимов 'CDC+MSC' и 'CDC+HID'). В аргументе port должно быть целое число («0», «1» и т.д.) – в нем задается, какой USB-порт использовать, если плата оснащена несколькими USB-портами. Если задать «-1», это выберет порт по умолчанию или автоматически выбранный порт. В аргументах vid и pid задаются VID (ID поставщика) и PID (ID продукта). Если задать в pid значение «-1», то PID будет выбран в зависимости от значения в modestr. Если вы выбрали MSC-режим, то также можете задать аргумент msc, чтобы задать список адресов SCSI LUN, которые можно использовать через MSC-интерфейс. Например, 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 (если он поддерживается используемой платформой).

Классы

  • Класс Accel – управление акселерометром.
  • Класс ADC – аналогово-цифровое преобразование.
  • Класс CAN – коммуникационная шина CAN (controller area network).
  • Класс DAC – цифро-аналоговое преобразование.
  • Класс ExtInt – настройка I/O-контактов для прерываний на внешних событиях.
  • Класс Flash – доступ к встроенной flash-памяти.
  • Класс I2C – класс для работы с протоколом I2C.
  • Класс LCD – управление LCD-дисплеем на плате LCD32MKv1.0.
  • Класс LED – управление светодиодом.
  • Класс Pin – управление I/O-контактами.
  • Класс PinAF – альтернативные функции контактов.
  • Класс RTC – часы реального времени.
  • Класс Servo – драйвер для 3-проводного сервомотора.
  • Класс SPI – протокол последовательной коммуникации SPI, управляемый через ведущее устройство (мастера).
  • Класс Switch – управление кнопками.
  • Класс Timer – управление внутренними таймерами.
  • Класс TimerChannel — настройка канала для таймера.
  • Класс UART – шина для двусторонней последовательной передачи данных.
  • Класс USB_HID - USB с HID-интерфейсом
  • Класс USB_VCP - USB c VCP-интерфейсом

<syntaxhighlight lang="python" enclose="div">

См.также

Внешние ссылки