如何在STM32项目上集成DSP库?使用STM32F429的示例

此常见问题解答涉及DSP库,如何将它们集成到STM32CubeIDE项目中并基于数字信号处理
 

完成本教程后,您将了解更多关于STM32产品的DSP库,以及使用STM32CubeIDE工具链添加、配置和操作这些库。
 

1.安装所需的工具并生成项目:

首先,安装所需的工具,STM32CubeIDE、STM32CubeMX和STM32CubeProgramer。请按照STM32StepByStepTutorial:Step1工具安装中介绍的步骤进行操作。
 

下一步是启动项目,如果您有现成的项目,请直接转到2第二次部分 包括DSP库和头文件。

否则,要创建STM32CubeIDE项目,可以参考UM2609的2.2节。
 

       注:

  • 本教程中使用的版本包括,1.5.1适用于STM32管 6.1.1用于STM32CubeMX 请确保始终升级您正在使用的工具的版本。
  • 本教程中使用的板是STM32F429发现。
 
  • 启动项目后,您将在工作区中找到它以及生成的.ioc文件。
  • 您可以选择不同的引脚和/或时钟在STM32CubeIDE中进行配置,而无需启动STM32CubeMX。
  • 完成设置后,只需保存文件即可。
  • 出现一个弹出窗口,要求生成项目,此时只需单击“是”,更新将直接在代码项目上进行。

2.包括DSP库和头文件

以下是将DSP驱动程序复制到项目中所需遵循的步骤:
  1. 在项目工作区支持DSP

  • 在生成的项目中,在下创建一个文件夹..\驱动程序\CSIS命名的数字信号处理器

  • 复制<STM32Cube_Positionory>\STM32Cube_FW_F4_V.X.XX.X\Drivers\CMSIS\DDSP\Include并粘贴到创建的文件夹中

  • 复制<STM32Cube_Positionory>\STM32Cube_FW_F4_V.X.XX.X\Drivers\CMSIS\Lib然后把它贴在下面..\驱动程序\CSIS

复制并刷新项目后,添加的文件夹会自动显示在STM32CubeIDE工作空间中:

二、。包含路径

本部分的目的是描述支持新头文件所需遵循的步骤:

  • S从中选择项目 工程资源管理器部分

  • 从…起项目菜单  “文件”菜单转到 项目属性>C/C++构建>

设置>工具设置>MCU GCC编译器>包含路径。

  • 单击“添加“以包括新路径。

  • 添加 ../驱动程序/CMSIS/DSP/包括 路径

         iii。更新库

本部分的目的是描述如何更新项目中的库。
第一步是在项目设置中添加库的路径:
 

  • 从中选择项目 工程资源管理器部分然后从…起项目菜单  “文件”菜单转到 属性>C/C++构建>设置>工具设置>MCU CGC链接器>库>库搜索路径>添加

  • 选择GCC库出现在工作空间路径中:../驱动程序/CMSI/Lib/GCC

  • 现在,要添加要使用的特定库,请从 工程资源管理器 部分

  • 从…起项目菜单  “文件”菜单转到属性>C/C++构建>设置>工具设置>MCU CGC链接器>库>库(-l)>添加 并插入以下库:“arm_cortexM4lf_math”。

警告:

  • 请确保在路径中使用的是“/”,而不是“\”。

  • 请不要使用“:libarmcortexM4lf_math.a”。不建议使用此用法,因为在某些使用情况下可能会导致副作用。

最后一步是添加手臂最大长度4”符号,如下图所示:

 注:
请不要忘记,这一步取决于您使用的核心。


现在,在包含所需的头文件后,您可以在项目中使用DSP库,下面的示例是“手臂最大高度h“并声明使用的变量:
 

/*用户代码开始PV*/
float32_t FFT_Input_Q15_f[50];
float32_t aFFT_Input_Q15[50];
/*用户代码端PV*/
/*用户代码开始PD*/
#定义FFT_长度1024
/*用户代码端PD*/

让我们以使用“arm_float_to_q15”函数为例:
/*用户代码开始1*/arm_float_to_q15((float32_t*)&FFT_Input_q15_f[0],(q15_t*)&aFFT_Input_615[0],FFT_Length*2);/*用户代码端1*/

警告:

  • 请注意,前面函数的使用只是一种指南形式。

最后,您还可以下载基于STM32Cube HAL驱动程序的示例,使用STM32进行数字信号处理,为STM32Cub进行软件扩展。您可以将此示例作为DSP的完整使用案例。