diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c index 81c6109a58..359ba58872 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/CDC/Src/usbd_cdc.c @@ -516,18 +516,18 @@ static uint8_t USBD_CDC_Init (USBD_HandleTypeDef *pdev, CDC_CMD_PACKET_SIZE); - pdev->pClassData = USBD_malloc(sizeof (USBD_CDC_HandleTypeDef)); + pdev->pCDC_ClassData = USBD_malloc(sizeof (USBD_CDC_HandleTypeDef)); - if(pdev->pClassData == NULL) + if(pdev->pCDC_ClassData == NULL) { ret = 1; } else { - hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; /* Init physical Interface components */ - ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->Init(); + ((USBD_CDC_ItfTypeDef *)pdev->pCDC_UserData)->Init(); /* Init Xfer states */ hcdc->TxState =0; @@ -583,11 +583,11 @@ static uint8_t USBD_CDC_DeInit (USBD_HandleTypeDef *pdev, /* DeInit physical Interface components */ - if(pdev->pClassData != NULL) + if(pdev->pCDC_ClassData != NULL) { - ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->DeInit(); - USBD_free(pdev->pClassData); - pdev->pClassData = NULL; + ((USBD_CDC_ItfTypeDef *)pdev->pCDC_UserData)->DeInit(); + USBD_free(pdev->pCDC_ClassData); + pdev->pCDC_ClassData = NULL; } return ret; @@ -603,7 +603,7 @@ static uint8_t USBD_CDC_DeInit (USBD_HandleTypeDef *pdev, static uint8_t USBD_CDC_Setup (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; static uint8_t ifalt = 0; switch (req->bmRequest & USB_REQ_TYPE_MASK) @@ -613,7 +613,7 @@ static uint8_t USBD_CDC_Setup (USBD_HandleTypeDef *pdev, { if (req->bmRequest & 0x80) { - ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->Control(req->bRequest, + ((USBD_CDC_ItfTypeDef *)pdev->pCDC_UserData)->Control(req->bRequest, (uint8_t *)hcdc->data, req->wLength); USBD_CtlSendData (pdev, @@ -633,7 +633,7 @@ static uint8_t USBD_CDC_Setup (USBD_HandleTypeDef *pdev, } else { - ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->Control(req->bRequest, + ((USBD_CDC_ItfTypeDef *)pdev->pCDC_UserData)->Control(req->bRequest, (uint8_t*)req, 0); } @@ -669,9 +669,9 @@ static uint8_t USBD_CDC_DataIn (USBD_HandleTypeDef *pdev, uint8_t epnum) { UNUSED(epnum); - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; - if(pdev->pClassData != NULL) + if(pdev->pCDC_ClassData != NULL) { hcdc->TxState = 0; @@ -693,16 +693,16 @@ static uint8_t USBD_CDC_DataIn (USBD_HandleTypeDef *pdev, uint8_t epnum) */ static uint8_t USBD_CDC_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; /* Get the received data length */ hcdc->RxLength = USBD_LL_GetRxDataSize (pdev, epnum); /* USB data will be immediately processed, this allow next USB traffic being NAKed till the end of the application Xfer */ - if(pdev->pClassData != NULL) + if(pdev->pCDC_ClassData != NULL) { - ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->Receive(hcdc->RxBuffer, &hcdc->RxLength); + ((USBD_CDC_ItfTypeDef *)pdev->pCDC_UserData)->Receive(hcdc->RxBuffer, &hcdc->RxLength); return USBD_OK; } @@ -723,11 +723,11 @@ static uint8_t USBD_CDC_DataOut (USBD_HandleTypeDef *pdev, uint8_t epnum) */ static uint8_t USBD_CDC_EP0_RxReady (USBD_HandleTypeDef *pdev) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; - if((pdev->pUserData != NULL) && (hcdc->CmdOpCode != 0xFF)) + if((pdev->pCDC_UserData != NULL) && (hcdc->CmdOpCode != 0xFF)) { - ((USBD_CDC_ItfTypeDef *)pdev->pUserData)->Control(hcdc->CmdOpCode, + ((USBD_CDC_ItfTypeDef *)pdev->pCDC_UserData)->Control(hcdc->CmdOpCode, (uint8_t *)hcdc->data, hcdc->CmdLength); hcdc->CmdOpCode = 0xFF; @@ -800,7 +800,7 @@ uint8_t USBD_CDC_RegisterInterface (USBD_HandleTypeDef *pdev, if(fops != NULL) { - pdev->pUserData= fops; + pdev->pCDC_UserData= fops; ret = USBD_OK; } @@ -817,7 +817,7 @@ uint8_t USBD_CDC_SetTxBuffer (USBD_HandleTypeDef *pdev, uint8_t *pbuff, uint16_t length) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; hcdc->TxBuffer = pbuff; hcdc->TxLength = length; @@ -835,7 +835,7 @@ uint8_t USBD_CDC_SetTxBuffer (USBD_HandleTypeDef *pdev, uint8_t USBD_CDC_SetRxBuffer (USBD_HandleTypeDef *pdev, uint8_t *pbuff) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; hcdc->RxBuffer = pbuff; @@ -851,9 +851,9 @@ uint8_t USBD_CDC_SetRxBuffer (USBD_HandleTypeDef *pdev, */ uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; - if(pdev->pClassData != NULL) + if(pdev->pCDC_ClassData != NULL) { if(hcdc->TxState == 0) { @@ -888,10 +888,10 @@ uint8_t USBD_CDC_TransmitPacket(USBD_HandleTypeDef *pdev) */ uint8_t USBD_CDC_ReceivePacket(USBD_HandleTypeDef *pdev) { - USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pClassData; + USBD_CDC_HandleTypeDef *hcdc = (USBD_CDC_HandleTypeDef*) pdev->pCDC_ClassData; /* Suspend or Resume USB Out process */ - if(pdev->pClassData != NULL) + if(pdev->pCDC_ClassData != NULL) { if(pdev->dev_speed == USBD_SPEED_HIGH ) { diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc/usbd_hid.h b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc/usbd_hid.h index a78251aa40..37755944b3 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc/usbd_hid.h +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc/usbd_hid.h @@ -49,12 +49,12 @@ /** @defgroup USBD_HID_Exported_Defines * @{ */ -#define HID_EPIN_ADDR 0x81 -#define HID_EPIN_SIZE 0x04 +#define HID_EPIN_ADDR 0x83 +#define HID_EPIN_SIZE 0x08 #define USB_HID_CONFIG_DESC_SIZ 34 #define USB_HID_DESC_SIZ 9 -#define HID_MOUSE_REPORT_DESC_SIZE 74 +#define HID_MOUSE_REPORT_DESC_SIZE 38 #define HID_DESCRIPTOR_TYPE 0x21 #define HID_REPORT_DESC 0x22 diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.c b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.c index 40cff33a57..53083b6b59 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.c +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.c @@ -216,53 +216,27 @@ __ALIGN_BEGIN static uint8_t USBD_HID_DeviceQualifierDesc[USB_LEN_DEV_QUALIFIER_ __ALIGN_BEGIN static uint8_t HID_MOUSE_ReportDesc[HID_MOUSE_REPORT_DESC_SIZE] __ALIGN_END = { - 0x05, 0x01, - 0x09, 0x02, - 0xA1, 0x01, - 0x09, 0x01, - - 0xA1, 0x00, - 0x05, 0x09, - 0x19, 0x01, - 0x29, 0x03, - - 0x15, 0x00, - 0x25, 0x01, - 0x95, 0x03, - 0x75, 0x01, - - 0x81, 0x02, - 0x95, 0x01, - 0x75, 0x05, - 0x81, 0x01, - - 0x05, 0x01, - 0x09, 0x30, - 0x09, 0x31, - 0x09, 0x38, - - 0x15, 0x81, - 0x25, 0x7F, - 0x75, 0x08, - 0x95, 0x03, - - 0x81, 0x06, - 0xC0, 0x09, - 0x3c, 0x05, - 0xff, 0x09, - - 0x01, 0x15, - 0x00, 0x25, - 0x01, 0x75, - 0x01, 0x95, - - 0x02, 0xb1, - 0x22, 0x75, - 0x06, 0x95, - 0x01, 0xb1, - - 0x01, 0xc0 -}; + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x05, // USAGE (Game Pad) + 0xa1, 0x01, // COLLECTION (Application) + 0xa1, 0x00, // COLLECTION (Physical) + 0x05, 0x01, // USAGE_PAGE (Generic Desktop) + 0x09, 0x30, // USAGE (X) + 0x09, 0x31, // USAGE (Y) + 0x09, 0x32, // USAGE (Z) + 0x09, 0x33, // USAGE (Rx) + 0x09, 0x35, // USAGE (Rz) + 0x09, 0x34, // USAGE (Ry) + 0x09, 0x40, // USAGE (Vx) + 0x09, 0x38, // USAGE (Wheel) + 0x15, 0x81, // LOGICAL_MINIMUM (-127) + 0x25, 0x7f, // LOGICAL_MAXIMUM (127) + 0x75, 0x08, // REPORT_SIZE (8) + 0x95, 0x08, // REPORT_COUNT (8) + 0x81, 0x02, // INPUT (Data,Var,Abs) + 0xc0, // END_COLLECTION + 0xc0 /* END_COLLECTION */ +}; /** * @} @@ -290,17 +264,17 @@ static uint8_t USBD_HID_Init (USBD_HandleTypeDef *pdev, USBD_LL_OpenEP(pdev, HID_EPIN_ADDR, USBD_EP_TYPE_INTR, - HID_EPIN_SIZE); - - pdev->pClassData = USBD_malloc(sizeof (USBD_HID_HandleTypeDef)); - - if(pdev->pClassData == NULL) + HID_EPIN_SIZE); + + pdev->pHID_ClassData = USBD_malloc(sizeof (USBD_HID_HandleTypeDef)); + + if(pdev->pHID_ClassData == NULL) { - ret = 1; + ret = 1; } else { - ((USBD_HID_HandleTypeDef *)pdev->pClassData)->state = HID_IDLE; + ((USBD_HID_HandleTypeDef *)pdev->pHID_ClassData)->state = HID_IDLE; } return ret; } @@ -320,14 +294,14 @@ static uint8_t USBD_HID_DeInit (USBD_HandleTypeDef *pdev, /* Close HID EPs */ USBD_LL_CloseEP(pdev, HID_EPIN_ADDR); - + /* FRee allocated memory */ - if(pdev->pClassData != NULL) + if(pdev->pHID_ClassData != NULL) { - USBD_free(pdev->pClassData); - pdev->pClassData = NULL; - } - + USBD_free(pdev->pHID_ClassData); + pdev->pHID_ClassData = NULL; + } + return USBD_OK; } @@ -343,8 +317,8 @@ static uint8_t USBD_HID_Setup (USBD_HandleTypeDef *pdev, { uint16_t len = 0; uint8_t *pbuf = NULL; - USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*) pdev->pClassData; - + USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*) pdev->pHID_ClassData; + switch (req->bmRequest & USB_REQ_TYPE_MASK) { case USB_REQ_TYPE_CLASS : @@ -424,8 +398,8 @@ uint8_t USBD_HID_SendReport (USBD_HandleTypeDef *pdev, uint8_t *report, uint16_t len) { - USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*)pdev->pClassData; - + USBD_HID_HandleTypeDef *hhid = (USBD_HID_HandleTypeDef*)pdev->pHID_ClassData; + if (pdev->dev_state == USBD_STATE_CONFIGURED ) { if(hhid->state == HID_IDLE) @@ -493,10 +467,10 @@ static uint8_t USBD_HID_DataIn (USBD_HandleTypeDef *pdev, uint8_t epnum) { UNUSED(epnum); - - /* Ensure that the FIFO is empty before a new transfer, this condition could + + /* Ensure that the FIFO is empty before a new transfer, this condition could be caused by a new transfer before the end of the previous transfer */ - ((USBD_HID_HandleTypeDef *)pdev->pClassData)->state = HID_IDLE; + ((USBD_HID_HandleTypeDef *)pdev->pHID_ClassData)->state = HID_IDLE; return USBD_OK; } diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.c b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.c index e14e84314b..a27ac452af 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.c +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc.c @@ -330,9 +330,9 @@ uint8_t USBD_MSC_Init (USBD_HandleTypeDef *pdev, USBD_EP_TYPE_BULK, MSC_MAX_FS_PACKET); } - pdev->pClassData = USBD_malloc(sizeof (USBD_MSC_BOT_HandleTypeDef)); + pdev->pMSC_ClassData = USBD_malloc(sizeof (USBD_MSC_BOT_HandleTypeDef)); - if(pdev->pClassData == NULL) + if(pdev->pMSC_ClassData == NULL) { ret = 1; } @@ -371,10 +371,10 @@ uint8_t USBD_MSC_DeInit (USBD_HandleTypeDef *pdev, MSC_BOT_DeInit(pdev); /* Free MSC Class Resources */ - if(pdev->pClassData != NULL) + if(pdev->pMSC_ClassData != NULL) { - USBD_free(pdev->pClassData); - pdev->pClassData = NULL; + USBD_free(pdev->pMSC_ClassData); + pdev->pMSC_ClassData = NULL; } return 0; } @@ -387,7 +387,7 @@ uint8_t USBD_MSC_DeInit (USBD_HandleTypeDef *pdev, */ uint8_t USBD_MSC_Setup (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*) pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*) pdev->pMSC_ClassData; switch (req->bmRequest & USB_REQ_TYPE_MASK) { @@ -402,7 +402,7 @@ uint8_t USBD_MSC_Setup (USBD_HandleTypeDef *pdev, USBD_SetupReqTypedef *req) (req->wLength == 1) && ((req->bmRequest & 0x80) == 0x80)) { - hmsc->max_lun = ((USBD_StorageTypeDef *)pdev->pUserData)->GetMaxLun(); + hmsc->max_lun = ((USBD_StorageTypeDef *)pdev->pMSC_UserData)->GetMaxLun(); USBD_CtlSendData (pdev, (uint8_t *)&hmsc->max_lun, 1); @@ -591,7 +591,7 @@ uint8_t USBD_MSC_RegisterStorage (USBD_HandleTypeDef *pdev, { if(fops != NULL) { - pdev->pUserData= fops; + pdev->pMSC_UserData= fops; } return 0; } diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c index 89bd81ff86..90c71cec9f 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Class/MSC/Src/usbd_msc_bot.c @@ -104,7 +104,7 @@ static void MSC_BOT_Abort(USBD_HandleTypeDef *pdev); */ void MSC_BOT_Init (USBD_HandleTypeDef *pdev) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; hmsc->bot_state = USBD_BOT_IDLE; hmsc->bot_status = USBD_BOT_STATUS_NORMAL; @@ -112,7 +112,7 @@ void MSC_BOT_Init (USBD_HandleTypeDef *pdev) hmsc->scsi_sense_tail = 0; hmsc->scsi_sense_head = 0; - ((USBD_StorageTypeDef *)pdev->pUserData)->Init(0); + ((USBD_StorageTypeDef *)pdev->pMSC_UserData)->Init(0); USBD_LL_FlushEP(pdev, MSC_EPOUT_ADDR); USBD_LL_FlushEP(pdev, MSC_EPIN_ADDR); @@ -132,7 +132,7 @@ void MSC_BOT_Init (USBD_HandleTypeDef *pdev) */ void MSC_BOT_Reset (USBD_HandleTypeDef *pdev) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; hmsc->bot_state = USBD_BOT_IDLE; hmsc->bot_status = USBD_BOT_STATUS_RECOVERY; @@ -152,7 +152,7 @@ void MSC_BOT_Reset (USBD_HandleTypeDef *pdev) */ void MSC_BOT_DeInit (USBD_HandleTypeDef *pdev) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; hmsc->bot_state = USBD_BOT_IDLE; } @@ -168,7 +168,7 @@ void MSC_BOT_DataIn (USBD_HandleTypeDef *pdev, { UNUSED(epnum); - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; switch (hmsc->bot_state) { @@ -203,7 +203,7 @@ void MSC_BOT_DataOut (USBD_HandleTypeDef *pdev, { UNUSED(epnum); - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; switch (hmsc->bot_state) { @@ -235,7 +235,7 @@ void MSC_BOT_DataOut (USBD_HandleTypeDef *pdev, */ static void MSC_BOT_CBW_Decode (USBD_HandleTypeDef *pdev) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; hmsc->csw.dTag = hmsc->cbw.dTag; hmsc->csw.dDataResidue = hmsc->cbw.dDataLength; @@ -304,7 +304,7 @@ static void MSC_BOT_SendData(USBD_HandleTypeDef *pdev, uint8_t* buf, uint16_t len) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; len = MIN (hmsc->cbw.dDataLength, len); hmsc->csw.dDataResidue -= len; @@ -324,7 +324,7 @@ static void MSC_BOT_SendData(USBD_HandleTypeDef *pdev, void MSC_BOT_SendCSW (USBD_HandleTypeDef *pdev, uint8_t CSW_Status) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; hmsc->csw.dSignature = USBD_BOT_CSW_SIGNATURE; hmsc->csw.bStatus = CSW_Status; @@ -352,7 +352,7 @@ void MSC_BOT_SendCSW (USBD_HandleTypeDef *pdev, static void MSC_BOT_Abort (USBD_HandleTypeDef *pdev) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; if ((hmsc->cbw.bmFlags == 0) && (hmsc->cbw.dDataLength != 0) && @@ -381,7 +381,7 @@ static void MSC_BOT_Abort (USBD_HandleTypeDef *pdev) void MSC_BOT_CplClrFeature (USBD_HandleTypeDef *pdev, uint8_t epnum) { - USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pClassData; + USBD_MSC_BOT_HandleTypeDef *hmsc = (USBD_MSC_BOT_HandleTypeDef*)pdev->pMSC_ClassData; if(hmsc->bot_status == USBD_BOT_STATUS_ERROR )/* Bad CBW Signature */ { diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h index 88ed4ef777..8aeb6f6a41 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h @@ -243,9 +243,14 @@ typedef struct _USBD_HandleTypeDef USBD_SetupReqTypedef request; USBD_DescriptorsTypeDef *pDesc; USBD_ClassTypeDef *pClass; - void *pClassData; - void *pUserData; - void *pData; + //WARNING: When updating this middleware add this to structure: + void *pCDC_ClassData; + void *pCDC_UserData; + void *pHID_ClassData; + void *pHID_UserData; + void *pMSC_ClassData; + void *pMSC_UserData; + void *pData; } USBD_HandleTypeDef; /** diff --git a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c index f88b42316c..f03fcb7ce0 100755 --- a/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c +++ b/lib/main/STM32H7/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.c @@ -434,7 +434,7 @@ USBD_StatusTypeDef USBD_LL_Reset(USBD_HandleTypeDef *pdev) /* Upon Reset call user call back */ pdev->dev_state = USBD_STATE_DEFAULT; - if (pdev->pClassData) + if (pdev->pMSC_ClassData || pdev->pCDC_ClassData || pdev->pHID_ClassData) pdev->pClass->DeInit(pdev, pdev->dev_config);