Jelajahi Sumber

fix: 串口demo都应该加一个while

chenxuuu 4 tahun lalu
induk
melakukan
219e14409d
2 mengubah file dengan 7 tambahan dan 4 penghapusan
  1. 6 1
      demo/uart/main.lua
  2. 1 3
      demo/uart/uartTimeout/main.lua

+ 6 - 1
demo/uart/main.lua

@@ -29,7 +29,12 @@ local result = uart.setup(
 --循环发数据
 sys.timerLoopStart(uart.write,1000,uartid,"test")
 uart.on(uartid, "receive", function(id, len)
-    log.info("uart", "receive", id, len, uart.read(uartid, len))
+    local s
+    while true do--保证读完不然可能丢包
+        s = uart.read(uid, length)
+        if #s == 0 then break end
+        log.info("uart", "receive", id, len, s)
+    end
 end)
 uart.on(uartid, "sent", function(id)
     log.info("uart", "sent", id)

+ 1 - 3
demo/uart/uartTimeout/main.lua

@@ -31,9 +31,7 @@ uart.on(UART_ID, "receive", function(uid, length)
     local s
     while true do--保证读完不能丢包
         s = uart.read(uid, length)
-        if not s or #s == 0 then
-            break
-        end
+        if #s == 0 then break end
         table.insert(sendQueue, s)
     end
     sys.timerStart(sys.publish, uartimeout, recvReady)