klassen USB_VCP – USB virtuell kommunikationsport¶
Klassen USB_VCP möjliggör skapande av ett stream-liknande objekt som representerar den virtuella USB-kommunikationsporten. Den kan användas för att läsa och skriva data över USB till den anslutna värden.
Konstruktorer¶
- class pyb.USB_VCP(id: int = 0)¶
Skapa ett nytt
USB_VCP-objekt. Argumentet id väljer vilken USB VCP-port som ska användas när fler än en är exponerad.Metoder¶
- init(*, flow: int = -1) None¶
Konfigurera USB VCP-porten. Om argumentet flow inte är
-1ställer det in flödeskontrollen, en bitvis-OR avUSB_VCP.RTSochUSB_VCP.CTS.RTSstyr läsbeteendet;CTSstyr skrivbeteendet.
- setinterrupt(chr: int) None¶
Ställ in tecknet som avbryter körande Python-kod. Detta är som standard satt till 3 (CTRL-C), och när ett CTRL-C-tecken tas emot över USB VCP-porten utlöses ett KeyboardInterrupt-undantag.
Sätt till -1 för att inaktivera denna avbrottsfunktion. Detta är användbart när du vill skicka råa byte över USB VCP-porten.
- close() None¶
Denna metod gör ingenting. Den finns för att USB_VCP-objektet ska kunna fungera som en fil.
- read(nbytes: int | None = None) bytes | None¶
Läs högst
nbytesfrån den seriella enheten och returnera dem som ett bytes-objekt. Omnbytesinte anges läser metoden alla tillgängliga byte från den seriella enheten. USB_VCP stream arbetar implicit i icke-blockerande läge, så om ingen väntande data är tillgänglig returnerar denna metod omedelbart med värdetNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Läs byte från den seriella enheten och lagra dem i
buf, som bör vara ett buffertliknande objekt. Högstlen(buf)byte läses. Ommaxlenanges läses högstmin(maxlen, len(buf))byte.Returnerar antalet byte som lästes in och lagrades i
bufellerNoneom ingen väntande data är tillgänglig.
- readline() bytes | None¶
Läs en hel rad från den seriella enheten.
Returnerar ett bytes-objekt som innehåller datan, inklusive det avslutande radslutstecknet, eller
Noneom ingen väntande data är tillgänglig.
- readlines() List[bytes]¶
Läs så mycket data som möjligt från den seriella enheten och dela upp den i rader.
Returnerar en lista med bytes-objekt, där varje objekt är en av raderna. Varje rad inkluderar radslutstecknet.
- write(buf: bytes | bytearray | str) int¶
Skriv byten från
buftill den seriella enheten.Returnerar antalet skrivna byte.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Ta emot data på bussen:
datakan vara ett heltal, vilket är antalet byte som ska tas emot, eller en muterbar buffert, som kommer att fyllas med mottagna byte.timeoutär timeouten i millisekunder för att vänta på mottagningen.
Returvärde: om
dataär ett heltal returneras en ny buffert med de mottagna byten, annars returneras antalet byte som lästes in idata.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Skicka data över USB VCP:
dataär datan som ska skickas (ett heltal att skicka, eller ett buffertobjekt).timeoutär timeouten i millisekunder för att vänta på sändningen.
Returvärde: antalet skickade byte.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Registrera handler för att anropas närhelst en händelse som anges av trigger inträffar. Funktionen handler måste ta exakt ett argument, vilket kommer att vara USB_VCP-objektet. Skicka in
Noneför att inaktivera återanropet.Giltiga värden för trigger är:
USB_VCP.IRQ_RX: ny data är tillgänglig för läsning från USB_VCP-objektet.
Konstanter¶
- RTS: int¶
Flödeskontrollflagga för
init(). Att aktiveraRTSfår enheten att strypa värdens överföring när läsbufferten är full.