main.lua 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "fatfs"
  3. VERSION = "1.0.0"
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. -- 注意: V0006 beta5 开始才有fatfs模块,而且默认不包含进固件.
  7. --[[
  8. 接线要求:
  9. TF模块通常是5V, 然后用转3.3v, 记得使用5V供电.
  10. SPI 使用常规4线解法, 本demo使用的GPIO18作为CS, 没使用默认SPI_CS.
  11. ]]
  12. local NETLED = gpio.setup(19, 0, gpio.PULLUP) -- 输出模式
  13. sys.taskInit(function()
  14. while 1 do
  15. -- 一闪一闪亮晶晶
  16. NETLED(0)
  17. sys.wait(500)
  18. NETLED(1)
  19. --G18(1)
  20. sys.wait(500)
  21. end
  22. end)
  23. sys.taskInit(function()
  24. sys.wait(5000) -- 启动延时
  25. local spiId = 0
  26. local cs = 0
  27. local result = spi.setup(
  28. spiId,--串口id
  29. cs,
  30. 0,--CPHA
  31. 0,--CPOL
  32. 8,--数据宽度
  33. 400*0000--,--频率
  34. -- spi.MSB,--高低位顺序 可选,默认高位在前
  35. -- spi.master,--主模式 可选,默认主
  36. -- spi.full--全双工 可选,默认全双工
  37. )
  38. gpio.setup(18, 1)
  39. --fatfs.debug(1) -- 若挂载失败,可以尝试打开调试信息,查找原因
  40. fatfs.mount("SD", 0, 18)
  41. local data, err = fatfs.getfree("SD")
  42. if data then
  43. log.info("fatfs", "getfree", json.encode(data))
  44. else
  45. log.info("fatfs", "err", err)
  46. end
  47. -- 重新设置spi,使用更高速率
  48. spi.close(0)
  49. sys.wait(100)
  50. spi.setup(spiId, cs, 0, 0, 8, 2*1000*1000)
  51. local data, err = fatfs.getfree("SD")
  52. if data then
  53. log.info("fatfs", "getfree", json.encode(data))
  54. else
  55. log.info("fatfs", "err", err)
  56. end
  57. end)
  58. -- 用户代码已结束---------------------------------------------
  59. -- 结尾总是这一句
  60. sys.run()
  61. -- sys.run()之后后面不要加任何语句!!!!!