fatfs文件系统移植时各种小问题总结

1、f_open创建文件时,如果返回值是FR_NO_FILESYSTEM,先看一下下面程序win数组中读没读到55AA,如果没有参看其他f_open讲解,看一下SD卡有没有MDR引导扇区,如果没有换张SD卡吧,如果有但是没有读到,看一下是不是大端小端的问题。扇区字节读错位置。

fatfs移植时要清楚被移植的CPU支持大端还是小端存储,大端,小端也是移植成功与否的关键。

2、如果你需要移植的存储卡不能在电脑上格式化,你可以自己往0扇区写入DBR引导代码,这样存储卡也能使用。

3、在使用f_getfree函数获取空闲簇完成后,在接下来调用其他函数之前,在下面进行文件数据读写时,一定要使用f_mount函数重新注册工作区,否则读写函数将不会成功,还有f_open函数回返回值FR_INT_ERR,我没有找到原因,先记录于此。

4、f_lseek函数上下执行语句都是f_write函数或f_puts函数,都不会出错,

    (1)但是f_puts函数放在f_write函数上面执行时,他两之间夹着f_lseek函数 执行语句,f_write 向文件中写数据就会出错。

    (2)但是f_write 函数放在f_puts 函数上面执行时,他两之间夹着f_lseek函数 执行语句,f_puts 向文件中写数据不会出错。

5、f_gets函数放在f_read函数上面执行时,f_gets函数能读出文件的数据,f_read函数读取数据为0.

     f_read 函数放在f_gets 函数上面执行时,f_read 函数能读出文件的数据,f_gets 函数读取数据为0.

总结:f_gets函数和f_read 函数不能紧挨着使用。

6、f_raeddir()读取目录函数,调用一次该函数只能读取文件夹中一个文件或文件夹。

例程

f_raeddir(&dir,"new");

7、fatfs文件系统中FAT 表,每四个字节一组表示一个簇的信息。

8、当是自己对SD卡整张卡进行擦除,和往SD卡里面写DBR引导扇区,相当于重新格式化SD卡时,完成后必修注册工作空间区,同时进行创建一个文件夹。不创建一个文件夹,后续创建文件夹和文件将是错误的。

9、windows下面文件夹名和路径名是不区分大小写的

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值