diff --git a/cores/arduino/USB/USBCore.cpp b/cores/arduino/USB/USBCore.cpp index 09cfa6fee388c5f22fab86599f353f63e286680e..8d83b9df66ab3372726fa292be20b19e95493c56 100644 --- a/cores/arduino/USB/USBCore.cpp +++ b/cores/arduino/USB/USBCore.cpp @@ -605,6 +605,7 @@ uint8_t USBDeviceClass::armRecv(uint32_t ep) // Blocking Send of data to an endpoint uint32_t USBDeviceClass::send(uint32_t ep, const void *data, uint32_t len) { + uint32_t written = 0; uint32_t length = 0; if (!_usbConfiguration) @@ -675,10 +676,11 @@ uint32_t USBDeviceClass::send(uint32_t ep, const void *data, uint32_t len) while (!usbd.epBank1IsTransferComplete(ep)) { ; // need fire exit. } + written += length; len -= length; data = (char *)data + length; } - return len; + return written; } uint32_t USBDeviceClass::armSend(uint32_t ep, const void* data, uint32_t len)