简介:
本文分两种方法添加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;
文章来源:https://www.toymoban.com/news/detail-601232.html
Debug结果
参考博客:https://blog.csdn.net/physicsexpert/article/details/125836181文章来源地址https://www.toymoban.com/news/detail-601232.html
如有错误,劳请指正!
到了这里,关于【stm32开发笔记】基于HAL库的STM32F4添加DSP库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!