类: SD Card 驱动
约 761 字大约 3 分钟
2026-03-19
构建固件和导入到JS
SDCard 类由 sdcard 模块提供:
import { SDCard } from 'sdcard'简介
SD 卡驱动类
用于通过 SPI 接口读写 SD 卡,支持 FAT 文件系统。 初始化后,SD 卡会被挂载到指定的路径,可以使用标准的文件系统 API 进行读写操作。
SD 卡通过 SPI 接口与 ESP32 通信。在使用 SD 卡之前, 需要先通过 serial 模块初始化对应的 SPI 总线。
示例:
import { SDCard } from "sdcard"
import * as serial from "serial"
import * as fs from "fs"
// 第一步:初始化 SPI 总线
const spi = serial.spi2
spi.setup({
miso: 19, // MISO 引脚
mosi: 23, // MOSI 引脚
sck: 18 // 时钟引脚
})
// 第二步:创建 SD 卡实例
const sd = new SDCard()
// 第三步:初始化并挂载 SD 卡
sd.setup({
spi: 2, // SPI 总线号(对应 serial.spi2)
cs: 13, // CS 引脚
mount: "/sd", // 挂载路径
khz: 20000 // SPI 时钟频率(kHz)
})
// 第四步:使用文件系统 API 访问 SD 卡
// 写入文件
fs.writeFileSync("/sd/test.txt", "Hello SD Card!")
// 读取文件
const content = fs.readFileSync("/sd/test.txt", "utf-8")
console.log(content)
// 创建目录
fs.mkdirSync("/sd/data")
// 列出目录内容
const files = fs.readdirSync("/sd")
console.log(files)SD 卡驱动类
用于通过 SPI 接口读写 SD 卡,支持 FAT 文件系统。
类方法
方法 constructor
原型: constructor ()
构造函数
创建一个新的 SDCard 实例。
返回值:
类型SDCard
说明返回 SDCard 实例
方法 setup
原型: setup (config:object)
初始化 SD 卡
配置并挂载 SD 卡到指定路径。初始化成功后,可以使用标准文件系统 API 访问 SD 卡。
注意:在调用此方法前,必须先通过 serial 模块初始化对应的 SPI 总线。
配置参数说明:
- spi: SPI 总线号(如 2 表示 SPI2,对应 serial.spi2)
- cs: CS(片选)引脚号
- mount: 挂载路径(如 "/sd")
- khz: SPI 时钟频率(kHz,默认 20000)
示例:
import { SDCard } from "sdcard"
import * as serial from "serial"
import * as fs from "fs"
// 先初始化 SPI 总线
const spi = serial.spi2
spi.setup({
miso: 19,
mosi: 23,
sck: 18
})
// 然后初始化 SD 卡
const sd = new SDCard()
// 基本配置
sd.setup({
spi: 2, // 使用 SPI2(对应 serial.spi2)
cs: 13, // CS 引脚
mount: "/sd" // 挂载路径
})
// 指定时钟频率(如果 SD 卡不稳定,可以尝试降低频率)
sd.setup({
spi: 2,
cs: 13,
mount: "/sd",
khz: 10000 // 降低频率以提高兼容性
})
// 使用文件系统 API 访问 SD 卡
fs.writeFileSync("/sd/hello.txt", "Hello from BeShell!")
console.log(fs.readFileSync("/sd/hello.txt", "utf-8"))参数:
config
类型object (详见下方类型定义)
参数说明配置对象
config 类型定义:
{ spi: number, // SPI 总线号 cs: number, // CS 引脚号 mount: string, // 挂载路径 khz?: number // SPI 时钟频率(kHz),默认 20000 }
返回值:
类型undefined
