@@ -82,8 +82,6 @@ typedef struct {
82
82
uint32_t IdleState ;
83
83
uint32_t AltSetting ;
84
84
HID_StateTypeDef state ;
85
- uint8_t * RxBuffer ;
86
- uint32_t RxLength ;
87
85
} USBD_HID_HandleTypeDef ;
88
86
89
87
static uint8_t usbd_mode ;
@@ -724,10 +722,10 @@ static uint8_t USBD_CDC_MSC_HID_Init(USBD_HandleTypeDef *pdev, uint8_t cfgidx) {
724
722
USBD_EP_TYPE_INTR ,
725
723
mps_out );
726
724
727
- usbd_hid_init (state -> hid , pdev );
725
+ uint8_t * buf = usbd_hid_init (state -> hid , pdev );
728
726
729
727
// Prepare Out endpoint to receive next packet
730
- USBD_LL_PrepareReceive (pdev , hid_out_ep , HID_ClassData . RxBuffer , mps_out );
728
+ USBD_LL_PrepareReceive (pdev , hid_out_ep , buf , mps_out );
731
729
732
730
HID_ClassData .state = HID_IDLE ;
733
731
}
@@ -973,8 +971,8 @@ static uint8_t USBD_CDC_MSC_HID_DataOut(USBD_HandleTypeDef *pdev, uint8_t epnum)
973
971
MSC_BOT_DataOut (pdev , epnum );
974
972
return USBD_OK ;
975
973
} else if ((usbd_mode & USBD_MODE_HID ) && epnum == (hid_out_ep & 0x7f )) {
976
- HID_ClassData . RxLength = USBD_LL_GetRxDataSize (pdev , epnum );
977
- usbd_hid_receive (state -> hid , HID_ClassData . RxLength , HID_ClassData . RxBuffer );
974
+ size_t len = USBD_LL_GetRxDataSize (pdev , epnum );
975
+ usbd_hid_receive (state -> hid , len );
978
976
}
979
977
980
978
return USBD_OK ;
@@ -1032,13 +1030,8 @@ uint8_t USBD_MSC_RegisterStorage(USBD_HandleTypeDef *pdev, USBD_StorageTypeDef *
1032
1030
}
1033
1031
}
1034
1032
1035
- uint8_t USBD_HID_SetRxBuffer (USBD_HandleTypeDef * pdev , uint8_t * pbuff ) {
1036
- HID_ClassData .RxBuffer = pbuff ;
1037
- return USBD_OK ;
1038
- }
1039
-
1040
1033
// prepare OUT endpoint for reception
1041
- uint8_t USBD_HID_ReceivePacket (USBD_HandleTypeDef * pdev ) {
1034
+ uint8_t USBD_HID_ReceivePacket (USBD_HandleTypeDef * pdev , uint8_t * buf ) {
1042
1035
// Suspend or Resume USB Out process
1043
1036
if (pdev -> dev_speed == USBD_SPEED_HIGH ) {
1044
1037
return USBD_FAIL ;
@@ -1048,7 +1041,7 @@ uint8_t USBD_HID_ReceivePacket(USBD_HandleTypeDef *pdev) {
1048
1041
uint16_t mps_out =
1049
1042
hid_desc [HID_DESC_OFFSET_MAX_PACKET_OUT_LO ]
1050
1043
| (hid_desc [HID_DESC_OFFSET_MAX_PACKET_OUT_HI ] << 8 );
1051
- USBD_LL_PrepareReceive (pdev , hid_out_ep , HID_ClassData . RxBuffer , mps_out );
1044
+ USBD_LL_PrepareReceive (pdev , hid_out_ep , buf , mps_out );
1052
1045
1053
1046
return USBD_OK ;
1054
1047
}
0 commit comments