单片机建立sd卡文件

单片机建立sd卡文件,第1张

关于SD卡的几点注意事项:

1、无论我们愿意不愿意,SD卡每次读写数据的最小单位是1个扇区,即512个字节。

2、SD卡与单片机连接的SPI总线不能太长,要尽量短。这样的好处是速度可以更快,也不容易出错。

3、虽然我们并不关心FAT文件表,但是我们仍然要关心SD卡的存储结构,如果我们不想使用PC机来读取保存在SD卡上的数据那我们就不用关心SD存储结构了。但作为一个大容量的可移动存储设备,不能用PC机来读取是个很大的遗憾,我解决这个遗憾的方法如下?

因为我不了解FAT复杂的结构,所以我做的程序没法去按照FAT表的各项功能来进行创建文件、删除文件、创建目录等等 *** 作。

虽然我们的单片机不能创建文件,但是PC机是可以创建文件的啊!所以我使用PC机将SD卡格式化,之后在SD卡上创建一个大文件,比如我的128M的SD卡上我建立了一个100M的文件。这里需要注意一下,一般使用windows创建文件的功能时是没有办法指定创建文件的大小的,空文件就是0个字节的长度,而我们是需要一个固定长度的文件的,所以我用VC编写了一个小软件,这个软件可以为我创建一个100M长度的空文件,记住,这点很重要:一个固定长斗前旦度的空文件虽然我们建立了个文件在SD卡上,可是我们因为不去了解FAT表,所以我们一样不知道这个文件到底位于SD卡的什么地方,不要以为它会在0字节的地方开始,为了找到这个文件的开始位置,我们可以在建立的那个空文件的开头写上几个字符,比如我程序里面写的“DATASTART”,接下来我们要做的就是一个扇区一个扇区的去找这个几个空扰特殊的字符,这是个笨方法,但却是最简单直观的方法。这个方法有两个缺点:

a、如果文件建立在整个SD卡的后面,那找到这个文件需要漫长的等待。b、如果碰巧某个文件里面也有我们定义的那个特殊字符串的话,那就乱套了!不过好在我们使用的SD卡一般都是专用的,并不能拿去做其他应用,比如从公司copy点文件回家之类的,那就能保证这个SD卡上文件的简单性,即只有我们需要的那个文件,其他文件并不存在,而且这个文件肯定会从SD卡开始的那些扇区中的某一个开始。这样说来的话找到这个字符串也不是那么慢嘛!^_^。不过这里要建议一下,在使用SD卡之前最好用windows将它完全格式话一下。

3-4、一旦我们找到了我们要写入文件的起始位悔虚置(它一般表示为一个扇区号),那我们就可以在这个起始扇区的下一个扇区写入数据了。

呵呵,以前用单片机读写过SD卡。

虽然看过一些关于FAT32文件系统的参考资料,都是半文半白的,碰到关键的地方就岔宏游开了。

其实,这点东西,还真是简单。

你可以用WINDOWS XP,格式化SD卡,写入几个小文件(TXT),文件内容你是已知的。

然后用单片机全面的读出,通过串口,全部由串口助手接收,存盘仔细分析。

再用XP删除一些文件,再写入一纯冲些,再读出分做绝歼析。

用不了几个回合,就都搞清楚了。

在这里的文件系统,不是说SD卡的文件系统是什么,而是说这个单片机系统以什么方式储存文件,是以FAT32方式储存,那么单片机就要运行支持FAT32文件系统的函数。来与FAT32格式的,SD卡,硬盘等硬件进行读写文件。。。。明白了吗?是指单片机里加入了FAT32的昌散支持函数。。。所以你耐戚氏说的对啊。。仔颤当然这个函数是要单片机运行的,也是写到单片机里的。。。。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/tougao/12226880.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-22
下一篇2023-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存