class USB_VCP – USB虚拟通讯端口

USB_VCP类允许创建表示USB虚拟通讯端口的类似 stream 的对象。它可用于通过USB与连接的主机读写数据。

构造

class pyb.USB_VCP(id=0)

创建一个新的USB_VCP对象。*id*参数指定要使用哪个USB VCP端口。

创建一个新的 USB_VCP 对象。

方法

USB_VCP.init(*, flow=-1)

配置USB VCP端口。如果*flow*参数不是-1,则该值设置流控制,它可以是 USB_VCP.RTSUSB_VCP.CTS 的按位或。RTS用于控制读取行为,CTS用于控制写入行为。

USB_VCP.setinterrupt(chr)

设置中断正在运行的Python代码的字符。默认情况下,这设置为3(CTRL-C),当通过USB VCP端口接收到CTRL-C字符时,会引发KeyboardInterrupt异常。

设置为-1以禁用此中断功能。当您想通过USB VCP端口发送原始字节时,这很有用。

USB_VCP.isconnected()

如果USB已连接为串行设备,则返回 True,否则返回 False

USB_VCP.debug_mode_enabled()

如果OpenMV IDE 连接到 OpenMV CAM 那么返回 True

USB_VCP.any()

如果有任何等待的字符,则返回 True,否则返回 False

USB_VCP.close()

此方法什么也不做。它存在是为了USB_VCP对象可以充当文件。

USB_VCP.read([nbytes])

从串行设备中最多读取 nbytes 字节,并将它们作为一个字节对象返回。如果未指定 nbytes,则该方法从串行设备读取所有可用的字节。USB_VCP stream 隐式地在非阻塞模式下工作,因此,如果没有挂起的数据可用,则此方法将立即返回带有 None 值。

USB_VCP.readinto(buf[, maxlen])

从串行设备中读取字节并将其存储到 buf 中,buf 应该是一个类似缓冲区的对象。最多读取 len(buf) 字节。如果给出了 maxlen,则最多读取 min(maxlen, len(buf)) 字节。

返回读取并存储到 buf 中的字节数,如果没有挂起的数据可用,则返回 None

USB_VCP.readline()

从串行设备中读取一整行。

返回一个包含数据的字节对象,包括尾随的换行字符,如果没有挂起的数据可用,则返回 None

USB_VCP.readlines()

尽可能多地从串行设备中读取数据,将其分解为行。

返回一个字节对象列表,每个对象都是其中一行。每行将包括换行字符。

USB_VCP.write(buf)

buf 中的字节写入串行设备。

返回写入的字节数。

USB_VCP.recv(data, *, timeout=5000)

在总线上接收数据:

  • data 可以是一个整数,表示要接收的字节数,或者是一个可变缓冲区,将填充接收到的字节。

  • timeout 是等待接收的超时时间(以毫秒为单位)。

返回值:如果 data 是一个整数,则返回接收到的字节的新缓冲区,否则返回读入 data 的字节数。

USB_VCP.send(data, *, timeout=5000)

通过 USB VCP 发送数据:

  • data 是要发送的数据(要发送的整数或缓冲区对象)。

  • timeout 是等待发送的超时时间(以毫秒为单位)。

返回值:发送的字节数。

USB_VCP.irq(handler=None, trigger=IRQ_RX, hard=False)

注册*handler*,以便在发生*trigger*指定的事件时调用。*handler*函数必须接受一个参数,这将是USB VCP对象。传入 None 以禁用回调。

trigger 的有效值为:

  • USB_VCP.IRQ_RX:可从 USB VCP 对象读取新数据。

常量

USB_VCP.RTS
USB_VCP.CTS

选择流控制类型。

USB_VCP.IRQ_RX

USB_VCP.irq() 的IRQ触发值。