usb_uart.h 664 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. typedef struct UsbUart UsbUart;
  5. typedef struct {
  6. uint8_t vcp_ch;
  7. size_t (*rx_data)(void* ctx, uint8_t* data, size_t length);
  8. void* rx_data_ctx;
  9. } UsbUartConfig;
  10. typedef struct {
  11. uint32_t rx_cnt;
  12. uint32_t tx_cnt;
  13. } UsbUartState;
  14. UsbUart* usb_uart_enable(UsbUartConfig* cfg);
  15. void usb_uart_disable(UsbUart* usb_uart);
  16. void usb_uart_set_config(UsbUart* usb_uart, UsbUartConfig* cfg);
  17. void usb_uart_get_config(UsbUart* usb_uart, UsbUartConfig* cfg);
  18. void usb_uart_get_state(UsbUart* usb_uart, UsbUartState* st);
  19. bool usb_uart_tx_data(UsbUart* usb_uart, uint8_t* data, size_t length);