summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c
index afd7e65ad8..dd4723a086 100644
--- a/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c
+++ b/platforms/chibios/drivers/vendor/RP/RP2040/serial_vendor.c
@@ -181,12 +181,13 @@ static inline void leave_rx_state(void) {}
#endif
/**
- * @brief Clear the RX and TX hardware FIFOs of the state machines.
+ * @brief Clear the FIFO of the RX state machine.
*/
inline void serial_transport_driver_clear(void) {
osalSysLock();
- pio_sm_clear_fifos(pio, rx_state_machine);
- pio_sm_clear_fifos(pio, tx_state_machine);
+ while (!pio_sm_is_rx_fifo_empty(pio, rx_state_machine)) {
+ pio_sm_clear_fifos(pio, rx_state_machine);
+ }
osalSysUnlock();
}