我对STM32有个问题。我为STM32使用,并包含了我的项目Hal和FatFs (当我创建一个项目时,我会选择它)。但是在创建一个项目之后有错误:
描述资源路径定位类型'PPP_OK‘未声明(在此函数中首次使用) ppp_diskio_template.c ppp_diskio_template.c行98 C/C++问题
我该怎么做呢?我想用FatFs做一个示例项目,但是我不能构建空的main.c。
发布于 2021-01-26 09:36:27
我看到你提到了ppp_diskio_template.c。
FatFs只是一种在存储中组织数据并通过“文件抽象”访问数据的方法。FatFs向您显示“文件”,但在结束时,它只是存储在存储中的字节。
diskio模板是一个包含您需要定义的函数的文件,以便FatFs可以读写存储。基本上,当您提供一个文件时,FatFS将使用这些函数将数据“存储为字节”。
没有定义PPP_OK这一事实意味着ppp_diskio_template.h或ppp_diskio.h可能是不可用的,不在正确的位置,或者没有包含在项目的文件中。
基本上,您可以在所有的.h中搜索它,以查看需要包含哪一个。
发布于 2021-11-11 08:55:46
第一解决方案:,如果您正在使用STM32CubeMX或STM32CubeIDE,您应该在Pinout & Configuration > Categories > Middlewares > FATFS下启用FatFS。CubeMX处理其余部分,您应该会没事的。确保您使用的是最新版本。
第二个解决方案:如果手动添加FatFS文件,请确保将所有.h文件添加到包含路径中,如果您的IDE是Eclipse或STM32CubeIDE,则路径位于Properties > C/C++ General > Paths and Symbols > Includes中。
第三种解决方案:另一种可能是,如果您试图手动分叉一个示例,这种情况在大多数情况下都会发生。使用相应文件夹窗口右上角的搜索框搜索Windows中的文件夹,以查找未找到的变量,在您的示例中是PPP_OK。然后找到它声明的变量。这通常是一个.c文件,如果是这样的话,请确保将它添加到您的项目中,也要找到相同的名为.h文件,并按照第二个解决方案中描述的那样将其位置添加到包含路径。
发布于 2018-01-09 06:01:22
我认为头文件没有添加到您的项目中。
https://stackoverflow.com/questions/47608698
复制相似问题