diff --git a/src/arduino/Adafruit_USBD_CDC.cpp b/src/arduino/Adafruit_USBD_CDC.cpp index 6345043..8be4bfe 100644 --- a/src/arduino/Adafruit_USBD_CDC.cpp +++ b/src/arduino/Adafruit_USBD_CDC.cpp @@ -118,9 +118,11 @@ void Adafruit_USBD_CDC::end(void) { _instance = INVALID_INSTANCE; } +#ifdef ARDUINO_ARCH_RP2040 void Adafruit_USBD_CDC::ignoreFlowControl(bool ignore) { _ignoreFlowControl = ignore; } +#endif uint32_t Adafruit_USBD_CDC::baud(void) { if (!isValid()) { @@ -247,7 +249,12 @@ size_t Adafruit_USBD_CDC::write(const uint8_t *buffer, size_t size) { } size_t remain = size; - while (remain && (tud_cdc_n_connected(_instance) || _ignoreFlowControl)) { +#ifdef ARDUINO_ARCH_RP2040 + while (remain && (tud_cdc_n_connected(_instance) || _ignoreFlowControl)) +#else + while (remain && tud_cdc_n_connected(_instance)) +#endif + { size_t wrcount = tud_cdc_n_write(_instance, buffer, remain); remain -= wrcount; buffer += wrcount; diff --git a/src/arduino/Adafruit_USBD_CDC.h b/src/arduino/Adafruit_USBD_CDC.h index 8d0dab1..793d482 100644 --- a/src/arduino/Adafruit_USBD_CDC.h +++ b/src/arduino/Adafruit_USBD_CDC.h @@ -54,6 +54,7 @@ class Adafruit_USBD_CDC : public Stream, public Adafruit_USBD_Interface { void begin(uint32_t baud, uint8_t config); void end(void); +#ifdef ARDUINO_ARCH_RP2040 // In some cases, the target application will not assert // the DTR virtual line, thus preventing writing operations // to succeed. For this reason, the @@ -61,6 +62,7 @@ class Adafruit_USBD_CDC : public Stream, public Adafruit_USBD_Interface { // connection’s state verification, enabling the program to // write on the port, even though the data might be lost. void ignoreFlowControl(bool ignore = true); +#endif // return line coding set by host uint32_t baud(void); @@ -98,7 +100,9 @@ class Adafruit_USBD_CDC : public Stream, public Adafruit_USBD_Interface { uint8_t _instance; +#ifdef ARDUINO_ARCH_RP2040 bool _ignoreFlowControl = false; +#endif bool isValid(void) { return _instance != INVALID_INSTANCE; } };