pio_usb.h
1 2 #pragma once 3 4 #include "pio_usb_configuration.h" 5 #include "usb_definitions.h" 6 7 #ifdef __cplusplus 8 extern "C" { 9 #endif 10 11 // Host functions 12 usb_device_t *pio_usb_host_init(const pio_usb_configuration_t *c); 13 int pio_usb_host_add_port(uint8_t pin_dp, PIO_USB_PINOUT pinout); 14 void pio_usb_host_task(void); 15 void pio_usb_host_stop(void); 16 void pio_usb_host_restart(void); 17 uint32_t pio_usb_host_get_frame_number(void); 18 19 // Call this every 1ms when skip_alarm_pool is true. 20 void pio_usb_host_frame(void); 21 22 // Device functions 23 usb_device_t *pio_usb_device_init(const pio_usb_configuration_t *c, 24 const usb_descriptor_buffers_t *buffers); 25 void pio_usb_device_task(void); 26 27 // Common functions 28 endpoint_t *pio_usb_get_endpoint(usb_device_t *device, uint8_t idx); 29 int pio_usb_get_in_data(endpoint_t *ep, uint8_t *buffer, uint8_t len); 30 int pio_usb_set_out_data(endpoint_t *ep, const uint8_t *buffer, uint8_t len); 31 32 #ifdef __cplusplus 33 } 34 #endif