基础资料
基于Air103开发板:🚗 Air103 - LuatOS 文档
探讨重点
对官方社区库接口SDIO库调用及示例进行复现及分析,了解SDIO模式读写SD卡的基本原理及操作方法。
扩展阅读:
合宙Air105|SFUD库|FS|SPI FLASH|W25QXX |LuatOS-SOC接口|官方demo|学习(15-4):SFUD库操作-外置flash_打酱油的工程师的博客-CSDN博客
软件及工具版本
LuatOS@AIR103 base 22.12 bsp V0015 32bit
硬件准备
Air103开发板1块,面包板1块,SPI/SDIO双功能版本读写模块,导线若干。
接线
需采用:SPI/SDIO双功能版本读写模块
--[[
接线要求:
SDIO 使用6线接法
Air103开发板 SDIO模块
GND GND
GPIO26(SDIO_02) D02
GPIO27 D03
GPIO23(SDIO_CMD) CMD
GPIO22(SDIO_CK) CLK
GPIO24 D00
GPIO25 D01
3.3V VCC
Demo代码及解析:
-- LuaTools需要PROJECT和VERSION这两个信息
PROJECT = "sdiodemo"
VERSION = "1.0.0"
log.info("main", PROJECT, VERSION)
-- sys库是标配
_G.sys = require("sys")
--添加硬狗防止程序卡死
if wdt then
wdt.init(9000)--初始化watchdog设置为9s
sys.timerLoopStart(wdt.feed, 3000)--3s喂一次狗
end
--[[接线方式:
Air103开发板 SDIO模块
GND GND
GPIO26(SDIO_02) D02
GPIO27 D03
GPIO23(SDIO_CMD) CMD
GPIO22(SDIO_CK) CLK
GPIO24 D00
GPIO25 D01
3.3V VCC
]]
-- 特别提醒, 由于FAT32是DOS时代的产物, 文件名超过8个字节是需要额外支持的(需要更大的ROM)
-- 例如 /sd/boottime 是合法文件名, 而/sd/boot_time就不是合法文件名, 需要启用长文件名支持.
local function fatfs_test()
log.info("sdio", "call sdio.init")
sdio.init(0)
log.info("sdio", "call sdio.sd_mount")
status=sdio.s

该文详细介绍了如何在Air103开发板上使用SDIO接口与SD卡进行通信,通过LuatOS操作系统进行文件系统的读写操作。包括SDIO库的初始化、SD卡挂载、文件读写、长文件名支持以及示例代码的解析。此外,还提到了其他相关资源如SPI、fatfs的扩展操作和SFUD库对外置flash的操作。
最低0.47元/天 解锁文章
813

被折叠的 条评论
为什么被折叠?



