summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorhathach <[email protected]>2026-03-06 19:24:27 +0700
committerhathach <[email protected]>2026-03-06 19:24:27 +0700
commit8878e02c3040ee0b30f9b26c20f45a36260d854a (patch)
tree2a86d1abba22be6b7c68683940b0388429f8519c /examples
parent8f24ab0950d1f19d3c23ac29441f0a4ce6e9ce9b (diff)
fix hil test
Diffstat (limited to 'examples')
-rw-r--r--examples/device/printer_to_cdc/src/main.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/examples/device/printer_to_cdc/src/main.c b/examples/device/printer_to_cdc/src/main.c
index aba79025c..ffaf709b4 100644
--- a/examples/device/printer_to_cdc/src/main.c
+++ b/examples/device/printer_to_cdc/src/main.c
@@ -50,12 +50,13 @@
// Forward data from Printer RX to CDC TX
static void printer_to_cdc_task(void) {
- if (tud_printer_read_available() == 0 || !tud_cdc_write_available()) {
+ uint32_t avail = tud_printer_read_available();
+ if (avail == 0 || !tud_cdc_write_available()) {
return;
}
uint8_t buf[64];
- uint32_t count = tud_printer_read(buf, sizeof(buf));
+ uint32_t count = tud_printer_read(buf, TU_MIN(sizeof(buf), tud_cdc_write_available()));
if (count > 0) {
tud_cdc_write(buf, count);
tud_cdc_write_flush();
@@ -64,12 +65,13 @@ static void printer_to_cdc_task(void) {
// Forward data from CDC RX to Printer TX
static void cdc_to_printer_task(void) {
- if (tud_cdc_available() == 0 || !tud_printer_write_available()) {
+ uint32_t avail = tud_printer_write_available();
+ if (tud_cdc_available() == 0 || avail == 0) {
return;
}
uint8_t buf[64];
- uint32_t count = tud_cdc_read(buf, sizeof(buf));
+ uint32_t count = tud_cdc_read(buf, TU_MIN(sizeof(buf), avail));
if (count > 0) {
tud_printer_write(buf, count);
tud_printer_write_flush();