【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

如有错误,劳请指正!

  • 9
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
STM32添加DSP的步骤如下: 1. 打开STM32CubeMX,并创建一个新的工程。 2. 在工程中添加以下宏定义:ARM_MATH_CM3(对于F1系列是M3,F4系列是M4,H7系列是M7)\[3\]。 3. 在代码中添加头文件#include "arm_math.h",以便可以调用DSP中的函数\[3\]。 4. 在工程中配置所需的DSP函数,例如常用数学运算、复数、矩阵、三角函数、插值、求最大值和最小值、fir滤波器和FFT等\[2\]。 5. 编译和下载代码到STM32芯片中,即可使用DSP中的函数进行相关的数学运算和信号处理。 请注意,具体的步骤可能会因为使用的STM32系列和开发环境的不同而有所差异。因此,在实际操作中,建议参考相关的官方文档和开发环境的指南来添加和配置DSP。 #### 引用[.reference_title] - *1* [STM32 DSP的使用方法](https://blog.csdn.net/u010058695/article/details/112665306)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [STM32CubeMX关于添加DSP的使用](https://blog.csdn.net/WandZ123/article/details/125593908)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值