classe USB_VCP – port de communication virtuel USB¶
La classe USB_VCP permet de créer un objet de type stream représentant le port de communication virtuel USB. Elle peut être utilisée pour lire et écrire des données via USB vers l’hôte connecté.
Constructeurs¶
- class pyb.USB_VCP(id: int = 0)¶
Crée un nouvel objet
USB_VCP. L’argument id sélectionne quel port USB VCP utiliser lorsque plus d’un est exposé.Méthodes¶
- init(*, flow: int = -1) None¶
Configure le port USB VCP. Si l’argument flow n’est pas
-1, il définit le contrôle de flux, un OU binaire deUSB_VCP.RTSetUSB_VCP.CTS.RTSrégule le comportement de lecture ;CTSrégule le comportement d’écriture.
- setinterrupt(chr: int) None¶
Définit le caractère qui interrompt l’exécution du code Python. Il est défini sur 3 (CTRL-C) par défaut, et lorsqu’un caractère CTRL-C est reçu sur le port USB VCP, une exception KeyboardInterrupt est levée.
Définissez-le sur -1 pour désactiver cette fonctionnalité d’interruption. Cela est utile lorsque vous souhaitez envoyer des octets bruts sur le port USB VCP.
- close() None¶
Cette méthode ne fait rien. Elle existe pour que l’objet USB_VCP puisse se comporter comme un fichier.
- read(nbytes: int | None = None) bytes | None¶
Lit au plus
nbytesdepuis le périphérique série et les renvoie sous forme d’objet bytes. Sinbytesn’est pas spécifié, la méthode lit tous les octets disponibles depuis le périphérique série. Le stream USB_VCP fonctionne implicitement en mode non bloquant, donc si aucune donnée en attente n’est disponible, cette méthode renverra immédiatement la valeurNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Lit des octets depuis le périphérique série et les stocke dans
buf, qui doit être un objet de type tampon. Au pluslen(buf)octets sont lus. Simaxlenest fourni, alors au plusmin(maxlen, len(buf))octets sont lus.Renvoie le nombre d’octets lus et stockés dans
bufouNonesi aucune donnée en attente n’est disponible.
- readline() bytes | None¶
Lit une ligne entière depuis le périphérique série.
Renvoie un objet bytes contenant les données, y compris le caractère de saut de ligne final, ou
Nonesi aucune donnée en attente n’est disponible.
- readlines() List[bytes]¶
Lit autant de données que possible depuis le périphérique série, en les découpant en lignes.
Renvoie une liste d’objets bytes, chaque objet étant l’une des lignes. Chaque ligne inclura le caractère de saut de ligne.
- write(buf: bytes | bytearray | str) int¶
Écrit les octets de
bufsur le périphérique série.Renvoie le nombre d’octets écrits.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Reçoit des données sur le bus :
datapeut être un entier, qui est le nombre d’octets à recevoir, ou un tampon mutable, qui sera rempli avec les octets reçus.timeoutest le délai d’attente en millisecondes pour la réception.
Valeur de retour : si
dataest un entier, alors un nouveau tampon des octets reçus, sinon le nombre d’octets lus dansdataest renvoyé.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Envoie des données via l’USB VCP :
dataest la donnée à envoyer (un entier à envoyer, ou un objet tampon).timeoutest le délai d’attente en millisecondes pour l’envoi.
Valeur de retour : nombre d’octets envoyés.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Enregistre handler pour être appelé chaque fois qu’un événement spécifié par trigger se produit. La fonction handler doit prendre exactement un argument, qui sera l’objet USB VCP. Passez
Nonepour désactiver la fonction de rappel.Les valeurs valides pour trigger sont :
USB_VCP.IRQ_RX: de nouvelles données sont disponibles en lecture depuis l’objet USB VCP.
Constantes¶
- RTS: int¶
Indicateur de contrôle de flux pour
init(). ActiverRTSfait que le périphérique limite la transmission de l’hôte lorsque le tampon de lecture est plein.