【建议初学SD卡时先搞懂MSP430在无文件系统下的SD卡读写】
Petit FatFs 是FatFs 的精简版,专为 RAM较小的单片机设计的,我所测试的基本SD 读取以及写入程序 RAM 消耗通常在150 Byte左右。
因此可以适用于绝大多数MSP430单片机,本例使用的是MSP430F2274.移植到其他型号,仅需修改 硬件SPI接口部分的代码。
可实现以下功能:
pf_mount - Mount/Unmount a Volume
pf_open - Open a File
pf_read - Read File
pf_write - Write File
pf_lseek - Move read/write Pointer
pf_opendir - Open a Directory
pf_readdir - Read a Directory Item
注意:不支持新建文件、删除文件等功能。不支持长文件名,不支持中文,中文会反应为 GB区位码。
首先 MSP430与 SD卡的接口,见TI 官方例程: Interfacing the MSP430 With MMC/SD Flash Memory Cards (Rev. B)
或者如下图所示:
MSP430F2274与SD 接口:
P3.7---------->CS
P3.5 MISO--->DO
P3.4 MOSI--->DI
P3.0 CLK----->SCLK
首先将SD卡 或者 microSD(TF卡)或者 MMC卡 格式化成 FAT(FAT16);
在根目录创建 文本文件,比如 abc.txt 内容为 Hello World
读取abc.txt 的代码为:
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer
BCSCTL1 = CALBC1_16MHZ;
DCOCTL = CALDCO_16MHZ;
spi_initialize();
disk_initialize();
pf_mount(&fs);
pf_open("abc.txt");
pf_read(Line, sizeof(Line), &s1);
写入代码为
pf_open("abc.txt");
res= pf_write(towrite, sizeof(towrite), &s2);
注意:写入文件,只能写入原文件大小的数据,不能大于,这是 Petit FatFs 的功能所限。
打开根目录下名为 hello的文件夹,并显示文件夹中文件的代码为
res= pf_opendir(&dir, "hello");
pf_readdir(&dir, &fno);
整个工程的原始代码见:
SD pff.rar
(120.64 KB)
(下载次数: 356, 2012-3-24 20:13 上传)