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 端口通常是第一个。

在这些板上可用
  • 8086 Commander
  • @sarfata shIRtty
  • ARAMCON Badge 2019
  • ARAMCON2 Badge
  • ATMegaZero ESP32-S2
  • Adafruit BLM Badge
  • Adafruit CLUE nRF52840 Express
  • Adafruit Circuit Playground Bluefruit
  • Adafruit Circuit Playground Express 4-H
  • Adafruit CircuitPlayground Express
  • Adafruit CircuitPlayground Express with Crickit libraries
  • Adafruit CircuitPlayground Express with displayio
  • Adafruit EdgeBadge
  • Adafruit Feather Bluefruit Sense
  • Adafruit Feather M0 Adalogger
  • Adafruit Feather M0 Basic
  • Adafruit Feather M0 Express
  • Adafruit Feather M0 Express with Crickit libraries
  • Adafruit Feather M0 RFM69
  • Adafruit Feather M0 RFM9x
  • Adafruit Feather M4 CAN
  • Adafruit Feather M4 Express
  • Adafruit Feather MIMXRT1011
  • Adafruit Feather RP2040
  • Adafruit Feather STM32F405 Express
  • Adafruit Feather nRF52840 Express
  • Adafruit FunHouse
  • Adafruit Gemma M0
  • Adafruit Gemma M0 PyCon 2018
  • Adafruit Grand Central M4 Express
  • Adafruit Hallowing M4 Express
  • Adafruit ItsyBitsy M0 Express
  • Adafruit ItsyBitsy M4 Express
  • Adafruit ItsyBitsy RP2040
  • Adafruit ItsyBitsy nRF52840 Express
  • Adafruit LED Glasses Driver nRF52840
  • Adafruit Macropad RP2040
  • Adafruit MagTag
  • Adafruit Matrix Portal M4
  • Adafruit Metro ESP32S2
  • Adafruit Metro M0 Express
  • Adafruit Metro M4 Airlift Lite
  • Adafruit Metro M4 Express
  • Adafruit Metro nRF52840 Express
  • Adafruit Monster M4SK
  • Adafruit NeoKey Trinkey M0
  • Adafruit NeoPixel Trinkey M0
  • Adafruit ProxLight Trinkey M0
  • Adafruit PyGamer
  • Adafruit PyPortal
  • Adafruit PyPortal Pynt
  • Adafruit PyPortal Titano
  • Adafruit PyRuler
  • Adafruit Pybadge
  • Adafruit QT Py M0
  • Adafruit QT Py M0 Haxpress
  • Adafruit QT Py RP2040
  • Adafruit QT2040 Trinkey
  • Adafruit Rotary Trinkey M0
  • Adafruit Slide Trinkey M0
  • Adafruit Trellis M4 Express
  • Adafruit Trinket M0
  • AloriumTech Evo M51
  • Arduino MKR Zero
  • Arduino MKR1300
  • Arduino Nano 33 BLE
  • Arduino Nano 33 IoT
  • Arduino Nano RP2040 Connect
  • Arduino Zero
  • Artisense Reference Design RD00
  • AtelierDuMaker nRF52840 Breakout
  • BDMICRO VINA-D21
  • BDMICRO VINA-D51
  • BLE-SS dev board Multi Sensor
  • BastBLE
  • BastWiFi
  • BlueMicro840
  • CP Sapling M0
  • CP Sapling M0 w/ SPI Flash
  • CP32-M4
  • Capable Robot Programmable USB Hub
  • Cedar Grove StringCar M0 Express
  • Challenger RP2040 WiFi
  • Circuit Playground Express Digi-Key PyCon 2019
  • CircuitBrains Basic
  • CircuitBrains Deluxe
  • CrumpS2
  • Cytron Maker Pi RP2040
  • DynOSSAT-EDU-EPS
  • DynOSSAT-EDU-OBC
  • DynaLoRa_USB
  • ESP 12k NodeMCU
  • Electronic Cats Bast Pro Mini M0
  • Electronic Cats CatWAN USBStick
  • Electronic Cats Hunter Cat NFC
  • Electronic Cats NFC Copy Cat
  • Electronut Labs Blip
  • Electronut Labs Papyr
  • EncoderPad RP2040
  • Escornabot Makech
  • Espruino Pico
  • Espruino Wifi
  • Feather ESP32S2 without PSRAM
  • Feather MIMXRT1011
  • Feather MIMXRT1062
  • FeatherS2
  • FeatherS2 Neo
  • FeatherS2 PreRelease
  • Fluff M0
  • Fomu
  • Franzininho WIFI w/Wroom
  • Franzininho WIFI w/Wrover
  • Gravitech Cucumber M
  • Gravitech Cucumber MS
  • Gravitech Cucumber R
  • Gravitech Cucumber RS
  • HMI-DevKit-1.1
  • Hacked Feather M0 Express with 8Mbyte SPI flash
  • HalloWing M0 Express
  • HiiBot BlueFi
  • IMXRT1010-EVK
  • IkigaiSense Vita nRF52840
  • J&J Studios datum-Distance
  • J&J Studios datum-IMU
  • J&J Studios datum-Light
  • J&J Studios datum-Weather
  • Kaluga 1
  • LILYGO TTGO T8 ESP32-S2 w/Display
  • LoC BeR M4 base board
  • MDBT50Q-DB-40
  • MDBT50Q-RX Dongle
  • MEOWBIT
  • MORPHEANS MorphESP-240
  • MakerDiary nRF52840 MDK
  • MakerDiary nRF52840 MDK USB Dongle
  • Makerdiary M60 Keyboard
  • Makerdiary Pitaya Go
  • Makerdiary nRF52840 M.2 Developer Kit
  • Melopero Shake RP2040
  • Meow Meow
  • Metro MIMXRT1011
  • Mini SAM M4
  • NUCLEO STM32F746
  • NUCLEO STM32F767
  • NUCLEO STM32H743
  • OPENMV-H7 R1
  • Oak Dev Tech BREAD2040
  • Oak Dev Tech PixelWing ESP32S2
  • Open Hardware Summit 2020 Badge
  • PCA10056 nRF52840-DK
  • PCA10059 nRF52840 Dongle
  • PCA10100 nRF52833 Dongle
  • PYB LR Nano V2
  • Particle Argon
  • Particle Boron
  • Particle Xenon
  • PewPew 10.2
  • PewPew 13
  • PewPew M4
  • PicoPlanet
  • Pimoroni Interstate 75
  • Pimoroni Keybow 2040
  • Pimoroni PGA2040
  • Pimoroni Pico LiPo (16MB)
  • Pimoroni Pico LiPo (4MB)
  • Pimoroni PicoSystem
  • Pimoroni Plasma 2040
  • Pimoroni Tiny 2040
  • PyCubedv04
  • PyCubedv04-MRAM
  • PyCubedv05
  • PyCubedv05-MRAM
  • PyKey60
  • PyboardV1_1
  • Raspberry Pi Pico
  • Robo HAT MM1 M4
  • S2Mini
  • SAM E54 Xplained Pro
  • SAM32v26
  • SPRESENSE
  • ST STM32F746G Discovery
  • STM32F411E_DISCO
  • STM32F412G_DISCO
  • STM32F4_DISCO
  • Saola 1 w/Wroom
  • Saola 1 w/Wrover
  • Seeeduino Wio Terminal
  • Seeeduino XIAO
  • Serpente
  • Silicognition LLC M4-Shim
  • SparkFun LUMIDrive
  • SparkFun MicroMod RP2040 Processor
  • SparkFun MicroMod SAMD51 Processor
  • SparkFun MicroMod nRF52840 Processor
  • SparkFun Pro Micro RP2040
  • SparkFun Pro nRF52840 Mini
  • SparkFun Qwiic Micro
  • SparkFun RedBoard Turbo
  • SparkFun SAMD21 Dev Breakout
  • SparkFun SAMD21 Mini Breakout
  • SparkFun STM32 MicroMod Processor
  • SparkFun Thing Plus - RP2040
  • SparkFun Thing Plus - SAMD51
  • Sprite_v2b
  • StackRduino M0 PRO
  • TG-Boards' Datalore IP M4
  • TG-Watch
  • THUNDERPACK_v11
  • THUNDERPACK_v12
  • Targett Module Clip w/Wroom
  • Targett Module Clip w/Wrover
  • Teensy 4.0
  • Teensy 4.1
  • Teknikio Bluebird
  • The Open Book Feather
  • TinkeringTech ScoutMakes Azul
  • TinyS2
  • Trinket M0 Haxpress
  • UARTLogger II
  • WarmBit BluePixel nRF52840
  • Winterbloom Big Honking Button
  • Winterbloom Sol
  • XinaBox CC03
  • XinaBox CS11
  • iMX RT 1020 EVK
  • iMX RT 1060 EVK
  • keithp.com snekboard
  • microS2
  • nanoESP32-S2 w/Wrover
  • nanoESP32-S2 w/Wroom
  • ndGarage[n°] Bit6: FeatherSnow-v2
  • ndGarage[n°]Bit6:FeatherSnow
  • nice!nano
  • senseBox MCU
  • stm32f411ce-blackpill
  • stm32f411ce-blackpill-with-flash
  • uChip
  • uGame10

usb_cdc.console :Optional[Serial]
该对象用于 REPL,以及用于和。console Serial sys.stdin sys.stdout.

如果禁用consoleNone

但是,请注意 sys.stdinsys.stdout 是基于文本的流,而console 对象是二进制流。console 除非您想写入二进制数据,否则通常不需要写入。

usb_cdc.data :Optional[Serial]

Serial 可用于向主机发送二进制数据和从主机接收二进制数据的对象。请注意,默认情况下data是禁用的。dataNone如果禁用。

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之前调用。

参数
  • bool (data) – 启用或禁用console USB 串行设备。真启用;False 禁用。默认启用。

  • bool – 启用或禁用dataUSB 串行设备。真启用;False 禁用。默认禁用。

如果您一次启用太多设备,您将耗尽 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]

的初始值timeoutNone。如果None,则无限期等待以满足读取操作的条件。如果为 0,则不等待。如果 > 0,则仅等待timeout 几秒钟。

write_timeout :Optional[float]

的初始值write_timeoutNone。如果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”,它也将作为行的一部分包含在内。

参数

size (int) – 要读取的最大字符数。-1 意味着尽可能多。

返回

读取的行

返回类型

字节None

readlines(self)List[Optional[bytes]]

将多行作为列表读取,使用 readline().

警告

如果 timeoutNone, readlines() 则永远不会返回,因为无法指示流结束。

返回

读取的行列表

返回类型

列表

write(self, buf: _typing.ReadableBuffer)int

从字节缓冲区中写入尽可能多的字节。

返回

写入的字节数

返回类型

整数

flush(self)None

强制排除任何未写入的字节,等待它们被写入。

reset_input_buffer(self)None

清除任何未读字节。

reset_output_buffer(self)None

清除任何未写入的字节。