diff options
| -rw-r--r-- | hw/bsp/rp2040/family.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/hw/bsp/rp2040/family.c b/hw/bsp/rp2040/family.c index c952de03b..b5a1375a2 100644 --- a/hw/bsp/rp2040/family.c +++ b/hw/bsp/rp2040/family.c @@ -273,11 +273,13 @@ int board_uart_read(uint8_t *buf, int len) { int board_uart_write(void const *buf, int len) { #ifdef UART_DEV - char const *bufch = (char const *) buf; - for ( int i = 0; i < len; i++ ) { - uart_putc(uart_inst, bufch[i]); + const uint8_t *p = (const uint8_t *) buf; + int count = 0; + while (count < len && uart_is_writable(uart_inst)) { + uart_putc_raw(uart_inst, p[count]); + count++; } - return len; + return count; #else (void) buf; (void) len; return 0; |
