class USB_VCP – виртуальный COM-порт USB¶
Класс USB_VCP позволяет создать объект, подобный stream, представляющий виртуальный COM-порт USB. Его можно использовать для чтения и записи данных по USB на подключённый хост.
Конструкторы¶
- class pyb.USB_VCP(id: int = 0)¶
Создаёт новый объект
USB_VCP. Аргумент id выбирает, какой порт USB VCP использовать, когда выведено более одного.Методы¶
- init(*, flow: int = -1) None¶
Настраивает порт USB VCP. Если аргумент flow не равен
-1, он задаёт управление потоком — побитовое ИЛИ изUSB_VCP.RTSиUSB_VCP.CTS.RTSуправляет поведением чтения;CTSуправляет поведением записи.
- setinterrupt(chr: int) None¶
Задаёт символ, который прерывает выполнение кода Python. По умолчанию он равен 3 (CTRL-C), и когда символ CTRL-C принимается через порт USB VCP, вызывается исключение KeyboardInterrupt.
Установите -1, чтобы отключить эту функцию прерывания. Это полезно, когда вы хотите отправлять необработанные байты через порт USB VCP.
- isconnected() bool¶
Возвращает
True, если USB подключён как последовательное устройство, иначеFalse.
- close() None¶
Этот метод ничего не делает. Он существует, чтобы объект USB_VCP мог действовать как файл.
- read(nbytes: int | None = None) bytes | None¶
Читает не более
nbytesиз последовательного устройства и возвращает их как объект bytes. Еслиnbytesне задан, то метод читает все доступные байты из последовательного устройства. USB_VCP stream неявно работает в неблокирующем режиме, поэтому, если нет ожидающих данных, этот метод немедленно вернётся со значениемNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Читает байты из последовательного устройства и сохраняет их в
buf, который должен быть объектом, подобным буферу. Читается не болееlen(buf)байт. Если заданmaxlen, то читается не болееmin(maxlen, len(buf))байт.Возвращает число байт, прочитанных и сохранённых в
buf, илиNone, если нет ожидающих данных.
- readline() bytes | None¶
Читает целую строку из последовательного устройства.
Возвращает объект bytes, содержащий данные, включая завершающий символ новой строки, или
None, если нет ожидающих данных.
- readlines() List[bytes]¶
Читает как можно больше данных из последовательного устройства, разбивая их на строки.
Возвращает список объектов bytes, каждый из которых является одной из строк. Каждая строка будет включать символ новой строки.
- write(buf: bytes | bytearray | str) int¶
Записывает байты из
bufв последовательное устройство.Возвращает число записанных байт.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Принимает данные на шине:
dataможет быть целым числом, которое является числом байт для приёма, или изменяемым буфером, который будет заполнен принятыми байтами.timeout— тайм-аут в миллисекундах ожидания приёма.
Возвращаемое значение: если
data— целое число, то новый буфер принятых байт, иначе возвращается число байт, прочитанных вdata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Отправляет данные по USB VCP:
data— это данные для отправки (целое число для отправки или объект-буфер).timeout— тайм-аут в миллисекундах ожидания отправки.
Возвращаемое значение: число отправленных байт.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Регистрирует handler, который будет вызываться при каждом возникновении события, заданного trigger. Функция handler должна принимать ровно один аргумент, которым будет объект USB VCP. Передайте
None, чтобы отключить функцию обратного вызова.Допустимые значения для trigger:
USB_VCP.IRQ_RX: новые данные доступны для чтения из объекта USB VCP.
Константы¶
- RTS: int¶
Флаг управления потоком для
init(). ВключениеRTSзаставляет устройство приостанавливать передачу хоста, когда буфер чтения заполнен.