首页 > 其他分享 >STM32 DSP库的添加

STM32 DSP库的添加

时间:2023-04-24 21:34:36浏览次数:45  
标签:__ FPU 工程 CMSIS DSP STM32 添加

DSP库的添加

软件环境:STM32CubeMX、Keil5
硬件环境:STM32F407

1.使用STM32CubeMX生成Keil5工程

注意:点击Project -> Settings打开工程设置窗口,点击Code Generator选项卡,在STM32Cube Firmware Library Package中选择Copy all used libraries into the project folder。

2.打开并配置Keil 5工程

(1)打开keil 5工程
(2)添加DSP库到工程中
若使用的是STM32CubeMX生成的工程,DSP库文件就在工程目录中,位于.\Drivers\CMSIS\Lib\ARM,里面有4个文件:

注:‘b’表示大端格式(Big Endian),‘l’表示小端格式(Little Endian),‘f’表示带浮点数。
我们目前使用的硬件平台是STM32F407系列,它带有FPU,同时使用的是小端格式,因此使用arm_cortexM4lf_math.lib,将它添加到工程中(可添加到Drivers/CMSIS文件夹下)。

(3)点击 Project -> Options for Target,打开工程选项界面,点击Target选项卡,在Code Generation区域的Floating Point Hardware中选择Single Precision(单精度)。

点击C/C++选项卡,在Preprocessor Symbols区域的Define中添加如下内容:
ARM_MATH_CM4,__TARGET_FPU_VFP,__FPU_PRESENT=1

ARM_MATH_CM4表示在CM4中使用MATH库
__TARGET_FPU_VFP表示在目标设备中使用FPU
__FPU_PRESENT=1表示开启FPU,这个宏其实在stm32f407xx.h中有定义时,但是它并没有在core_cm4.h中起作用,在编译的时候会报错,应该是跟文件的编译顺序有关系,因此为了正常编译,在这里添加它(若编译后报incompatible redefinition的警告, 则FPU_PRESENT=1这句话可以略去不加)
在C/C++选项卡中,的Include Paths中添加DSP库的路径:\Drivers\CMSIS\DSP\Include


(4)使用DSP库
在相应的.c文件中添加头文件:arm_math.h、arm_const_structs.h即可使用。
注:在官方的HAL库中有DSP库相关的使用例程,位于
C:\Users\Administrator\STM32Cube\Repository\STM32Cube_FW_F4_V1.21.0\Drivers\CMSIS\DSP_Lib\Examples(这个是我的目录)

标签:__,FPU,工程,CMSIS,DSP,STM32,添加
From: https://www.cnblogs.com/Godsheep/p/17350977.html

相关文章

  • 将集合中的某一条数据添加到首位或者最后一位
    直接上代码publicstaticvoidmain(String[]args){List<Customer>addressList=newArrayList<>();Customerc1=newCustomer();c1.setId("1");c1.setName("ckf");addressList.add(c1);......
  • kubectl 命令 --save-config 将部署信息添加到注解,防止deploy或webhook通过注释添加
    1、--save-config为什么需要使用kubctlapply保存配置?kubectl apply<file.yaml>--save-config创建或更新部署,并将部署另存为元数据。文件上说--save-config[=false]:如果为true,则当前对象的配置将保存在其注释中。当您将来要对此对象执行kubectlapply时,这非常有用。为什么......
  • STM32HAL库常用指令速查手册
    STM32HAL库常用指令速查手册持续更新中GPIOHAL_GPIO_InitvoidHAL_GPIO_Init(GPIO_TypeDef*GPIOx,GPIO_InitTypeDef*GPIO_Init);//功能:GPIO初始化HAL_GPIO_DeInitvoidHAL_GPIO_DeInit(GPIO_TypeDef*GPIOx,uint32_tGPIO_Pin);//功能:在函数初始化之后的引脚恢......
  • 添加水印
    创建JS文件watermark.jsletwatermark={}letsetWatermark=(arr)=>{letid='1.23452384164.123412416';if(document.getElementById(id)!==null){document.body.removeChild(document.getElementById(id));}//创建一个画布......
  • PowerDesigner 12小技巧-pd修改外键命名规则-pd添加外键
    PowerDesigner12小技巧-pd小技巧-pd工具栏不见了-pd修改外键命名规则-pd添加外键1.附加:工具栏不见了调色板(Palette)快捷工具栏不见了PowerDesigner 快捷工具栏palette不见了,怎么重新打开,找回来呢上网搜索了一下”powerdesigner图形工具栏”,找到了找回PowerDesigner工具......
  • docker部署gitlab CI/CD (二)终篇:部署gitlab runner和添加gitlab-ci.yml文件 终极踩坑版
    网上教程很多,但断断续续,先不说大部分都是只截取片段,让人云里雾里,不会的看不懂,懂的不需要看,根据步骤跑不起来不说,改了一堆,完全不解释为什么,也分不清是官方要求还是作者自己夹带的私货。痛定思痛,抛弃任何教程,根据报错实时改进,于2023年4月24日完成此篇。官方文档:https://docs.g......
  • scn增量备份恢复dataguard从库(出现gap后主库有添加新的数据文件)
    环境:OS:Centos7DB:19.3.0.0 1.正常同步情况下的scn主从是一致的主库查询:SQL>selectSEQUENCE#,FIRST_CHANGE#,NEXT_CHANGE#,APPLIED,STATUSfromv$archived_logtwherename='tnsslavea';SEQUENCE#FIRST_CHANGE#NEXT_CHANGE#APPLIEDSTATUS-----------------......
  • Windows添加软件开机自启动
    两种方式1.添加快捷方式到开始菜单打开我的电脑找到C:\ProgramData\Microsoft\Windows\StartMenu\Programs\Startup文件夹,如果难找的话可以通过Win+R输入shell:startup然后回车,同样也可以进入这个文件夹将需要自启动的软件快捷方式放入这个文件夹就能达到开机自启的效果......
  • iptable添加对指定IP放行指定端口策略规则
    添加到最后iptables-AINPUT-s192.168.3.19-ptcp--dport9235-jACCEPTiptables-AOUTPUT-d192.168.3.19-ptcp--sport9235-jACCEPT添加到指定行iptables-IINPUT10-s192.168.3.19-ptcp--dport9235-jACCEPTiptables-IOUTPUT10-d192.168.3.19......
  • 给echarts添加点击事件
    1、在echarts内写上myChart.off('click')//防止多次触发,在给ehcart绑定事件时,要先写上此代码。myChart.on('click',(params)=>{   console.log(params) }) ......