sx126x_driver.lua 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. --- 模块功能:sx126x模块驱动
  2. -- 读取FLASH ID
  3. -- @author openLuat
  4. -- @module spi.testSpiFlash
  5. -- @license MIT
  6. -- @copyright openLuat
  7. -- @release 2018.03.27
  8. module(...,package.seeall)
  9. require"utils"
  10. require"pm"
  11. pm.wake("wake11")
  12. require"pins"
  13. -- require "sx126x_reg"
  14. require "Drv_spi"
  15. SX126xResetGPIO = pins.setup(pio.P0_13,0)
  16. -- 初始化SPI
  17. function SX126xIoInit()
  18. Drv_spi.SPI_GPIO_Init()
  19. end
  20. -- 复位SX126x
  21. function SX126xReset()
  22. sys.wait(10)
  23. SX126xResetGPIO(0)
  24. sys.wait(20)
  25. SX126xResetGPIO(1)
  26. sys.wait(10)
  27. end
  28. -- 初始化SX126x
  29. function SX126xInit()
  30. SX126xIoInit()
  31. SX126xReset()
  32. end
  33. function SX126xWakeup()
  34. Drv_spi.drv_spi_read_write_byte("C00000",2)
  35. end
  36. function SX126xWriteCommand(command ,buffer)
  37. Drv_spi.drv_spi_read_write_byte(command,0)
  38. sys.wait(20)
  39. drv_spi_read_write_byte(buffer);
  40. sys.wait(20)
  41. end
  42. -- --测试案例
  43. -- sys.taskInit(function ()
  44. -- sys.wait(3000)
  45. -- -- SX126xInit()
  46. -- sys.wait(3000)
  47. -- i = 0
  48. -- while true do
  49. -- -- local ret = Drv_spi.drv_spi_read_write_byte("1D0740000000",4)
  50. -- -- log.info("提取结果", ret) -- 输出: 1D0F
  51. -- log.info("计算结果", i%2)
  52. -- if i%2 == 0 then
  53. -- log.info("1")
  54. -- SX126xResetGPIO(1)
  55. -- else
  56. -- log.info("0")
  57. -- SX126xResetGPIO(0)
  58. -- end
  59. -- i = i + 1
  60. -- sys.wait(3*1000)
  61. -- end
  62. -- spi.close(spi.SPI_1)
  63. -- end)