Skip to content

Commit f3a29a7

Browse files
committed
Merge pull request #143 from sandeepmistry/cdc-write-return-value
Correct SerialUSB return value
2 parents 2df644e + 8d0c167 commit f3a29a7

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

cores/arduino/USB/CDC.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ size_t Serial_::write(const uint8_t *buffer, size_t size)
262262
{
263263
uint32_t r = usb.send(CDC_ENDPOINT_IN, buffer, size);
264264

265-
if (r == 0) {
265+
if (r > 0) {
266266
return r;
267267
} else {
268268
setWriteError();

cores/arduino/USB/USBCore.cpp

+3-1
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,7 @@ uint8_t USBDeviceClass::armRecv(uint32_t ep)
605605
// Blocking Send of data to an endpoint
606606
uint32_t USBDeviceClass::send(uint32_t ep, const void *data, uint32_t len)
607607
{
608+
uint32_t written = 0;
608609
uint32_t length = 0;
609610

610611
if (!_usbConfiguration)
@@ -675,10 +676,11 @@ uint32_t USBDeviceClass::send(uint32_t ep, const void *data, uint32_t len)
675676
while (!usbd.epBank1IsTransferComplete(ep)) {
676677
; // need fire exit.
677678
}
679+
written += length;
678680
len -= length;
679681
data = (char *)data + length;
680682
}
681-
return len;
683+
return written;
682684
}
683685

684686
uint32_t USBDeviceClass::armSend(uint32_t ep, const void* data, uint32_t len)

0 commit comments

Comments
 (0)