Browse Source

Merge pull request #4632 from yaoyufan/master

fix bluetrum uart1 and uart2 cannot recv data
Bernard Xiong 4 years ago
parent
commit
39aa987fc8
1 changed files with 11 additions and 3 deletions
  1. 11 3
      bsp/bluetrum/libraries/hal_drivers/drv_usart.c

+ 11 - 3
bsp/bluetrum/libraries/hal_drivers/drv_usart.c

@@ -229,10 +229,18 @@ void uart_irq_process(struct rt_serial_device *serial)
         (serial->config.bufsz - (rx_fifo->get_index - rx_fifo->put_index));
     rt_hw_interrupt_enable(level);
 
-    if (rx_length)
-    {
-        shell_rx_ind();
+    if ((serial->parent.rx_indicate != RT_NULL) && (rx_length != 0)) {
+    #ifdef RT_CONSOLE_DEVICE_NAME
+        if (serial == &uart_obj[*(RT_CONSOLE_DEVICE_NAME + 4) - '0'].serial) {
+            shell_rx_ind();
+        } else
+    #endif
+        {
+            rt_kprintf("rx_indicate must loacted in the .comm section!\n");
+            //serial->parent.rx_indicate(&serial->parent, rx_length);
+        }
     }
+
 }
 
 RT_SECTION(".irq.usart")