diff --git a/tinyusb/device/usbd.c b/tinyusb/device/usbd.c index 2a65b503..e9fe26b9 100644 --- a/tinyusb/device/usbd.c +++ b/tinyusb/device/usbd.c @@ -168,8 +168,7 @@ void usbd_setup_received_isr(uint8_t coreid, tusb_control_request_t * p_request) break; case TUSB_REQUEST_SET_ADDRESS: - p_device->address = (uint8_t) p_request->wValue; - dcd_controller_set_address(coreid, p_device->address); + dcd_controller_set_address(coreid, (uint8_t) p_request->wValue); usbd_devices[coreid].state = TUSB_DEVICE_STATE_ADDRESSED; dcd_pipe_control_xfer(coreid, TUSB_DIR_HOST_TO_DEV, NULL, 0); // zero length diff --git a/tinyusb/device/usbd_dcd.h b/tinyusb/device/usbd_dcd.h index c58d852f..27e4d737 100644 --- a/tinyusb/device/usbd_dcd.h +++ b/tinyusb/device/usbd_dcd.h @@ -55,13 +55,11 @@ extern "C" { #endif -#define USBD_MAX_INTERFACE 10 // TODO refractor later +#define USBD_MAX_INTERFACE 16 // TODO refractor later #define USBD_MAX_ENDPOINT 32 // TODO refractor later typedef struct { volatile uint8_t state; - uint8_t address; uint8_t interface2class[USBD_MAX_INTERFACE]; // determine interface number belongs to which class - uint8_t endpoint_idx2class[USBD_MAX_ENDPOINT]; // determine endpoint index belongs to which class }usbd_device_info_t; extern usbd_device_info_t usbd_devices[CONTROLLER_DEVICE_NUMBER];