找到DSP库路径
C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.25.2\Drivers\CMSIS\DSP\Source
移植
将上述路径下的Include文件夹中的三个文件添加到STM32CubeIDE工程目录下的Core->inc文件夹下,如图:
添加相应的DSP库源文件
如该例程中我们需要使用FFT,因此,将FFT的文件夹“TransformFunctions”放入工程目录下Core->src文件夹下,如图:
添加全局宏定义
编译问题
到此,可以编译我们的工程文件,会出现以下错误:
这是提示我们在编译代码的时候发现“__FPU_PRESENT”这个宏定义未定义,但是实际上,这个宏在“stm32f407xx.h”(我使用的是STM32F407)中已经定义了,如果这个时候像上一步一样添加一个全局变量后该问题确实可以解决,但是会出现重复定义的错误。
该问题产生的原因在于,由于“core_cm4.h”中使用了“__FPU_PRESENT”这个宏,但是在编译之前没有先编译“stm32f407xx.h”导致。而“core_cm4.h”不仅仅在“stm32f407xx.h”中定义了,还在所有调用“arm_math.h”中调用,因此在调用“arm_math.h”时会出现问题。
既然知道问题所在,解决起来也很简单了,只需要在调用“arm_math.h”之前,先包含“stm32f407xx.h”文件即可,搜索整个工程目录看到“arm_math.h”被多次调用,因此为了简便,我们在“arm_math.h”中添加“stm32f407xx.h”头文件,问题得到解决。
好啦,大功告成啦!