使用了f_getfree后,f_open读取文件失败,

2019-07-20 22:32发布

求助下各位。。
在使用f_mount挂载了SD卡后,调用f_gerfree()获取容量后,再使用f_open()以及f_read()函数读取就失败;
如果我在使用f_open()以及f_read()之前再重新f_mount()挂载一次,就能正常读取,code贴在下一层(发帖不能直接添加代码文字。求解为啥)

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
正点原子
1楼-- · 2019-07-21 02:48
神奇的蛋蛋 发表于 2016-4-27 17:38
在底层diskio_read()中调用SD_Read()的地方加入如下code就行了。。。。虽然调通了,可是不知道原因,求助 ...

你用了DMA,这里是等待DMA传输完成,否则你在DMA传输的时候,开启下一次数据传输,是会出问题的。
神奇的蛋蛋
2楼-- · 2019-07-21 04:44
 精彩回答 2  元偷偷看……
神奇的蛋蛋
3楼-- · 2019-07-21 05:40
在底层diskio_read()中调用SD_Read()的地方加入如下code就行了。。。。虽然调通了,可是不知道原因,求助各位
[mw_shl_code=c,true]        SD_WaitReadOperation();          /* Wait until end of DMA transfer */
        while(SD_GetStatus() != SD_TRANSFER_OK);                [/mw_shl_code]

一周热门 更多>