diff options
Diffstat (limited to 'stmhal/usbd_cdc_interface.c')
| -rw-r--r-- | stmhal/usbd_cdc_interface.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/stmhal/usbd_cdc_interface.c b/stmhal/usbd_cdc_interface.c index e9b4863f6..7f1eef5b3 100644 --- a/stmhal/usbd_cdc_interface.c +++ b/stmhal/usbd_cdc_interface.c @@ -402,6 +402,14 @@ void USBD_CDC_SetInterrupt(int chr, void *data) { user_interrupt_data = data; } +int USBD_CDC_TxHalfEmpty(void) { + int32_t tx_waiting = (int32_t)UserTxBufPtrIn - (int32_t)UserTxBufPtrOut; + if (tx_waiting < 0) { + tx_waiting += APP_TX_DATA_SIZE; + } + return tx_waiting <= APP_TX_DATA_SIZE / 2; +} + // timout in milliseconds. // Returns number of bytes written to the device. int USBD_CDC_Tx(const uint8_t *buf, uint32_t len, uint32_t timeout) { |
