Преглед изворни кода

Merge pull request #1487 from tore-espressif/fix/cdc_autoflush

cdc: Fix autoflush for FIFO < MPS
Ha Thach пре 3 година
родитељ
комит
d9817ebe17
1 измењених фајлова са 1 додато и 1 уклоњено
  1. 1 1
      src/class/cdc/cdc_device.c

+ 1 - 1
src/class/cdc/cdc_device.c

@@ -171,7 +171,7 @@ uint32_t tud_cdc_n_write(uint8_t itf, void const* buffer, uint32_t bufsize)
   uint16_t ret = tu_fifo_write_n(&p_cdc->tx_ff, buffer, (uint16_t) bufsize);
 
   // flush if queue more than packet size
-  if ( tu_fifo_count(&p_cdc->tx_ff) >= BULK_PACKET_SIZE )
+  if ( (tu_fifo_count(&p_cdc->tx_ff) >= BULK_PACKET_SIZE) || ((CFG_TUD_CDC_TX_BUFSIZE < BULK_PACKET_SIZE) && tu_fifo_full(&p_cdc->tx_ff)) )
   {
     tud_cdc_n_write_flush(itf);
   }