|
|
@@ -0,0 +1,51 @@
|
|
|
+--- 模块功能:SPI接口的实现
|
|
|
+-- 读取FLASH ID
|
|
|
+-- @author openLuat
|
|
|
+-- @module spi.testSpiFlash
|
|
|
+-- @license MIT
|
|
|
+-- @copyright openLuat
|
|
|
+-- @release 2018.03.27
|
|
|
+
|
|
|
+module(...,package.seeall)
|
|
|
+
|
|
|
+require"utils"
|
|
|
+require"pm"
|
|
|
+pm.wake("wake11")
|
|
|
+require"pins"
|
|
|
+
|
|
|
+result = nil
|
|
|
+
|
|
|
+--[[
|
|
|
+ 初始化SPI接口
|
|
|
+]]
|
|
|
+function SPI_GPIO_Init()
|
|
|
+ result = spi.setup(spi.SPI_1,0,0,8,800000,1)--初始化spi,
|
|
|
+ log.info("spi1",spi.SPI_1)
|
|
|
+ log.info("Lora Spi init :",result)
|
|
|
+end
|
|
|
+
|
|
|
+--[[
|
|
|
+ 初始化SPI接口,底层接口
|
|
|
+ @param txDat 要发送的数据:string类型
|
|
|
+ @param len 要发送的数据长度=要收到的数据长度:例如:1D0740000000 有效数据:1D0740 站位数据:00 要读取的位数0000,4个0,len就是4,实际读取的是两个字节 0x1424
|
|
|
+ @return string类型,返回接收到的数据
|
|
|
+]]
|
|
|
+function drv_spi_read_write_byte(txDat,len)
|
|
|
+ local ret = spi.send_recv(spi.SPI_1,string.fromHex(txDat)):toHex()
|
|
|
+ return string.sub(ret, -len) -- 从倒数第四个字符到末尾
|
|
|
+end
|
|
|
+
|
|
|
+
|
|
|
+--测试案例
|
|
|
+-- sys.taskInit(function ()
|
|
|
+-- sys.wait(3000)
|
|
|
+-- SPI_GPIO_Init()
|
|
|
+-- sys.wait(3000)
|
|
|
+-- while true do
|
|
|
+-- local ret = drv_spi_read_write_byte("1D0740000000",4)
|
|
|
+
|
|
|
+-- log.info("提取结果", ret) -- 输出: 1D0F
|
|
|
+-- sys.wait(2000)
|
|
|
+-- end
|
|
|
+-- spi.close(spi.SPI_1)
|
|
|
+-- end)
|