aboutsummaryrefslogtreecommitdiffstats
path: root/os/hal/ports/STM32/LLD/USARTv2
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2017-11-05 11:10:11 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2017-11-05 11:10:11 +0000
commitbfabd1d961566afd49d3af5d1b0e6ee4e53cb46a (patch)
tree3dae2d1c2e20f60966bc31f16d22ab47519aa06a /os/hal/ports/STM32/LLD/USARTv2
parent5f7fd279bebb173dc7f33f1ef27b2a6f2930735a (diff)
downloadChibiOS-bfabd1d961566afd49d3af5d1b0e6ee4e53cb46a.tar.gz
ChibiOS-bfabd1d961566afd49d3af5d1b0e6ee4e53cb46a.tar.bz2
ChibiOS-bfabd1d961566afd49d3af5d1b0e6ee4e53cb46a.zip
Fixed bug #901.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@10956 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/hal/ports/STM32/LLD/USARTv2')
-rw-r--r--os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c b/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c
index f00fa28ef..505cd537a 100644
--- a/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c
+++ b/os/hal/ports/STM32/LLD/USARTv2/hal_uart_lld.c
@@ -953,9 +953,10 @@ void uart_lld_start_send(UARTDriver *uartp, size_t n, const void *txbuf) {
dmaStreamSetMode(uartp->dmatx, uartp->dmamode | STM32_DMA_CR_DIR_M2P |
STM32_DMA_CR_MINC | STM32_DMA_CR_TCIE);
- /* Only enable TC interrupt if there's a callback attached to it.
- Also we need to clear TC flag which could be set before. */
- if (uartp->config->txend2_cb != NULL) {
+ /* Only enable TC interrupt if there's a callback attached to it or
+ if called from uartSendFullTimeout(). Also we need to clear TC flag
+ which could be set before.*/
+ if ((uartp->config->txend2_cb != NULL) || (uartp->early == false)) {
uartp->usart->ICR = USART_ICR_TCCF;
uartp->usart->CR1 |= USART_CR1_TCIE;
}