class USB_VCP – USB virtuele compoort¶
De klasse USB_VCP maakt het mogelijk een stream-achtig object te creëren dat de USB virtuele compoort vertegenwoordigt. Het kan worden gebruikt om data via USB naar de aangesloten host te lezen en te schrijven.
Constructors¶
- class pyb.USB_VCP(id: int = 0)¶
Maak een nieuw
USB_VCP-object aan. Het argument id selecteert welke USB VCP-poort moet worden gebruikt wanneer er meer dan één beschikbaar is.Methoden¶
- init(*, flow: int = -1) None¶
Configureer de USB VCP-poort. Als het argument flow niet
-1is, stelt het de stroombesturing in, een bitsgewijze OR vanUSB_VCP.RTSenUSB_VCP.CTS.RTSregelt het leesgedrag;CTSregelt het schrijfgedrag.
- setinterrupt(chr: int) None¶
Stel het teken in dat draaiende Python-code onderbreekt. Dit is standaard ingesteld op 3 (CTRL-C), en wanneer er een CTRL-C-teken via de USB VCP-poort wordt ontvangen, wordt een KeyboardInterrupt-uitzondering gegenereerd.
Stel in op -1 om deze interruptfunctie uit te schakelen. Dit is handig wanneer u onbewerkte bytes via de USB VCP-poort wilt verzenden.
- close() None¶
Deze methode doet niets. Het bestaat zodat het USB_VCP-object zich als een bestand kan gedragen.
- read(nbytes: int | None = None) bytes | None¶
Lees maximaal
nbytesvan het seriële apparaat en retourneer ze als een bytes-object. Alsnbytesniet is opgegeven, leest de methode alle beschikbare bytes van het seriële apparaat. De USB_VCP stream werkt impliciet in niet-blokkerende modus, dus als er geen wachtende data beschikbaar is, retourneert deze methode direct met de waardeNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Lees bytes van het seriële apparaat en sla ze op in
buf, dat een buffer-achtig object moet zijn. Er worden maximaallen(buf)bytes gelezen. Alsmaxlenis opgegeven, worden er maximaalmin(maxlen, len(buf))bytes gelezen.Retourneert het aantal gelezen en in
bufopgeslagen bytes ofNoneals er geen wachtende data beschikbaar is.
- readline() bytes | None¶
Lees een hele regel van het seriële apparaat.
Retourneert een bytes-object met de data, inclusief het afsluitende nieuwe-regelteken, of
Noneals er geen wachtende data beschikbaar is.
- readlines() List[bytes]¶
Lees zoveel mogelijk data van het seriële apparaat en splits deze op in regels.
Retourneert een lijst van bytes-objecten, waarbij elk object een van de regels is. Elke regel bevat het nieuwe-regelteken.
- write(buf: bytes | bytearray | str) int¶
Schrijf de bytes uit
bufnaar het seriële apparaat.Retourneert het aantal geschreven bytes.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Ontvang data op de bus:
datakan een geheel getal zijn, namelijk het aantal te ontvangen bytes, of een veranderbare buffer, die met ontvangen bytes wordt gevuld.timeoutis de time-out in milliseconden om op de ontvangst te wachten.
Retourwaarde: als
dataeen geheel getal is, dan een nieuwe buffer met de ontvangen bytes, anders wordt het aantal indatagelezen bytes geretourneerd.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Verzend data via de USB VCP:
datais de te verzenden data (een geheel getal om te verzenden, of een bufferobject).timeoutis de time-out in milliseconden om op de verzending te wachten.
Retourwaarde: aantal verzonden bytes.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Registreer handler om te worden aangeroepen wanneer een door trigger gespecificeerde gebeurtenis optreedt. De handler-functie moet precies één argument aannemen, namelijk het USB_VCP-object. Geef
Nonedoor om de callback uit te schakelen.Geldige waarden voor trigger zijn:
USB_VCP.IRQ_RX: er is nieuwe data beschikbaar om te lezen van het USB_VCP-object.
Constanten¶
- RTS: int¶
Stroombesturingsvlag voor
init(). Het inschakelen vanRTSzorgt ervoor dat het apparaat de transmissie van de host beperkt wanneer de leesbuffer vol is.