소스 검색

读寄存器,写寄存器完成

xuxinyi 4 달 전
부모
커밋
40a3fcb973
1개의 변경된 파일27개의 추가작업 그리고 55개의 파일을 삭제
  1. 27 55
      drv_periph/sx126x_driver.lua

+ 27 - 55
drv_periph/sx126x_driver.lua

@@ -64,54 +64,10 @@ function SX126xWriteCommand(command,buffer)
 end
 -- -----------------------------------------------SPI基础读写---------------------------------------------------
 -- 读取寄存器 完成
--- function SX126xReadRegisters(address,size)
---     local command = sx126x_reg.RadioCommands.RADIO_READ_REGISTER
---     local sendData = command .. address .. "00"
---     local receiverDataCount= size
-
---     while size > 0 do
---         sendData = sendData .. "00"
---         size = size - 1
---     end
-
---     local result = Drv_spi.drv_spi_read_write_byte(sendData,receiverDataCount)  --这里乘2的意思是,16进制是两位,但是转成字符串的形式就是4位了。
-
---     log.info("SX126xReadRegisters",result)
---     return result
--- end
-
 function SX126xReadRegisters(address,size)
-    local receiverData = {}
     Drv_spi.drv_spi_read_write_byte(sx126x_reg.RadioCommands.RADIO_READ_REGISTER,0)
-    -- Drv_spi.drv_spi_read_write_byte(string.sub(address, 1, 2),0);
-    -- Drv_spi.drv_spi_read_write_byte(string.sub(address, 3, 4),0);
-    -- receiverData[0] = Drv_spi.drv_spi_read_write_byte("00",1)
-    -- log.info("SX126xReadRegisters:",receiverData[0])
-    Drv_spi.drv_spi_read_write_byte(string.sub(address, 1, 2),0);
-    Drv_spi.drv_spi_read_write_byte(string.sub(address, 3, 4),0);
-    Drv_spi.drv_spi_read_write_byte("0");
-
-    log.info("SX126xReadRegisters:",string.fromHex("1d"):toHex())
-    log.info("SX126xReadRegisters:",string.fromHex("07"):toHex())
-    log.info("SX126xReadRegisters:",string.fromHex("40"):toHex())
-    log.info("SX126xReadRegisters:",string.fromHex("00"):toHex())
-    log.info("SX126xReadRegisters:",string.fromHex("00"):toHex())
-    log.info("SX126xReadRegisters:",string.fromHex("1d07400000"):toHex())
-    for i = 1, size do
-        receiverData[i] = Drv_spi.drv_spi_read_write_byte("00",1)
-        log.info("SX126xReadRegisters:",i,":",receiverData[i])
-    end
-end
---封装后的读寄存器
-function SX126xReadRegister(address)
-    local ret = SX126xReadRegisters(address,1)
-    return ret
-end
-
--- 写入寄存器
-function SX126xWriteRegisters(address,buffer,size)
-    local command = sx126x_reg.RadioCommands.RADIO_WRITE_REGISTER
-    local sendData = command .. address .. "00"
+    sys.wait(20)
+    local sendData = address .. "00"
     local receiverDataCount= size
 
     while size > 0 do
@@ -121,12 +77,30 @@ function SX126xWriteRegisters(address,buffer,size)
 
     local result = Drv_spi.drv_spi_read_write_byte(sendData,receiverDataCount)  --这里乘2的意思是,16进制是两位,但是转成字符串的形式就是4位了。
 
-    
-
     log.info("SX126xReadRegisters",result)
     return result
 end
 
+--封装后的读寄存器
+function SX126xReadRegister(address)
+    local ret = SX126xReadRegisters(address,1)
+    return ret
+end
+
+-- 写入寄存器
+function SX126xWriteRegisters(address,buffer)
+    local bufferTotal = ""
+    Drv_spi.drv_spi_read_write_byte(sx126x_reg.RadioCommands.RADIO_WRITE_REGISTER,0)
+    sys.wait(20)
+    for i, data in ipairs(buffer) do
+        bufferTotal = bufferTotal .. data
+    end
+
+    local test = address .. bufferTotal
+    log.info("SX126xWriteRegisters",bufferTotal)
+    Drv_spi.drv_spi_read_write_byte(test,0);
+end
+
 function SX126xWriteRegister(address,value)
     SX126xWriteRegisters( address,value,1);
 end
@@ -404,6 +378,7 @@ local s = string.fromHex("1D0740000000")
 
 sys.taskInit(function ()
     sys.wait(5000)
+    local i = 0x00
     while true do
         -- log.info("testSpiFlash.readFlashID",spi.send_recv(spi.SPI_1,s):toHex())--收发读写
 
@@ -419,13 +394,10 @@ sys.taskInit(function ()
         -- log.info("testSpiFlash.readFlashID",ret)
 
         -- SX126xWriteCommand("1d",{"0740"})
-        
-        -- log.info("计算结果", SX126xReadRegisters("0740",1))
-        log.info("testSpiFlash.sendCommand",spi.send(spi.SPI_1,string.char(0x1d)))--发数据
-        log.info("testSpiFlash.sendCommand",spi.send(spi.SPI_1,string.char(0x07)))--发数据
-        log.info("testSpiFlash.sendCommand",spi.send(spi.SPI_1,string.char(0x40)))--发数据
-        log.info("testSpiFlash.readFlashID",spi.recv(spi.SPI_1,6):toHex())--收数据
-        log.info("testSpiFlash.readFlashID",spi.recv(spi.SPI_1,6):toHex())--收数据
+        SX126xWriteRegisters("0740",{string.format("%02X", i),string.format("%02X", i+1)})
+        log.info("计算结果0740寄存器", SX126xReadRegister("0740"))
+        log.info("计算结果0741寄存器", SX126xReadRegister("0741"))
+        i = i + 1
         sys.wait(2000)
     end
     spi.close(spi.SPI_1)