STM32中DSP库简单理解和使用 |
您所在的位置:网站首页 › 数学中最大值和最小值用什么符号表示 › STM32中DSP库简单理解和使用 |
STM32中DSP库简单理解和使用
主要参考arm_math.h中的内容编写,以STM32F091为例 文章目录 STM32中DSP库简单理解和使用一、什么是DSP二、大概使用步骤选择合适lib引用库添加预置宏 二、具体使用步骤(基于cubmx)1.使用STM32CubeMX生成Keil5工程2.选择合适lib和添加2.添加宏定义3.在相应c文件中引用 arm_math.h就可以使用了测试 一、什么是DSP数字信号处理(DigitalSignal Processing,简称 DSP ) 是一门涉及许多学科而又广泛应用于许多领 域的新兴学科,通过利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、 压缩、识别等处理,以得到符合人们需要的信号形式。 STM32中添加DSP库主要用于数据的计算和处理,如复数,矩阵,三角函数,插值、求最大值求最小值、fir滤波器和 FFT等。 以下为arm_math.h对于DSP的简介 本用户手册描述了CMSIS DSP软件库, *一套通用信号处理函数,可用于基于Cortex-M处理器的设备。 *库被划分为许多函数,每个函数覆盖一个特定的类别: -基本的数学函数 -快速的数学函数 -复杂的数学函数 -过滤器 -矩阵函数 -变形 -电机控制功能 -统计函数 -支持函数 -插值函数 *该库有独立的函数用于操作8位整数、16位整数、32位整数和32位浮点值。 二、大概使用步骤 选择合适lib首先要搞清楚所使用单片机的端绪是小端还是大端,可以查手册得知是大端还是小端。如STMF091是小端(Little Endian)模式。 *库安装程序在Lib文件夹中包含库的预构建版本。 arm_cortexM7lfdp_math.lib(Cortex-M7,小端序,双精度浮点单元) arm_cortexM7bfdp_math.lib(Cortex-M7,大端序,双精度浮点单元) arm_cortexM7lfsp_math.lib (Cortex-M7,小端序,单精度浮点单元) arm_cortexM7bfsp_math.lib(Cortex-M7,大端序和单精度浮点) arm_cortexM7l_math.lib (Cortex-M7,小端序) arm_cortexM7b_math.lib (Cortex-M7,大端序) arm_cortexM4lf_math.lib (Cortex-M4,小端序,浮点单元) arm_cortexM4bf_math.lib(Cortex-M4,大端序,浮点单元) arm_cortexM4l_math.lib (Cortex-M4,小端序) arm_cortexM4b_math.lib (Cortex-M4,大端序) arm_cortexM3l_math.lib (Cortex-M3,小端序) arm_cortexM3b_math.lib (Cortex-M3,大端序) arm_cortexM0l_math.lib (Cortex-M0 / Cortex-M0+,小端序) arm_cortexM0b_math.lib (Cortex-M0 / Cortex-M0+,大端序) arm_ARMv8MBLl_math.lib (Armv8-M基线,小端序) arm_ARMv8MMLl_math.lib (Armv8-M主线,小端序) arm_ARMv8MMLlfsp_math.lib(Armv8-M主线,小端序,单精度浮点单元) arm_ARMv8MMLld_math.lib (Armv8-M主线,小端序,DSP指令) arm_ARMv8MMLldfsp_math.lib Armv8-M主线,小端序,DSP指令,单精度浮点单元 引用库*库函数声明在公共文件arm_math.h中,该文件位于Include文件夹中。 *只需包含此文件并在应用程序中链接适当的库,然后开始调用库函数。该库支持single *对于具有小端序和大端序的Cortex-M内核,公共头文件 arm_math.h。浮点单元(FPU)变体将使用相同的头文件。 添加预置宏不同的芯片要添加的预置宏不尽相同,其与处理器型号有关,同样以STM32F091为例,查手册可知,其为Cortex-M0类型 *定义适当的预处理器宏ARM_MATH_CM7或ARM_MATH_CM4或ARM_MATH_CM3或ARM_MATH_CM0或ARM_MATH_CM0plus取决于应用程序中的目标处理器。 *对于Armv8-M内核,定义预处理器宏ARM_MATH_ARMV8MBL或 ARM_MATH_ARMV8MML。 *如果Armv8-M主线内核支持DSP指令,则设置预处理器宏__DSP_PRESENT。 二、具体使用步骤(基于cubmx) 1.使用STM32CubeMX生成Keil5工程特别注意:点击Project Manager打开工程设置窗口,点击Code Generator选项卡,在STM32Cube Firmware Library Package中选择Copy all used libraries into the project folder。(这样才会在生成的文件中添加DSP库) 打开keil,双击Drivers/CMSIS,选第三个,添加已经存在的文件 点击魔法棒,C/C++选项,添加宏定义,因为f091为Cortex-M0类型,所以添加ARM_MATH_CM0宏定义(注意:宏定义间的符号为英文逗号) 官方有关于HAL库的DSP库例程,大概在此路径下D:\stm3232\STM32Cube_FW_F0_V1.11.4\Drivers\CMSIS\DSP\Examples,同时在工程文件下.Drivers\CMSIS\DSP\Examples也可以看到例程 如果找不到的话,再次推荐一个超超超超超超超超级好用的搜文件软件 everything(点击即可跳转至官方网站,可以挑选适合自己设备的版本下载) 测试 /* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "arm_math.h" /* USER CODE END Includes */ /* Private define ------------------------------------------------------------*/ /* USER CODE BEGIN PD */ float data; /* USER CODE END PD */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { data = arm_cos_f32(PI/3) ; /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ } /* USER CODE END 3 */理论结果为0.5,结果合理,大功告成!!!!!! |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |