前言: SD卡被广泛用于存储设备如:手机,MP3播放器, SD卡是存储大量非易失性数据非常便宜的选择(即断电,数据也不会丢失)。 是数据记录和存储音频/图像的理想选择。 SD和MMC卡,支持多种协议,但通常都是基于SPI协议。 它使用一个通用的SPI接口, SD卡是块设备。以块大小(通常为512字节)的倍数读/写数据; 接口界面基本上是“从块地址n读”,“写块地址M”。 文件系统(如FAT)是在此之上的抽象 SDFileSystem是此例程的库文件允许SD卡以SPI接口类似文件系统读写 ,此库支持:FAT12 / FAT16 / FAT32 SD / SDHC cards up to 32Gb long filenames time stamp 本例程基于一个SparkFun的MicroSD卡模块, (可以使用SPI端口以及任何DigitalOut)接线: SparkFun MicroSD Breakout Board mbed 板 CS o--------------------------------------------o D6 (DigitalOut cs) DI o--------------------------------------------o D4 (SPI mosi) VCC o-------------------------------------------o VOUT SCK o-------------------------------------------o D3 (SPI sclk) GND o-------------------------------------------o GND DO o-------------------------------------------o D5 (SPI miso) CD o 移植前连接的是xbed LPC1768 sd(p5, p6, p7, p8, "sd"); SparkFun的MicroSD接口板 的MicroSD突围mbed VCC引脚3.3V。不要使用5V。5V电源会损坏SD卡模块。 CD(卡检测)引脚是可选的,并且在本示例程序未使用。 CD连接到GND时,表示没有卡存在。一旦卡插入则与GND的连接断开。 它可使用DigitalIn pin读取,模式设置为上拉。 #include "mbed.h" #include "SDFileSystem.h" //SDHC support till 32GB //SPI SDFileSystem sd(D5, D6, D7, D8, "sd"); // the pinout on the mbed Cool Components workshop board //xbed LPC1768 使用(p5, p6, p7, p8, "sd") int main() { printf("Hello World!\n"); mkdir("/sd/mydir", 0777); FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); if(fp == NULL) { error("Could not open file for write\n"); } fprintf(fp, "Hello fun SD Card World!"); fclose(fp); printf("Goodbye World!\n"); } 参考
|
mbed official/ SDFileSystem库文件