diff --git a/components/drivers/usb/usbdevice/class/hid.c b/components/drivers/usb/usbdevice/class/hid.c index 11a8e39bfec78514e2cf6cb521a157bc82d8b627..0b44456b8f1a415353644ad3dc37cfbf4f4e0bab 100644 --- a/components/drivers/usb/usbdevice/class/hid.c +++ b/components/drivers/usb/usbdevice/class/hid.c @@ -486,7 +486,10 @@ static rt_err_t _function_enable(ufunction_t func) // // _vcom_reset_state(func); // - data->ep_out->buffer = rt_malloc(HID_RX_BUFSIZE); + if(data->ep_out->buffer == RT_NULL) + { + data->ep_out->buffer = rt_malloc(HID_RX_BUFSIZE); + } data->ep_out->request.buffer = data->ep_out->buffer; data->ep_out->request.size = EP_MAXPACKET(data->ep_out); data->ep_out->request.req_type = UIO_REQUEST_READ_BEST;