14 if (!tud_cdc_connected()) {
19 while (written < len) {
20 size_t avail = tud_cdc_write_available();
23 tud_cdc_write_flush();
25 avail = tud_cdc_write_available();
31 size_t to_write = (len - written) < avail ? (len - written) : avail;
32 size_t n = tud_cdc_write(data + written, to_write);
40 tud_cdc_write_flush();
46 return write(
reinterpret_cast<const uint8_t*
>(str), strlen(str));
50 if (!tud_cdc_connected()) {
54 if (tud_cdc_write_available() == 0) {
55 tud_cdc_write_flush();
57 if (tud_cdc_write_available() == 0) {
62 return tud_cdc_write_char(
byte) == 1;
66 if (!tud_cdc_available()) {
69 return tud_cdc_read(data, max_len);
73 if (!tud_cdc_available()) {
76 return tud_cdc_read_char();
80 return tud_cdc_available();
84 return tud_cdc_connected();
88 tud_cdc_write_flush();
91 for (
int i = 0; i < 1000; i++) {
93 if (tud_cdc_write_available() == CFG_TUD_CDC_TX_BUFSIZE) {
97 for (
volatile int j = 0; j < 1000; j++) {}
USB CDC (Virtual COM Port) interface.
static size_t write(const uint8_t *data, size_t len)
Write data to USB serial (non-blocking)
static size_t puts(const char *str)
Write null-terminated string.
static void flush()
Flush TX buffer.
static size_t available()
Get number of bytes available to read.
static size_t read(uint8_t *data, size_t max_len)
Read data from USB serial (non-blocking)
static bool write_byte(uint8_t byte)
Write single byte.
static bool connected()
Check if host has terminal connected (DTR set)
static int read_byte()
Read single byte.