mbed library sources for airmote

Fork of mbed-src by mbed official

Revision:
571:1f7ee966c9ea
Parent:
489:119543c9f674
--- a/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/serial_api.c	Wed Jun 17 08:15:08 2015 +0100
+++ b/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/serial_api.c	Wed Jun 17 09:00:08 2015 +0100
@@ -62,16 +62,20 @@
     UART_HAL_SetStopBitCount(uart_addrs[obj->index], kUartOneStopBit);
     #endif
     UART_HAL_SetBitCountPerChar(uart_addrs[obj->index], kUart8BitsPerChar);
-    UART_HAL_EnableTransmitter(uart_addrs[obj->index]);
-    UART_HAL_EnableReceiver(uart_addrs[obj->index]);
+    UART_HAL_DisableTransmitter(uart_addrs[obj->index]);
+    UART_HAL_DisableReceiver(uart_addrs[obj->index]);
 
     pinmap_pinout(tx, PinMap_UART_TX);
     pinmap_pinout(rx, PinMap_UART_RX);
 
     if (tx != NC) {
+        UART_HAL_FlushTxFifo(uart_addrs[obj->index]);
+        UART_HAL_EnableTransmitter(uart_addrs[obj->index]);
+
         pin_mode(tx, PullUp);
     }
     if (rx != NC) {
+        UART_HAL_EnableReceiver(uart_addrs[obj->index]);
         pin_mode(rx, PullUp);
     }
 
@@ -79,7 +83,6 @@
         stdio_uart_inited = 1;
         memcpy(&stdio_uart, obj, sizeof(serial_t));
     }
-    while(!UART_HAL_IsTxDataRegEmpty(uart_addrs[obj->index]));
 }
 
 void serial_free(serial_t *obj) {