Skip to content

示例24:SD卡读写 ​

实验概述 ​

当前开发源码通过 SPI 接口提供 SD 卡/TF 卡挂载与 Web 文件操作,沿用 SDIO 外设类型(type 37)。运行时不支持 SDMMC,SD 卡不自动替代 LittleFS 或承担日志/离线报告缓存。

待验示例:SPI 配置保持禁用;先核对目标板、引脚、供电及固件版本。年龄、恢复、只读规则及页面已有局部Host验证记录;统一候选仍待完整门禁,现场挂载、文件读写、故障恢复、资源测量与长稳均为 NOT_RUN。任意路径文件写入动作未实现,专用数值记录动作40见下文。

硬件接线 ​

SPI 模式 ​

开发板标识GPIO引脚SD卡引脚
MOSIGPIO23DI(CMD)
MISOGPIO19DO(DAT0)
CLKGPIO18CLK
CSGPIO5CS(DAT3)

SDMMC六线模式不受当前运行时支持,不能导入旧占位配置。

JSON 配置示例 ​

SPI 模式 ​

json
{
  "peripherals": [
    {
      "id": "sd_spi",
      "name": "SD卡-SPI",
      "type": 37,
      "enabled": false,
      "pinCount": 4,
      "pins": [18, 23, 19, 5],
      "params": {"interface": 1, "frequency": 10000000}
    }
  ]
}

SPI 引脚顺序为 SCK、MOSI、MISO、CS。这些引脚只是 classic ESP32 示例,不能直接套用到其它板卡;应在外设配置流程核对预检与导入格式。

外设执行联动 ​

已加入的动作38“SD 状态快照(只读)”输出质量/年龄/诊断JSON文本,可选择相应禁用规则模板后预览,不会自动保存或启用。它不会挂载、查卡或写文件,也不是数值历史或实时容量条件。平台需配置对应文本属性;旧固件不支持动作38。

Web文件操作限制、显式恢复流程与容量质量说明见 SD卡存储。容量年龄是本次启动的64位单调毫秒,不是UTC;刷新不重新采样,也不证明卡仍在线。卸载/失败后文件访问不自动挂载,恢复不重放失败写入。

⚠️ 注意:当前外设执行没有内置 file_append/file_write 文件动作。动作40已提供专用数值记录,但不是任意路径文件写接口。

专用数值记录模板(动作40) ​

  1. 先保存温度读取规则(动作19),启用并勾选数值历史;明确核对来源及测量质量。
  2. 完成SD外设配置与显式挂载。新增执行规则,选择“数值采集来源 → SD 持续记录”,选择该SD及温度来源。
  3. 预览并填入禁用草稿;检查采样/失鲜/刷写时间、文件大小和数量。模板采用独立1秒定时触发,无历史、屏幕控制、延时或脚本。
  4. 正常保存及服务端预检通过后,确认允许持续写卡再启用。手动执行只读状态;全局仅一个记录器。轮转会覆盖旧日志,故障恢复不重放失败批次。

详细参数、来源约束及计数质量见SD卡存储。模板完成不代表真实卡或24h/7d长稳通过,未执行的现场项目保持NOT_RUN。

注意事项 ​

  1. 格式:建议使用 FAT32;其它格式(含 exFAT)未在本候选验收,不能仅凭卡容量推断支持。挂载不会自动格式化。
  2. 供电:SD 卡工作电流可达 100mA,确保 3.3V 供电稳定
  3. SPI 共享:SD 卡使用 SPI 总线时,CS 引脚用于选择设备
  4. 引脚核验:按SPI配置核对总线共享、片选和板级保留引脚
  5. 写入频率:避免过于频繁的写入操作,建议批量写入
  6. 文件系统:FastBee 使用 LittleFS 管理内部 Flash,SD 卡使用 FAT 文件系统
  7. 热插拔:不支持热插拔,SD 卡需在断电时插拔
  8. 当前状态:SPI/Web文件操作、只读动作38及专用数值记录动作40已有候选源码;任意路径文件追加动作仍未支持。局部软件验证不等于完整候选通过;真实卡故障恢复、资源/内存测量及长稳仍为 NOT_RUN。

蜂信物联 | fastbee.cn