STM32
直播中

李晓鹏

7年用户 1296经验值
私信 关注
[问答]

使用nucleo_f767板做SDIO+FATFS的开发,cube生成的工程遇到的疑问求解

当前使用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板上。



回帖(1)

carey123

2024-4-26 17:35:30
从您的描述来看,您在使用 STM32CubeMX(版本 V4.22.1)和 STM32CubeF7(版本 V1.8.0)进行 SDIO+FATFS 开发时遇到了一个问题。具体问题是生成的工程中存在两个 "sd_diskio.c" 文件,分别位于 "工程/src" 和 "工程/middlewares/third_party/fatfs/src/drivers" 中。其中 "工程/src" 下的 "sd_diskio.c" 文件中的函数缺少对 SDIO 的初始化操作,而工程恰恰使用了这个文件,导致后续操作无法正常进行。

为了解决这个问题,您可以尝试以下步骤:

1. 首先,确保您的 STM32CubeMX 和 STM32CubeF7 的版本是最新的,因为可能在新版本中已经修复了这个问题。如果不是最新版本,请更新到最新版本并重新生成工程。

2. 如果问题仍然存在,您可以尝试手动修改工程,使用 "工程/middlewares/third_party/fatfs/src/drivers" 下的 "sd_diskio.c" 文件。具体操作如下:

   a. 在工程中找到 "工程/src" 下的 "sd_diskio.c" 文件,将其删除或重命名,以避免与正确的 "sd_diskio.c" 文件冲突。

   b. 将 "工程/middlewares/third_party/fatfs/src/drivers" 下的 "sd_diskio.c" 文件复制到 "工程/src" 目录下。

   c. 在工程的包含路径设置中,确保 "工程/middlewares/third_party/fatfs/src/drivers" 路径被包含,以便编译器可以找到正确的 "sd_diskio.c" 文件。

3. 重新编译工程,检查是否仍然存在问题。如果问题解决,那么您可以继续使用修改后的工程进行开发。


举报

更多回帖

发帖
×
20
完善资料,
赚取积分