diff --git a/f4/usb/src/usb.c b/f4/usb/src/usb.c
index 084b43df2fd7e3fb7cb6f2908e085f7e5fb9690a..35ec8ed1fd3f9a78a17c283d946450898e468e31 100644
--- a/f4/usb/src/usb.c
+++ b/f4/usb/src/usb.c
@@ -157,6 +157,7 @@ static int8_t usb_cdc_receive(uint8_t* Buf, uint32_t *Len)
         comm_do_dma_receive(usb_comm_dev);
     }
   }  
+  USBD_CDC_SetRxBuffer(&USBHandle, &Buf[0]);
   USBD_CDC_ReceivePacket(&USBHandle);
   HAL_GPIO_WritePin(GPIOD,GPIO_PIN_14,GPIO_PIN_RESET); 
 
@@ -164,12 +165,18 @@ static int8_t usb_cdc_receive(uint8_t* Buf, uint32_t *Len)
   /* USER CODE END 6 */
 }
 
+static int8_t usb_cdc_tx_complete(uint8_t *pbuf, uint32_t *Len, uint8_t epnum)
+{
+  return (USBD_OK);
+}
+
 USBD_CDC_ItfTypeDef usb_cdc_ops =
 {
   usb_cdc_init,
   usb_cdc_deinit,
   usb_cdc_control,
-  usb_cdc_receive
+  usb_cdc_receive,
+  usb_cdc_tx_complete
 };
 
 // interrupt handlers