Просмотр исходного кода

fix a bug in rt_hw_uart_init() where u CAN NOT init some feature.

reynoldxu 11 лет назад
Родитель
Сommit
8f0fffc132
2 измененных файлов с 4 добавлено и 2 удалено
  1. 0 2
      bsp/K60Fxxxx/drivers/drv_uart.c
  2. 4 0
      components/drivers/serial/serial.c

+ 0 - 2
bsp/K60Fxxxx/drivers/drv_uart.c

@@ -241,8 +241,6 @@ void rt_hw_uart_init(void)
     rt_hw_serial_register(&_k60_serial, "uart5",
                           RT_DEVICE_FLAG_RDWR | RT_DEVICE_FLAG_INT_RX | RT_DEVICE_FLAG_STREAM,
                           (void*)&_k60_node);
-
-    rt_device_control(&_k60_serial.parent, RT_DEVICE_CTRL_SET_INT, 0);
 }
 
 void rt_hw_console_output(const char *str)

+ 4 - 0
components/drivers/serial/serial.c

@@ -145,7 +145,11 @@ static rt_err_t rt_serial_init(struct rt_device *dev)
             serial_ringbuffer_init(serial->int_rx);
 
         if (dev->flag & RT_DEVICE_FLAG_INT_TX)
+        {
+            serial->ops->control(serial, RT_DEVICE_CTRL_SET_INT, (void *)RT_NULL);
             serial_ringbuffer_init(serial->int_tx);
+            serial->int_sending_flag = RT_FALSE;
+        }
 
         if (dev->flag & RT_DEVICE_FLAG_DMA_TX)
         {