1

很多网站都介绍过,如果我们想激活STM32板子的FFT/FPU,那么我们必须激活:

__FPU_USED=1; __FPU_PRESENT=1; ARM_MATH_CMx。

我没有在 MCU GCC 编译器的预处理器(100% 工作)中输入这些词,而是尝试在我的 main.h 文件中添加这 3 行:

#define __FPU_USED=1

#define __FPU_PRESENT=1

#define ARM_MATH_CMx

但是,如果是这样,它不起作用。IDE会反馈很多问题,例如:

“错误:未知类型名称‘uint32_t’;你的意思是‘uint32_t’吗?” 在 DSP 文件中。

我了解诸如“DSP 文件现在未连接到我的主文件”之类的问题。

这是我的问题:

如果我坚持在我的文件系统中声明/定义这 3 行,而不是在我的 STM32CubeIDE 的预处理器中,我该怎么办?提前谢谢了。

4

2 回答 2

1

If I insist to declare/define these 3 lines in my file system, not in the Preprocessor of my STM32CubeIDE, what should I do?

To achieve the same affect as defining the macros using your compiler command line options, you should define them on the first lines of all C and assembly source files that are used in compilation.

Why the FFT function can only be activated through the Preprocessor of MCU GCC Compiler (STM32CubeIDE)?

The question lost it's sense, because as stated above, there is another (very unpractical) way.

于 2020-03-05T14:56:00.177 回答
1

这些宏由 system_stm32xxxx.c 文件使用,它检查是否启用数学协处理器。问题是这个文件(xxxx取决于你的 uC 模型)不包括main.h.

您可以编辑它添加#include "main.h"行。然后你可以这样设置

于 2020-03-05T16:39:04.063 回答