summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/stm32/uart.c34
1 files changed, 14 insertions, 20 deletions
diff --git a/ports/stm32/uart.c b/ports/stm32/uart.c
index 886cf1ab3..855f44f0f 100644
--- a/ports/stm32/uart.c
+++ b/ports/stm32/uart.c
@@ -1069,26 +1069,20 @@ size_t uart_tx_data(machine_uart_obj_t *self, const void *src_in, size_t num_cha
}
uint32_t timeout;
- if (self->uartx->CR3 & USART_CR3_CTSE) {
- // CTS can hold off transmission for an arbitrarily long time. Apply
- // the overall timeout rather than the character timeout.
- timeout = self->timeout;
- } else {
- #if defined(STM32G4)
- // With using UART FIFO, the timeout should be long enough that FIFO becomes empty.
- // Since previous data transfer may be ongoing, the timeout must be multiplied
- // timeout_char by FIFO size + 1.
- // STM32G4 has 8 words FIFO.
- timeout = (8 + 1) * self->timeout_char;
- #else
- // The timeout specified here is for waiting for the TX data register to
- // become empty (ie between chars), as well as for the final char to be
- // completely transferred. The default value for timeout_char is long
- // enough for 1 char, but we need to double it to wait for the last char
- // to be transferred to the data register, and then to be transmitted.
- timeout = 2 * self->timeout_char;
- #endif
- }
+ #if defined(STM32G4)
+ // With using UART FIFO, the timeout should be long enough that FIFO becomes empty.
+ // Since previous data transfer may be ongoing, the timeout must be multiplied
+ // timeout_char by FIFO size + 1.
+ // STM32G4 has 8 words FIFO.
+ timeout = (8 + 1) * self->timeout_char;
+ #else
+ // The timeout specified here is for waiting for the TX data register to
+ // become empty (ie between chars), as well as for the final char to be
+ // completely transferred. The default value for timeout_char is long
+ // enough for 1 char, but we need to double it to wait for the last char
+ // to be transferred to the data register, and then to be transmitted.
+ timeout = 2 * self->timeout_char;
+ #endif
const uint8_t *src = (const uint8_t *)src_in;
size_t num_tx = 0;