Author:Aiano_czm
一、 使用STM32CubeMX生成项目
如何使用Clion开发STM32参考这篇文章:《配置CLion用于STM32开发》 ,在上面这篇文章的基础上进行修改。
1. Software Packs -> Select Components

2. Filter

3. 下拉 DSP Library

4. 右侧 DSP Library 打勾

5. Ok
6. 回到主界面,打勾DSP Library

7. GENERATE CODE
二、CLion 配置
1. 打开`CMakeLists_template.txt`
2. 取消部分代码,启动硬件浮点数功能
#以下是取消注释后的效果
#Uncomment for hardware floating point
add_compile_definitions(ARM_MATH_CM4;ARM_MATH_MATRIX_CHECK;ARM_MATH_ROUNDING)
add_compile_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16)
add_link_options(-mfloat-abi=hard -mfpu=fpv4-sp-d16) 3. 链接ARM DSP库
# 下面这句是默认生成的,代表创建可执行文件
add_executable($${PROJECT_NAME}.elf $${SOURCES} $${LINKER_SCRIPT})
# 在其后面添加下面这句,代表把ARM DSP库链接到上面的可执行文件
target_link_libraries(${PROJECT_NAME}.elf ${CMAKE_SOURCE_DIR}/Middlewares/ST/ARM/DSP/Lib/libarm_cortexM4lf_math.a) 4. 重新打开STM32CubeMX,点击GENERATE CODE,你会发现`CMakeList.txt`文件中出现了刚刚编辑的内容,因为刚刚编辑的是模板文件,`CMakeList.txt`是从模板文件生成的
5. 重新加载CMake项目,下图代表一切正确配置

三、添加测试代码
1. 打开`main.c`文件
2. 引用头文件
/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "arm_math.h"
/* USER CODE END Includes */ 3. 添加测试函数
/* USER CODE BEGIN WHILE */
while (1) {
static float result;
result = arm_sin_f32(PI / 6.0);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */ 4. 在result那句前添加断点

5. Debug

6. 当代码运行到result那句时,点击步过


7. 可以看到现在已经显示result结果了

也可以在下面的Debugger里看到

结语
恭喜添加DSP库成功!!
这个过程中最关键的一点是要添加对ARM DSP库的引用。