From 79c37cb30fb35f6c50df67c6a95a634f82332ef9 Mon Sep 17 00:00:00 2001 From: armink Date: Sat, 31 Jan 2015 11:18:59 +0800 Subject: [PATCH] [BSP]changed stm32f10x uart driver. make sure the serial transmit complete in putc(). --- bsp/stm32f10x/drivers/usart.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bsp/stm32f10x/drivers/usart.c b/bsp/stm32f10x/drivers/usart.c index 17411e44e8..b10b971538 100644 --- a/bsp/stm32f10x/drivers/usart.c +++ b/bsp/stm32f10x/drivers/usart.c @@ -12,6 +12,7 @@ * 2009-01-05 Bernard the first version * 2010-03-29 Bernard remove interrupt Tx and DMA Rx mode * 2013-05-13 aozima update for kehong-lingtai. + * 2015-01-31 armink make sure the serial transmit complete in putc() */ #include "stm32f10x.h" @@ -118,8 +119,8 @@ static int stm32_putc(struct rt_serial_device *serial, char c) RT_ASSERT(serial != RT_NULL); uart = (struct stm32_uart *)serial->parent.user_data; - while (!(uart->uart_device->SR & USART_FLAG_TXE)); uart->uart_device->DR = c; + while (!(uart->uart_device->SR & USART_FLAG_TC)); return 1; }