diff --git a/usb_serial.c b/usb_serial.c new file mode 100644 index 0000000000000000000000000000000000000000..be3e1a5215eff42998b428dde3f37eb3bfab2ca7 --- /dev/null +++ b/usb_serial.c @@ -0,0 +1,35 @@ +#include "usb_serial.h" + +void usb_init(void) { + tusb_init(); // Setup USB +} + +int usb_write(const uint8_t *buf, int len) { + if (!tud_cdc_connected()) return -1; + + int sent_total = 0; + while (len > 0) { + int sent = tud_cdc_write(buf, len); + if (sent < 0) return sent; + tud_cdc_write_flush(); + buf += sent; + len -= sent; + sent_total += sent; + } + return sent_total; +} + +int usb_read(uint8_t *buf, int len) { + if (tud_cdc_available()) { + return tud_cdc_read(buf, len); + } + return 0; +} + +void usb_cleanup(void) { + +} + +bool usb_connected(void) { + return tud_cdc_connected(); +}