class USB_VCP – USB virtual comm port¶
The USB_VCP class allows creation of a stream-like object representing the USB virtual comm port. It can be used to read and write data over USB to the connected host.
Constructors¶
- class pyb.USB_VCP(id: int = 0)¶
Create a new
USB_VCPobject. The id argument selects which USB VCP port to use when more than one is exposed.Methods¶
- init(*, flow: int = -1) None¶
Configure the USB VCP port. If the flow argument is not
-1it sets the flow control, a bitwise-OR ofUSB_VCP.RTSandUSB_VCP.CTS.RTSgates read behaviour;CTSgates write behaviour.
- setinterrupt(chr: int) None¶
Set the character which interrupts running Python code. This is set to 3 (CTRL-C) by default, and when a CTRL-C character is received over the USB VCP port, a KeyboardInterrupt exception is raised.
Set to -1 to disable this interrupt feature. This is useful when you want to send raw bytes over the USB VCP port.
- read(nbytes: int | None = None) bytes | None¶
Read at most
nbytesfrom the serial device and return them as a bytes object. Ifnbytesis not specified then the method reads all available bytes from the serial device. USB_VCP stream implicitly works in non-blocking mode, so if no pending data available, this method will return immediately withNonevalue.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Read bytes from the serial device and store them into
buf, which should be a buffer-like object. At mostlen(buf)bytes are read. Ifmaxlenis given and then at mostmin(maxlen, len(buf))bytes are read.Returns the number of bytes read and stored into
buforNoneif no pending data available.
- readline() bytes | None¶
Read a whole line from the serial device.
Returns a bytes object containing the data, including the trailing newline character or
Noneif no pending data available.
- readlines() List[bytes]¶
Read as much data as possible from the serial device, breaking it into lines.
Returns a list of bytes objects, each object being one of the lines. Each line will include the newline character.
- write(buf: bytes | bytearray | str) int¶
Write the bytes from
bufto the serial device.Returns the number of bytes written.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Receive data on the bus:
datacan be an integer, which is the number of bytes to receive, or a mutable buffer, which will be filled with received bytes.timeoutis the timeout in milliseconds to wait for the receive.
Return value: if
datais an integer then a new buffer of the bytes received, otherwise the number of bytes read intodatais returned.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Send data over the USB VCP:
datais the data to send (an integer to send, or a buffer object).timeoutis the timeout in milliseconds to wait for the send.
Return value: number of bytes sent.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Register handler to be called whenever an event specified by trigger occurs. The handler function must take exactly one argument, which will be the USB VCP object. Pass in
Noneto disable the callback.Valid values for trigger are:
USB_VCP.IRQ_RX: new data is available for reading from the USB VCP object.
Constants¶
- RTS: int¶
Flow-control flag for
init(). EnablingRTSmakes the device throttle the host’s transmission when the read buffer is full.