从您的描述来看,您在使用 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. 重新编译工程,检查是否仍然存在问题。如果问题解决,那么您可以继续使用修改后的工程进行开发。
从您的描述来看,您在使用 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. 重新编译工程,检查是否仍然存在问题。如果问题解决,那么您可以继续使用修改后的工程进行开发。
举报