summaryrefslogtreecommitdiff
path: root/stmhal/usbd_cdc_interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'stmhal/usbd_cdc_interface.c')
-rw-r--r--stmhal/usbd_cdc_interface.c8
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) {