浏览代码

发生已完成,暂时不整理框架了

xuxinyi 3 月之前
父节点
当前提交
6b40c3606a
共有 4 个文件被更改,包括 76 次插入36 次删除
  1. 6 0
      drv_periph/Drv_spi.lua
  2. 35 0
      drv_periph/radio.lua
  3. 34 35
      drv_periph/sx126x_driver.lua
  4. 1 1
      main.lua

+ 6 - 0
drv_periph/Drv_spi.lua

@@ -24,6 +24,12 @@ function SPI_GPIO_Init()
     -- log.info("Lora Spi init :",result)
 end
 
+function SPI_GPIO_DeInit()
+    if spi ~= nil then
+        spi.close(spi.SPI_1)
+    end 
+end
+
 --[[
     初始化SPI接口,底层接口
     @param txDat 要发送的数据:string类型

+ 35 - 0
drv_periph/radio.lua

@@ -0,0 +1,35 @@
+module(...,package.seeall)
+
+
+require "Drv_spi"
+require "sx126x_reg"
+require "sx126x_driver"
+
+
+function RadioInit()
+    sx126x_driver.SX126xInit()
+    sx126x_driver.SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
+    sx126x_driver.SX126xSetRegulatorMode(sx126x_reg.RadioStandbyModes_t.USE_DCDC)
+    sx126x_driver.SX126xSetBufferBaseAddress("00","00")
+    sx126x_driver.SX126xSetTxParams( "00", sx126x_reg.RadioRampTimes_t.RADIO_RAMP_200_US )
+    sx126x_driver.SX126xSetDioIrqParams( sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE )
+end
+
+function RadioStandby()
+    sx126x_driver.SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
+end
+
+sys.taskInit(function()
+    sys.wait(5000)
+    RadioInit()
+    RadioStandby()
+    sx126x_driver.RadioSetTxConfig(sx126x_reg.RadioModems_t.MODEM_LORA,"16",0,1,7,"01","0c","00","01","00","00","00",3000)
+    sx126x_driver.RadioSetChannel(433000000) 
+    sys.wait(2000)
+    while true do
+        sx126x_driver.sentString("hello,My_name_is_XuXinyi\n")
+        sys.wait(4000)
+    end
+end)
+
+

+ 34 - 35
drv_periph/sx126x_driver.lua

@@ -387,19 +387,18 @@ function SX126xInit()
     SX126xReset()
     SX126xWakeup()
     SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
-    SX126xSetRegulatorMode(sx126x_reg.RadioStandbyModes_t.USE_DCDC)
-    SX126xSetBufferBaseAddress("00","00")
-    SX126xSetTxParams( "00", sx126x_reg.RadioRampTimes_t.RADIO_RAMP_200_US )
-    SX126xSetDioIrqParams( sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE )
+    -- SX126xSetRegulatorMode(sx126x_reg.RadioStandbyModes_t.USE_DCDC)
+    -- SX126xSetBufferBaseAddress("00","00")
+    -- SX126xSetTxParams( "00", sx126x_reg.RadioRampTimes_t.RADIO_RAMP_200_US )
+    -- SX126xSetDioIrqParams( sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_ALL, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE, sx126x_reg.RadioIrqMasks_t.IRQ_RADIO_NONE )
 
-    -- -- local table2 = {sx126x_reg.RadioStandbyModes_t.STDBY_RC}
-    SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
+    -- SX126xSetStandby(sx126x_reg.RadioStandbyModes_t.STDBY_RC)
 
-    sys.wait(2000)
-    RadioSetTxConfig(sx126x_reg.RadioModems_t.MODEM_LORA,"16",0,1,7,"01","0c","00","01","00","00","00",3000)
+    -- sys.wait(2000)
+    
 
-    log.info("RadioSetTxConfig",string.format("%02X", 433000000))
-    RadioSetChannel(433000000) 
+    -- log.info("RadioSetTxConfig",string.format("%02X", 433000000))
+    -- RadioSetChannel(433000000) 
 end
 
 function sentString(strData)
@@ -416,29 +415,29 @@ end
 
 
 
-sys.taskInit(function ()
-    sys.wait(5000)
-    SX126xInit()
-    sys.wait(2000)
-    while true do
-        log.info("计算结果")
-        --[[
-            1.将普通字符串用函数转换成16进制字符串,并获取表长度。例如:"Hello, Lua!" -> "48656c6c6f2c204c756121"
-            2.返回的16进制表,是以两位为一个16进制数据,实际发生长需要减半。例如:"48656c6c6f2c204c756121" -> 0x48 0x65 ... 0x21 
-            3.RadioSend的第二位参数是要发生的数据长度,需要16进制字符串形式,意味着"48656c6c6f2c204c756121"是11位数据
-                但是是需要转成 "08"。
-        ]]
-        sentString("hello,My_name_is_XuXinyi\n")
-        -- local original = "Hello, Lua!\n"
-        -- local hexStr = stringToHex(original)
-        -- log.info("test:",hexStr)  -- 输出: 48656c6c6f2c204c756121
-        -- log.info("testlen:",#hexStr)
-        -- RadioSend(hexStr,string.format("%02X", #hexStr/2),"00") 
-        -- sys.wait(20)
-        -- SX126xReadCommand(sx126x_reg.RadioCommands.RADIO_GET_STATUS,1)
-        -- SX126xWakeup()
-        sys.wait(4000)
-    end
-    spi.close(spi.SPI_1)
-end)
+-- sys.taskInit(function ()
+--     sys.wait(5000)
+--     SX126xInit()
+--     sys.wait(2000)
+--     while true do
+--         log.info("计算结果")
+--         --[[
+--             1.将普通字符串用函数转换成16进制字符串,并获取表长度。例如:"Hello, Lua!" -> "48656c6c6f2c204c756121"
+--             2.返回的16进制表,是以两位为一个16进制数据,实际发生长需要减半。例如:"48656c6c6f2c204c756121" -> 0x48 0x65 ... 0x21 
+--             3.RadioSend的第二位参数是要发生的数据长度,需要16进制字符串形式,意味着"48656c6c6f2c204c756121"是11位数据
+--                 但是是需要转成 "08"。
+--         ]]
+--         sentString("hello,My_name_is_XuXinyi\n")
+--         -- local original = "Hello, Lua!\n"
+--         -- local hexStr = stringToHex(original)
+--         -- log.info("test:",hexStr)  -- 输出: 48656c6c6f2c204c756121
+--         -- log.info("testlen:",#hexStr)
+--         -- RadioSend(hexStr,string.format("%02X", #hexStr/2),"00") 
+--         -- sys.wait(20)
+--         -- SX126xReadCommand(sx126x_reg.RadioCommands.RADIO_GET_STATUS,1)
+--         -- SX126xWakeup()
+--         sys.wait(4000)
+--     end
+--     spi.close(spi.SPI_1)
+-- end)
 

+ 1 - 1
main.lua

@@ -65,7 +65,7 @@ errDump.request("udp://dev_msg1.openluat.com:12425", nil, true)
 --update.request()
 
 -- require "Drv_spi"
-require "sx126x_driver"
+require "radio"
 
 
 --启动系统框架