Index: yc_uart.h
===================================================================
--- /YC3121_SDK/fw/sdk/yc_uart.h	(revision 846)
+++ /YC3121_SDK/fw/sdk/yc_uart.h	(working copy)
@@ -144,13 +144,13 @@
 void UART_AutoFlowCtrlCmd(UART_TypeDef UARTx, FunctionalState NewState);
 
 /**
-  * @brief  Clear IT
+  * @brief  Clear Tx interrupt
   * @param  USARTx: Select the USART or the UART peripheral.
   *         This parameter can be one of the following values:
   *         UART0, UART1.
   * @retval None
   */
-void UART_ClearIT(UART_TypeDef UARTx);
+void UART_ClearTxITPendingBit(UART_TypeDef UARTx);
 
 /**
   * @brief  DeInit UART
Index: yc_uart.c
===================================================================
--- /YC3121_SDK/fw/sdk/yc_uart.c	(revision 846)
+++ /YC3121_SDK/fw/sdk/yc_uart.c	(working copy)
@@ -54,10 +54,20 @@
     return;
 }
 
-void UART_ClearIT(UART_TypeDef UARTx)
+void UART_ClearTxITPendingBit(UART_TypeDef UARTx)
 {
-    uint8_t ITType = UART_GetITIdentity(UARTx);
-    UART_ITConfig(UARTx, ITType, DISABLE);
+    _ASSERT(IS_UART(UARTx));
+    
+    if(UARTx == UART0)
+    {
+        UART0_CTRL &= (~TX_INTR_ENABLE);
+        UART0_CTRL |= (TX_INTR_ENABLE);
+    }
+    else
+    {
+        UART1_CTRL &= (~TX_INTR_ENABLE);
+        UART1_CTRL |= (TX_INTR_ENABLE);
+    }
 }
 
 void UART_DeInit(UART_TypeDef  UARTx)
@@ -363,8 +373,9 @@
 
 void UART_SendData(UART_TypeDef UARTx, uint8_t Data)
 {
-    uint8_t buf[1] = {Data};
-
+    uint8_t buf[1];
+    buf[0] = Data;
+    
     if (UARTx == UART0)
     {
         DMA_SRC_ADDR(DMACH_UART0) = (int)buf;
