--- 模块功能: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 size 要发送的数据长度=要收到的数据长度:例如:1D0740000000 有效数据:1D0740 站位数据:00 要读取的位数0000,4个0,len就是4,实际读取的是两个字节 0x1424 @return string类型,返回接收到的数据 ]] function drv_spi_read_write_byte(txDat,size) local ret = spi.send_recv(spi.SPI_1,string.fromHex(txDat)):toHex() -- log.info("spi_read_write_byte",ret) if size == nil or size == 0 then return 0 else return string.sub(ret, -size*2) end 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)