Skip to content

Commit 141bcd2

Browse files
Attempt to add availableForWrite() to USB Serial
1 parent 9b37bc7 commit 141bcd2

File tree

3 files changed

+10
-0
lines changed

3 files changed

+10
-0
lines changed

STM32F1/cores/maple/libmaple/usb/stm32f1/usb_cdcacm.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,6 +456,11 @@ uint8 usb_cdcacm_is_transmitting(void) {
456456
return ( transmitting>0 ? transmitting : 0);
457457
}
458458

459+
int usb_cdcacm_tx_available()
460+
{
461+
return CDC_SERIAL_TX_BUFFER_SIZE - usb_cdcacm_get_pending();
462+
}
463+
459464
uint16 usb_cdcacm_get_pending(void) {
460465
return (tx_head - tx_tail) & CDC_SERIAL_TX_BUFFER_SIZE_MASK;
461466
}

STM32F1/cores/maple/usb_serial.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ int USBSerial::peek(void)
148148
}
149149
}
150150

151+
int USBSerial::availableForWrite(void) { return usb_cdcacm_tx_available(); }
152+
151153
void USBSerial::flush(void)
152154
{
153155
/*Roger Clark. Rather slow method. Need to improve this */

STM32F1/system/libmaple/include/libmaple/usb_cdcacm.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,13 @@ uint32 usb_cdcacm_peek_ex(uint8* buf, uint32 offset, uint32 len);
129129
uint32 usb_cdcacm_data_available(void); /* in RX buffer */
130130
uint16 usb_cdcacm_get_pending(void);
131131
uint8 usb_cdcacm_is_transmitting(void);
132+
int usb_cdcacm_tx_available();
132133

133134
uint8 usb_cdcacm_get_dtr(void);
134135
uint8 usb_cdcacm_get_rts(void);
135136

137+
138+
136139
typedef struct usb_cdcacm_line_coding {
137140
uint32 dwDTERate; /* Baud rate */
138141

0 commit comments

Comments
 (0)