来自系统工作台的 stm32 fatfs 库,用于 stm32

Posted

技术标签:

【中文标题】来自系统工作台的 stm32 fatfs 库,用于 stm32【英文标题】:stm32 fatfs library from system workbench for stm32 【发布时间】:2018-05-16 11:06:08 【问题描述】:

STM32 有问题。我使用 System Workbench For STM32 并包括我的项目 Hal 和 FatFs(当我创建项目时我选择它)。但是创建项目后出现错误:

说明资源路径位置类型“PPP_OK”未声明(首次使用 在这个 函数) ppp_diskio_template.c /Hal_sd/Middlewares/Third_Party/FatFs/src/drivers 行 98 C/C++问题

我该如何构建它?我想用 FatFs 做一个示例项目,但我无法构建空的 main.c

【问题讨论】:

你是用Cube生成项目的吗?您为 FAT FS 选择了哪个目的地? 【参考方案1】:

第一种解决方案:如果您使用的是STM32CubeMX或STM32CubeIDE,您应该在Pinout & Configuration > Categories > Middlewares > FATFS下启用FatFS。 CubeMX 处理其余的,你应该没问题。确保您使用的是最新版本。

第二个解决方案:如果您手动添加 FatFS 文件,请确保将所有 .h 文件添加到包含路径中,如果您的 IDE 是 Eclipse 或 STM32CubeIDE,则位于 Properties > C/C++ General > Paths and Symbols > Includes 中。

第三种解决方案: 另一种可能性是,如果您尝试手动 fork 示例,大多数情况下都会发生这种情况。使用相应文件夹窗口右上角的搜索框在 Windows 资源管理器中的文件夹中搜索未找到的变量,在您的情况下为 PPP_OK。然后找到声明它的变量。这通常是一个.c 文件,如果是这样,请确保将其添加到您的项目中,同时找到同名的.h 文件并将其位置添加到您的包含路径中,如第二个解决方案中所述。

【讨论】:

【参考方案2】:

我看到你提到了ppp_diskio_template.c

FatFs 只是一种在存储上组织数据并通过“文件抽象”访问它们的方法。 FatFs 向您显示“文件”,但最后它只是存储在存储中的字节。

diskio 模板是一个文件,其中包含您需要定义的一些函数,以便 FatF 可以读取/写入存储。基本上,当您提供文件时,FatFS 将使用这些函数将数据“作为字节”存储。

PPP_OK 未定义这一事实意味着ppp_diskio_template.hppp_diskio.h 可能不可用,不在正确的位置或未包含在您的项目文件中。

你基本上可以在所有.h中搜索到你必须看到你需要包含哪一个。

【讨论】:

【参考方案3】:

我不认为头文件已添加到您的项目中。

【讨论】:

以上是关于来自系统工作台的 stm32 fatfs 库,用于 stm32的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 STM32F407 上的 Chan FatFs 库通过 SPI 写入 SD 卡文件

STM32的FATFS文件系统 无法建立文件 res返回值不为0,到底是怎么回事

stm32 fatfs 文件系统分析和代码解析

STM32之独立版USB(Host)驱动+MSC+Fatfs移植

STM32- 串行FLASH文件系统FatFs

STM32CubeMX学习笔记(27)——FatFs文件系统使用(操作SD卡)