usb_cdc
– USB CDC 串行流¶
该usb_cdc
模块允许访问 USB CDC(串行)通信。
在 Windows 上,每个 Serial
端口都作为单独的 COM 端口可见。首先,端口通常会被连续分配console
,但这并不总是正确的。
在 Linux 上,端口通常是/dev/ttyACM0
和/dev/ttyACM1
。该 console
端口通常是第一个。
在 MacOS 上,端口通常是/dev/cu.usbmodem<something>
. 内容因使用的 USB 总线和端口而异。该console
端口通常是第一个。
在这些板上可用
-
usb_cdc.
console
:Optional[Serial]¶ - 该对象用于 REPL,以及用于和。
console
Serial
sys.stdin
sys.stdout
. -
如果禁用
console
是None
。
但是,请注意
sys.stdin
和sys.stdout
是基于文本的流,而console
对象是二进制流。console
除非您想写入二进制数据,否则通常不需要写入。- 该对象用于 REPL,以及用于和。
-
usb_cdc.
data
:Optional[Serial]¶ Serial
可用于向主机发送二进制数据和从主机接收二进制数据的对象。请注意,默认情况下data
是禁用的。data
是None
如果禁用。
-
usb_cdc.
disable
() → None¶ 不要向主机提供任何 USB CDC 设备。可以在
boot.py
连接USB之前调用。相当于。usb_cdc.enable(console=False, data=False)
.
-
usb_cdc.
enable
(console: bool = True, data: bool = False) → None¶ 启用或禁用每个 CDC 设备。可以在
boot.py
连接USB之前调用。- 参数
如果您一次启用太多设备,您将耗尽 USB 端点。可用端点的数量因微控制器而异。CircuitPython 将在运行 boot.py 后进入安全模式,以通知您是否没有足够的端点可用。
-
class
usb_cdc.
Serial
¶ 通过 USB 接收 cdc 命令
您不能创建 的实例
usb_cdc.Serial
。可用实例在usb_cdc.serials
元组中。-
connected
:bool¶ 如果此串行连接到主机,则为真。(只读)
笔记
如果主机断言 DTR(数据终端就绪),则认为主机已连接。大多数终端程序并
pyserial
在打开串行连接时断言 DTR。但是,C#SerialPort
API 没有。您必须设置SerialPort.DtrEnable
.
-
in_waiting
:int¶ 返回等待在 USB 串行输入上读取的字节数。(只读)
-
out_waiting
:int¶ 返回等待写入 USB 串行输出的字节数。(只读)
-
timeout
:Optional[float]¶ 的初始值
timeout
是None
。如果None
,则无限期等待以满足读取操作的条件。如果为 0,则不等待。如果 > 0,则仅等待timeout
几秒钟。
-
write_timeout
:Optional[float]¶ 的初始值
write_timeout
是None
。如果None
,无限期地等待写完传递给 的所有字节write()
。如果 0,不等待。如果 > 0,则仅等待write_timeout
几秒钟。
-
read
(self, size: int = 1) → bytes¶ 最多读取
size
字节。如果size
超过内部缓冲区大小,则只会读取缓冲区中的字节。如果timeout
是 > 0 或None
, ,并且size
可用字节数少于字节,则继续等待直到超时到期或size
字节可用。- 返回
数据读取
- 返回类型
-
readinto
(self, buf: _typing.WriteableBuffer) → int¶ 将字节读入
buf
. 如果nbytes
i指定,则最多读取那么多字节,受timeout
否则,最多读取len(buf)
字节。- 返回
读取和存储的字节数
buf
- 返回类型
-
readline
(self, size: int = - 1) → Optional[bytes]¶ 读取以换行符(“\n”)结尾的行,包括换行符。如果未找到换行符且
timeout
为 0 ,则返回所有可读内容。如果None
出现错误,则返回。这是一个二进制流:换行符“\n”不能改变。如果主机传输“\r”,它也将作为行的一部分包含在内。
-
readlines
(self) → List[Optional[bytes]]¶ 将多行作为列表读取,使用
readline()
.警告
如果
timeout
是None
,readlines()
则永远不会返回,因为无法指示流结束。- 返回
读取的行列表
- 返回类型
-
write
(self, buf: _typing.ReadableBuffer) → int¶ 从字节缓冲区中写入尽可能多的字节。
- 返回
写入的字节数
- 返回类型
-