diff options
Diffstat (limited to 'stmhal/usb.h')
-rw-r--r-- | stmhal/usb.h | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/stmhal/usb.h b/stmhal/usb.h index e0bfe9a76e..4ac51f3228 100644 --- a/stmhal/usb.h +++ b/stmhal/usb.h @@ -24,28 +24,40 @@ * THE SOFTWARE. */ -typedef enum { - USB_DEVICE_MODE_CDC_MSC, - USB_DEVICE_MODE_CDC_HID, -} usb_device_mode_t; +#include "usbd_cdc_msc_hid0.h" + +#define PYB_USB_FLAG_DEV_ENABLED (0x0001) +#define PYB_USB_FLAG_USB_MODE_CALLED (0x0002) + +// Windows needs a different PID to distinguish different device configurations +#define USBD_PID_DEFAULT (0x9800) +#define USBD_PID_SECONDARY (0x9801) typedef enum { - USB_STORAGE_MEDIUM_FLASH, - USB_STORAGE_MEDIUM_SDCARD, -} usb_storage_medium_t; + PYB_USB_STORAGE_MEDIUM_NONE = 0, + PYB_USB_STORAGE_MEDIUM_FLASH, + PYB_USB_STORAGE_MEDIUM_SDCARD, +} pyb_usb_storage_medium_t; +extern mp_uint_t pyb_usb_flags; +extern struct _USBD_HandleTypeDef hUSBDDevice; +extern pyb_usb_storage_medium_t pyb_usb_storage_medium; +extern const struct _mp_obj_tuple_t pyb_usb_hid_mouse_obj; +extern const struct _mp_obj_tuple_t pyb_usb_hid_keyboard_obj; extern const mp_obj_type_t pyb_usb_vcp_type; +extern const mp_obj_type_t pyb_usb_hid_type; +MP_DECLARE_CONST_FUN_OBJ(pyb_usb_mode_obj); +MP_DECLARE_CONST_FUN_OBJ(pyb_have_cdc_obj); // deprecated +MP_DECLARE_CONST_FUN_OBJ(pyb_hid_send_report_obj); // deprecated void pyb_usb_init0(void); -void pyb_usb_dev_init(usb_device_mode_t mode, usb_storage_medium_t medium); -void pyb_usb_dev_stop(void); +void pyb_usb_dev_init(uint16_t pid, usb_device_mode_t mode, USBD_HID_ModeInfoTypeDef *hid_info); +void pyb_usb_dev_deinit(void); bool usb_vcp_is_enabled(void); -bool usb_vcp_is_connected(void); void usb_vcp_set_interrupt_char(int c); int usb_vcp_recv_byte(uint8_t *c); // if a byte is available, return 1 and put the byte in *c, else return 0 void usb_vcp_send_strn(const char* str, int len); void usb_vcp_send_strn_cooked(const char *str, int len); -void usb_hid_send_report(uint8_t *buf); // 4 bytes for mouse: ?, x, y, ? void pyb_usb_host_init(void); void pyb_usb_host_process(void); |