浏览代码

add:spi非阻塞传输演示demo

alienwalker 3 年之前
父节点
当前提交
7f770cdf29
共有 2 个文件被更改,包括 48 次插入0 次删除
  1. 13 0
      demo/spi/Air105/main.lua
  2. 35 0
      demo/spi/Air105/no_block_test.lua

+ 13 - 0
demo/spi/Air105/main.lua

@@ -0,0 +1,13 @@
+
+-- LuaTools需要PROJECT和VERSION这两个信息
+PROJECT = "spi_no_blcok_test"
+VERSION = "1.0"
+-- sys库是标配
+_G.sys = require("sys")
+_G.sysplus = require("sysplus")
+log.style(1)
+require "no_block_test"
+-- 用户代码已结束---------------------------------------------
+-- 结尾总是这一句
+sys.run()
+-- sys.run()之后后面不要加任何语句!!!!!

+ 35 - 0
demo/spi/Air105/no_block_test.lua

@@ -0,0 +1,35 @@
+local function spiTest(id)
+    local txlen = 20480
+    local txbuff = zbuff.create(txlen)
+    local rxbuff = zbuff.create(txlen)
+    local cbTopic = "SPI" .. id .. "DONE"
+    local result, succ, errorCode
+    if id ~= spi.HSPI_0 then
+        spi.setup(id, nil, 0, 0, 8, 24000000)
+    else
+        spi.setup(id, nil, 0, 0, 8, 48000000)
+        log.info("hspi")
+    end
+    while true do
+        log.info("spi"..id, "传输开始")
+        result = spi.xfer(id,txbuff,rxbuff,txlen,cbTopic)
+        if result then
+            result, succ, errorCode = sys.waitUntil(cbTopic, 1000)
+        end
+        if not result or not succ then
+            log.info("spi"..id, "传输失败")
+        else
+            result,errorCode =  txbuff:isEqual(nil, rxbuff, nil, txlen)
+            if not result  then
+                log.info("spi"..id, "传输发生错误", errorCode, txbuff[errorCode], rxbuff[errorCode])
+            else
+                log.info("spi"..id, "传输成功")
+            end
+        end
+        sys.wait(1000)
+    end
+end
+
+sys.taskInit(spiTest, spi.SPI_1)
+sys.taskInit(spiTest, spi.SPI_2)
+sys.taskInit(spiTest, spi.HSPI_0)