f_lseek_用stm32移植FATFS的过程中,我弄了几天始终搞不懂2个问题。关于底层引脚和f_read()的问题。...

在将FATFS移植到STM32过程中,遇到两个主要问题:一是能否更改SD卡引脚配置,目前大部分例程直接在'sdcard.c'中初始化特定引脚,但不清楚如何关联到SD卡;二是使用f_read()函数时,只能读取文件的前512字节,无法连续读取文件内容。尝试使用f_lseek()更改文件指针未果,目前采用循环调用f_open(), f_lseek(), f_read()来实现连续读取。" 102476284,9044545,TP5框架中日志写入与array_map应用解析,"['PHP', '框架开发', 'ThinkPHP', '数组操作']
摘要由CSDN通过智能技术生成

我发现网上大部分的例程都是在"sdcard.c"中直接/*ConfigurePC.08,PC.09,PC.10,PC.11,PC.12pin:D0,D1,D2,D3,CLKpin*/GPIO_InitStructure.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_12;GPIO_InitSt...

我发现网上大部分的例程都是在"sdcard.c"中直接 /* Configure PC.08, PC.09, PC.10, PC.11, PC.12 pin: D0, D1, D2, D3, CLK pin */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_12;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOC, &GPIO_InitStructure);

/* Configure PD.02 CMD line */

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;

GPIO_Init(GPIOD, &GPIO_InitStructure);

问题是,我可以更改它的引脚吗?我找不到他们与SD卡的联系!

问题二:f_read()中,发现只能读取到该文件的前512个字节,然后就读不下去了(我设置char buf[512];)。有时候遇到读几个MB时,没那么大的内容怎么办,为什么不会借着往下读。换下一个簇读写,应该可以的,我看SD读写是可以的。我用f_lseek(),发现更改指针不行啊!

我想到了一种比较笨的方法!但是能连续地读内容来,希望跟我有一样疑问的人,有个参考!

for(i=0;i<20;i++)

{

result = f_mount(0, &fs);

result = f_opendir(&DirInf, "/");

result = f_open(&file, "123.txt", FA_OPEN_EXISTING | FA_READ);

result = f_lseek(&file,i*512);

result = f_read(&file, &buf, sizeof(buf) - 1, &bw);

printf("\r\narmfly.txt content : \r\n%s\r\n", buf);

f_close(&file);

f_mount(0, NULL);

}

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值