uwyciw100 发表于 2017-10-13 10:35:08

发现stm32cubef7库关于fatfs的一个问题

当前使用nucleo_f767的板做SDIO+FATFS的开发,发现使用cube生成的工程存在一个问题。

cube版本——V4.22.1
stm32cubef7版本——V1.8.0

问题:生成的工程中有两个“sd_diskio.c”文件,分别位于“工程/src”和“工程/middlewares/third_party/fatfs/src/drivers”中。其中“工程/src”下的“sd_diskio.c”中的函数缺少对sdio的初始化操作,且工程恰恰使用了这个文件。所以导致后面的操作无法正常进行。当修改工程,使用“工程/middlewares/third_party/fatfs/src/drivers”下的的“sd_diskio.c”,则一切正常。

分享:附件是自己做的一个TF卡的小板,可以直接插到nucleo_f767板上。


uwyciw100 发表于 2017-12-8 11:29:31

matchacorn 发表于 2017-12-7 16:28
你好,我也碰到了这个问题,我的cube版本是V4.23.0 stm32cubef7 版本是V1.8.0
然而并没有在“工程/middlewa ...

现在用这两文件的工程,发现SDIO使用DMA,若是4线,则无法正常工作,如果是1线,则能正常工作。你可以试试,如果4线能正常操作,麻烦通知一下,谢谢。

斜阳__ 发表于 2017-10-13 10:59:43

谢谢分享。楼主可以试着给ST报bug

zero99 发表于 2017-10-14 00:31:24

BUG请报:mcu.china@st.com

matchacorn 发表于 2017-12-7 16:28:18

你好,我也碰到了这个问题,我的cube版本是V4.23.0 stm32cubef7 版本是V1.8.0
然而并没有在“工程/middlewares/third_party/fatfs/src/drivers”下找到“sd_diskio.c”,
请问能不能分享一下正确的sd_diskio.c参考一下呢?谢谢!

matchacorn 发表于 2017-12-12 16:59:33

我把对应的sd_diskio.c和sd_diskio.h替换成你提供的之后就可以正常运行了
SDIO配置的是4线的 使用了DMA模式

uwyciw100 发表于 2017-12-13 08:38:04

matchacorn 发表于 2017-12-12 16:59
我把对应的sd_diskio.c和sd_diskio.h替换成你提供的之后就可以正常运行了
SDIO配置的是4线的 使用了DMA模式 ...

了解,我再试试我的工程,看哪出问题了。

liuer2004_82 发表于 2018-6-4 12:27:05

目前也正在看这个问题。

小几分 发表于 2018-8-10 16:57:58

同问,直接用cube生成的四线DMA方式来做会卡在disk_write(),如果用单线DMA模式没有问题,可以直接用,另外F7包里的F767的SD例程uSD也是直接用单线,,,,emmmm 难受
页: [1]
查看完整版本: 发现stm32cubef7库关于fatfs的一个问题