【STM32开发笔记】使用HAL库在STM32F4上集成DSP库

简介:

本文分两种方法添加DSP库:1.CubeMX直接配置ioc添加; 2.KEIL内添加;

一、MX直接配置DSP库

简述:补齐全部lib库->添加DSP包->使能DSP勾选->添加头文件及魔术棒配置->测试
1.补齐lib库。( 如果使用直接默认添加的库,是不支持FPU的,所以需要补齐后找到所需的lib文件进行替换,在MX的工程管理栏,选择复制所有库)。

此处添加的DSP文件夹位置:Project...\Drivers\CMSIS\DSP


生成工程后,带FPU的lib文件位置\Drivers\CMSIS\Lib\ARM,注意所圈文件的位置,后面需手动添加到工程

2.添加DSP芯片包。


3.使能DSP,生成代码。(此处勾选后共会有两份dsp文件夹,第一份是现在在这个包管理添加的,第二份是在之前补齐dsp全部库时添加的,相当于二选一,而mx会在keil的路径管理中自动添加第一份dps的头文件路径)。

此处添加的DSP文件夹位置:Project...\Middlewares\ST\ARM\DSP

注意:
通过MX勾选方式添加,无需额外添加DSP的头文件路径(包括后面替换lib文件,直接在左侧工程窗口删除添加即可),不然会莫名报错(某明*发现的)


4.添加头文件及其魔术棒配置

#include "arm_math.h"


开启FPU,以及DSP库基本宏定义:

,__FPU_PRESENT=1,__TARGET_FPU_VFP,ARM_MATH_CM4,__CC_ARM
--diag_suppress=2803,1,1035


记得勾选Microlib,否则调用DSP库内函数一直返回0(原因不详)
然后将此处的lib切换成带FPU的lib文件(1.中提及)

5.测试

test= arm_sin_f32(3.1415926/6);

参考博客:

> https://blog.csdn.net/qq_34022877/article/details/117855263

二、KEIL内添加

(在网上诸多教程,发现实际情况与教程中的keil目录路径出入较大,难以复现,我也不明确这个方法对不对,但确实函数计算结果正常,麻烦大佬指正。)
本部分内容分为两块:1.创建自己的DSP文件夹;2.添加进工程。

1.创建自己的DSP文件夹。

Ⅰ.KEIL自带完整的源DSP库,存放于安装目录下,但stm32只需要用到部分文件即可,先建一个自己的DSP文件夹。(需添加如下两个文件)。
请添加图片描述

Ⅱ.进入KEIL安装目录,"\Keil_v5\ARM\Pack\ARM\CMSIS\4.2.0\CMSIS"中。请添加图片描述请添加图片描述

Ⅲ.将CMSIS\Include文件夹、CMSIS\Lib\ARM\arm_cortexM4lf_math.lib,复制到刚建的MDSP中。(一定是复制,别用拖拽,比如我写到一半再去复现发现inlcude文件夹消失)。请添加图片描述
请添加图片描述
至此,DSP文件夹创建完成。

2.添加进工程。

Ⅰ.将MDSP文件夹放入你的工程,并添加其中include文件夹路径请添加图片描述
Ⅱ.基本配置

添加宏定义、

,__FPU_PRESENT=1,__TARGET_FPU_VFP,ARM_MATH_CM4,__CC_ARM

微LIB库请添加图片描述
工程管理窗口添加lib文件请添加图片描述

Ⅲ.测试
引用头文件

#include "arm_math.h"

测试代码

test= arm_sin_f32(3.1415926/6)+1;

请添加图片描述

Debug结果请添加图片描述
参考博客:https://blog.csdn.net/physicsexpert/article/details/125836181

如有错误,劳请指正!

物联沃分享整理
物联沃-IOTWORD物联网 » 【STM32开发笔记】使用HAL库在STM32F4上集成DSP库

发表评论