基于单片机的文件系统实现
来源:互联网 发布:2016韩国男团知乎 编辑:程序博客网 时间:2024/05/21 22:01
首先申明,我只实现了部分的功能,没有提到的功能默认是没有的。
实现了:获得SD信息,获得总分区信息,获得某分区的信息,读取fat分区表功能。
具体有列出根目录下所有文件功能,查找某文件是否存在功能,显示某文件内容功能,删除某文件功能。
都仅限于在根目录下操作,且要满足8.3文件名格式。
因老师有要求,不能列出所有文件内容,现列出头文件,给各位一个参考。
/*************************************************************sd卡底层驱动**~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~**文件名:sd.h*依赖性:无*处理器:C8051F410*编译器:keil 3*单位:宁夏大学**历史:*<作者><时间><版本><描述>*李居强2011/11/11V1.0建立原始文档***************************************************************程序版权声明**本程序为自由程序,您可以自由用于个人或商业行为。可以公布*程序代码,但是不得收费,不得修改。**本程序的版权归宁夏大学 李居强所有。**按照惯例 自由软件不会对因为使用该软件而造成的任何损失承担*任何责任。请谨慎考虑!**更多信息请访问我的博客:http://blog.csdn.net/lineter**本程序最终解释权归李居强所有。************************************************************/#ifndef SD_H#define SD_H#include "..\include\complier.h"#include "..\include\typedefs.h"#include "..\include\spi.h"typedef enum//SD_ErrorList{ SD_RESET_OK = 0x00,// SD卡重启成功 SD_RESET_TIMEOUT= 0x01,// SD卡重启超时(可能无卡) SD_ACTIVE_TIMEOUT = 0x02,// SD卡初始化失败 SD_NO_SPI = 0x03,// SD卡不支持spi模式(大于2G) SD_WRITE_BLOCK_ERROR= 0x04,// 不能设置为写块模式SD_WRITE_BLOCK_TIMEOUT = 0x05,// 设置块写入超时SD_WRITE_NOT_ACCEPT = 0x06,// 块写入未接受SD_WRITE_SAVE_TIMEOUT= 0x07,// 块写入保存超时 SD_WRITE_BLOCK_OK = 0x08,// 块写入成功SD_READ_BLOCK_TIMEOUT = 0x09,// 设置块读取超时SD_READ_RESPOND_TIMEOUT= 0x0A,// 块读取响应超时SD_READ_BLOCK_OK = 0x0B,// 块读取成功 SD_GET_CID_TIMEOUT = 0x0C,// 设置读取CID超时 SD_CID_NOT_RESPOND = 0x0D,// 读取CID未响应 SD_GET_CID_OK = 0x0E,// 读取CID成功 SD_GET_CSD_TIMEOUT = 0x0F,// 设置读取CSD超时 SD_CSD_NOT_RESPOND = 0x10,// 读取CSD未响应 SD_GET_CSD_OK = 0x11,// 读取CSD成功 SD_OTHER_ERROR = 0xFE, SD_TIMEOUT_ERROR = 0xFF}SD_ErrorList;typedef enum// CommandList{SD_CAMMAND= 0x40,// SD卡命令标示 SD_RESET = 0x00,// SD卡重启:0 SD_RECOGNITION = 0x37,// SD卡识别:55 SD_ACTIVE = 0x01,// SD卡激活:1 SD_WRITE_BLOCK = 0x18,// SD卡写数据块:24 SD_READ_BLOCK = 0x11,// SD卡读数据块:17 SD_GET_CID = 0x0A,// 获得SD卡CID:10 SD_GET_CSD = 0x09, // 获得SD卡CSD:9 }CommandList;byte sd_write_command(byte Command, dword date, byte CRC);SD_ErrorList sd_reset(void);SD_ErrorList sd_init(void);SD_ErrorList sd_write_sector(byte *buffer, dword address);SD_ErrorList sd_read_sector(byte *buffer, dword address);word sd_get_capaity(void);#endif
一定要注意,spi模式下SD卡最大支持2G的卡,以上的用不了的,我在这上面可浪费了大半天时间。一般只要程序无误,很快就可以调通的,读写扇区功能是很好实现的。
- 基于单片机的文件系统实现
- 基于单片机的电子密码锁的实现
- 单片机文件系统的学习
- 基于vfs实现自己的文件系统
- 基于单片机的数控直流稳压电源的设计与实现
- 单片机中基于时间片的多任务的实现
- 基于单片机的多级菜单实现方法改进
- 基于51单片机的LCD1602液晶驱动实现
- 基于Modbus协议实现单片机与PLC之间的通讯
- MPS430F149单片机之_基于MSP430单片机实现的无线传输模块.c
- 基于文件系统的图书管理系统的设计与实现
- 基于μcosII的嵌入式文件系统的设计与实现
- 基于Blackfin处理器实现对硬盘FAT32文件系统的操作
- RHCS + GNBD实现基于multipath上的GFS文件系统
- 嵌入式 linux 基于fuse 的 exfat 文件系统实现
- 基于单片机的信号发生器设计
- 基于单片机的信号发生器例程
- 基于单片机的数字电压表
- 造成内存位置访问无效的一个原因
- 下图为 TCP/IP 协议驱动程序 (Tcpip.sys) 及其用于在 Windows XP Service Pack 2 和 Windows Server 2003 Service Pack 1
- Log4j
- Sql server 2005在安装过程中所遇到的几个问题
- 字符串IP和数字转换的杂谈
- 基于单片机的文件系统实现
- CSharpCodeProvider 学习 c#
- Android TextView文字过多,添加滚动条
- 浅谈软件的设计原则
- log4j
- 9度-王道论坛计算机考研数据结构算法实战测试(3)
- 匿名内部类
- 实习
- struct 配置 有点好玩(myeclipse)