usb_stdio.c (776B)
1 #include "usb_stdio.h" 2 3 #include "pico/stdio.h" 4 #include "pico/stdio/driver.h" 5 #include "tusb.h" 6 7 static void usb_stdio_write(const char *buf, int len); 8 static void usb_stdio_flush(void); 9 static int usb_stdio_read(char *buf, int len); 10 11 static struct stdio_driver usb_stdio = { 12 .out_chars = usb_stdio_write, 13 .out_flush = usb_stdio_flush, 14 .in_chars = usb_stdio_read, 15 .next = NULL 16 }; 17 18 void 19 usb_stdio_write(const char *buf, int len) 20 { 21 tud_cdc_write(buf, (uint32_t) len); 22 } 23 24 void 25 usb_stdio_flush(void) 26 { 27 tud_cdc_write_flush(); 28 tud_task(); 29 } 30 31 int 32 usb_stdio_read(char *buf, int len) 33 { 34 return (int) tud_cdc_read(buf, (uint32_t) len); 35 } 36 37 void 38 usb_stdio_init(void) 39 { 40 stdio_set_driver_enabled(&usb_stdio, true); 41 stdio_set_translate_crlf(&usb_stdio, true); 42 stdio_init_all(); 43 }