classe USB_VCP – porta de comunicação virtual USB¶
A classe USB_VCP permite a criação de um objeto do tipo stream que representa a porta de comunicação virtual USB. Ela pode ser usada para ler e escrever dados via USB para o host conectado.
Construtores¶
- class pyb.USB_VCP(id: int = 0)¶
Cria um novo objeto
USB_VCP. O argumento id seleciona qual porta USB VCP usar quando mais de uma é exposta.Métodos¶
- init(*, flow: int = -1) None¶
Configura a porta USB VCP. Se o argumento flow não for
-1, ele define o controle de fluxo, um OR bit a bit deUSB_VCP.RTSeUSB_VCP.CTS.RTScontrola o comportamento de leitura;CTScontrola o comportamento de escrita.
- setinterrupt(chr: int) None¶
Define o caractere que interrompe a execução do código Python. Isso é definido como 3 (CTRL-C) por padrão, e quando um caractere CTRL-C é recebido pela porta USB VCP, uma exceção KeyboardInterrupt é lançada.
Defina como -1 para desabilitar esse recurso de interrupção. Isso é útil quando você deseja enviar bytes brutos pela porta USB VCP.
- isconnected() bool¶
Retorna
Truese o USB estiver conectado como um dispositivo serial, caso contrárioFalse.
- close() None¶
Este método não faz nada. Ele existe para que o objeto USB_VCP possa agir como um arquivo.
- read(nbytes: int | None = None) bytes | None¶
Lê no máximo
nbytesdo dispositivo serial e os retorna como um objeto bytes. Senbytesnão for especificado, o método lê todos os bytes disponíveis do dispositivo serial. O stream USB_VCP funciona implicitamente em modo não bloqueante, portanto, se nenhum dado pendente estiver disponível, este método retornará imediatamente com o valorNone.
- readinto(buf: bytearray, maxlen: int | None = None) int | None¶
Lê bytes do dispositivo serial e os armazena em
buf, que deve ser um objeto do tipo buffer. No máximolen(buf)bytes são lidos. Semaxlenfor fornecido, então no máximomin(maxlen, len(buf))bytes são lidos.Retorna o número de bytes lidos e armazenados em
bufouNonese nenhum dado pendente estiver disponível.
- readline() bytes | None¶
Lê uma linha inteira do dispositivo serial.
Retorna um objeto bytes contendo os dados, incluindo o caractere de nova linha no final, ou
Nonese nenhum dado pendente estiver disponível.
- readlines() List[bytes]¶
Lê a maior quantidade de dados possível do dispositivo serial, dividindo-os em linhas.
Retorna uma lista de objetos bytes, cada objeto sendo uma das linhas. Cada linha incluirá o caractere de nova linha.
- write(buf: bytes | bytearray | str) int¶
Escreve os bytes de
bufno dispositivo serial.Retorna o número de bytes escritos.
- recv(data: int | bytearray, *, timeout: int = 5000) bytes | int¶
Recebe dados no barramento:
datapode ser um inteiro, que é o número de bytes a receber, ou um buffer mutável, que será preenchido com os bytes recebidos.timeouté o tempo limite em milissegundos para aguardar a recepção.
Valor de retorno: se
datafor um inteiro, então um novo buffer com os bytes recebidos; caso contrário, o número de bytes lidos emdataé retornado.
- send(data: int | bytes | bytearray, *, timeout: int = 5000) int¶
Envia dados pela USB VCP:
datasão os dados a serem enviados (um inteiro a enviar ou um objeto buffer).timeouté o tempo limite em milissegundos para aguardar o envio.
Valor de retorno: número de bytes enviados.
- irq(handler: Callable[[USB_VCP], None] | None = None, trigger: int = IRQ_RX, hard: bool = False) None¶
Registra handler para ser chamado sempre que um evento especificado por trigger ocorrer. A função handler deve receber exatamente um argumento, que será o objeto USB VCP. Passe
Nonepara desabilitar o callback.Os valores válidos para trigger são:
USB_VCP.IRQ_RX: novos dados estão disponíveis para leitura no objeto USB VCP.
Constantes¶
- RTS: int¶
Flag de controle de fluxo para
init(). HabilitarRTSfaz com que o dispositivo limite a transmissão do host quando o buffer de leitura está cheio.