STM32CubeMX关于添加DSP库的使用

这篇具有很好参考价值的文章主要介绍了STM32CubeMX关于添加DSP库的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

人生如逆旅,我亦是行人。


一、介绍

STM32 系列基于专为要求高性能、低成本、低功耗的嵌入式应用专门设计的 ARM Cortex-M3 内核
DSP 应该是 TMS320 系列,TMS320 系列 DSP软件可编程器件,具有通用微处理器所具有的方便灵活的特点。其基本特点有:哈佛结构,流水线操作,专用的硬件乘法器,特殊的 DSP 指令,快速的指令周期。这些特点使得 TMS320 系列 DSP 可以实现快速的DSP运算,并使大部分运算能够在一个指令周期完成。

  • 哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
  • 流水线 (Pipeline)技术:是指程序在执行时候多条指令重叠进行操作的一种准并行处理实现技术。 通俗的讲将一个时序过程,分解成若干个子过程,每个过程都能有效的与其他子过程同时执行。 这种思想最初是在RISC的架构中出现的,旨在提高处理器处理效率,争取在一个时钟周期中完成一条指令。

数字信号处理(DigitalSignal Processing,简称 DSP 是一门涉及许多学科而又广泛应用于许多领 域的新兴学科,通过利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、 压缩、识别等处理,以得到符合人们需要的信号形式。


二、应用

DSP 库中包含常用数学运算,复数,矩阵,三角函数,插值、求最大值求最小值、还有重要的fir滤波器和 FFT,非常实用,其可以调用的函数十分之多。

使用DSP库

1.打开STM32CubMX,新建好一个工程

STM32CubeMX关于添加DSP库的使用

2.打开串口,方便打印信息

3.进行如下操作完成添加 DSP 库

STM32CubeMX关于添加DSP库的使用
STM32CubeMX关于添加DSP库的使用
STM32CubeMX关于添加DSP库的使用
STM32CubeMX关于添加DSP库的使用
STM32CubeMX关于添加DSP库的使用

完成上述步骤即完成 DSP 库的添加。

之后就可以生成代码了。


4. Keil 中宏定义的添加

STM32CubeMX关于添加DSP库的使用

  • 添加宏定义如下:
,ARM_MATH_CM3		//F1是M3,F4是M4,H7是M7

5.代码中添加头文件

/* USER CODE BEGIN Includes */
#include "arm_math.h"
/* USER CODE END Includes */

以上步骤已完成 DSP 库的添加。

下面进行调用一个 DSP 库的函数进行测试代码:


6.书写回调函数的代码,方便打印

/* USER CODE BEGIN 0 */
/**
  * 函数功能: 重定向c库函数printf到DEBUG_USARTx
  * 输入参数: 无
  * 返 回 值: 无
  * 说    明:无
  */
int fputc(int ch, FILE *f)
{
  HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
  return ch;
}
 
/**
  * 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx
  * 输入参数: 无
  * 返 回 值: 无
  * 说    明:无
  */
int fgetc(FILE *f)
{
  uint8_t ch = 0;
  HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
  return ch;
}
/* USER CODE END 0 */

7.测试

  /* USER CODE BEGIN 1 */
	float data;			//定义一个浮点型数据
  /* USER CODE END 1 */
  /* USER CODE BEGIN 2 */

	  data = arm_sin_f32(3.1415926/6);		//对sin(PI/6 = 30度)正弦值,求浮点值,理论上应为:1/2,0.5
	  
	  printf("正弦值为:%.2f",data);
	
  /* USER CODE END 2 */

8.结果打印

运行结果正确

STM32CubeMX关于添加DSP库的使用


通过 keil 添加

勾选添加 DSP 包

STM32CubeMX关于添加DSP库的使用

添加宏定义:

STM32CubeMX关于添加DSP库的使用文章来源地址https://www.toymoban.com/news/detail-401731.html

,ARM_MATH_CM7		//H7是CM7,F4是CM4,F1是CM3

添加头文件:

/* USER CODE BEGIN Includes */

#include "arm_math.h"

/* USER CODE END Includes */

到了这里,关于STM32CubeMX关于添加DSP库的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • STM32CubeMx移植DSP库 傅立叶变化(FFT)测试

    STM32CubeMx移植DSP库 傅立叶变化(FFT)测试

    本篇文章采用的是ST公司的STM32L496的DSP库进行FFT函数测试,将计算得到的数据通过串口工具打印出来,其他支持DSP库的型号也是类似做法。 STM32L496为超低功耗Cortex-M4内核的MCU,具有64个引脚,并且外设资源丰富(4个IIC硬件通信接口、5个串口通信接口、3个SPI通信接口、3个12位

    2023年04月08日
    浏览(11)
  • STM32F407添加DSP库

    STM32F407添加DSP库

    编译程序出现以下报错 出现 “error: #5: cannot open source input file “arm_const_structs.h”: No such file or directory” 错误的原因是编译器无法找到名为 “arm_const_structs.h” 的头文件。 头文件路径错误 头文件未安装或丢失 编译器配置问题 添加DSP库 添加DSP库可以参考这篇博客: STM32CubeMX关

    2024年02月05日
    浏览(13)
  • 【STM32 CubeMX】HAL库的本质读写寄存器

    【STM32 CubeMX】HAL库的本质读写寄存器

    在嵌入式系统开发中,HAL(Hardware Abstraction Layer)库是一个重要的概念,它提供了一个抽象层,使开发者可以更容易地编写可移植的代码,而不必担心底层硬件的细节。STM32CubeMX是一款由STMicroelectronics提供的工具,用于生成STM32微控制器的初始化代码,其中包括了HAL库的使用。

    2024年02月20日
    浏览(12)
  • STM32基于CubeMX与HAL库的I2C应用

    STM32基于CubeMX与HAL库的I2C应用

    1.1 物理层         I2C协议和摩托罗拉公司的SPI协议一样,是一种通讯协议。串行外围设备接口,是一种高速全双工的通信总线,是由 Phiilps 公司开发的。由于它引脚少,硬件实现简单,可扩展性强,不需要 USART、CAN 等通讯协议的外部收发设备,现在被广泛地使用在系统内

    2024年02月21日
    浏览(10)
  • Keil添加STM32的ARM-DSP库

    Keil添加STM32的ARM-DSP库

    1. 点开Keil安装路径,找到(D:Keil_v5)ARMPackARMCMSIS4.5.0CMSIS 2. 复制Include文件夹到自己工程目录下 3. 点开Lib文件夹再点开ARM文件夹,根据具体芯片选择lib库,复制到自己工程文件夹     作者使用的是STM32F407,选择arm_cortexM4lf_math.lib  4. 打开Keil,在project中添加arm_cortexM4l

    2024年02月12日
    浏览(7)
  • STM32F103 KEIL 标准库直接添加DSP库

    STM32F103 KEIL 标准库直接添加DSP库

    近期由于比赛需要,想要在STM32上移植DSP库进行FFT变换,找了很多资料都是利用CUBEMX进行导入的方法,本人使用的是标准库,对HAL库并不熟悉,所以考虑到移植的方便采用直接在项目文件中移植DSP库的方法,可以使用标准库编程,亲测有效 blog.csdnimg.cn/291099e0402f46439160e2cf9b92f

    2024年02月16日
    浏览(8)
  • 关于STM32CubeMX软件画面重影问题

    关于STM32CubeMX软件画面重影问题

    感谢广大网友解决了这个问题,我把评论区的链接放在这里。(如有侵权,请联系删除。) 总的问题是微星小飞机的OSD造成的,就是这个家伙: 然后可以在里面添加特定应用的设置,添加运行STM CubeMX的Java程序: 一般都在安装路径的这个地方: ..STMicroelectronicsSTM32CubeSTM3

    2024年02月10日
    浏览(7)
  • STM32 FIR滤波器使用要点,STM32 DSP篇

    STM32 FIR滤波器使用要点,STM32 DSP篇

    STM32搭配的CMSIS的DSP库已经写好了FIR,我们做的就是用好用稳定! 2.1使用MATLAB的Filter Designer生成滤波器的参数(直接在MATLAB命令中输入filterDesigner即可调出此工具,配置好参数后,选择Targets-Generate C header) 2.2调用arm_fir_init_f32或arm_fir_init_q31或arm_fir_init_q15等等视实际使用情况而

    2024年02月14日
    浏览(11)
  • 【STM32】 DSP库函数的一些基本使用

    对于一些刚接触STM32的童靴来说,DSP库一定是一个陌生的东西。通俗来说,DSP库就是为了让MCU能够使用像DSP(数字信号处理的芯片)功能弄的一些官方库函数,它是基于MCU的FPU(浮点运算功能)的,如果你连FPU都不知道咋开,我个人建议先去查一查啥是FPU以及DSP库移植的一些

    2024年02月01日
    浏览(7)
  • STM32中DSP库简单理解和使用

    STM32中DSP库简单理解和使用

    主要参考arm_math.h中的内容编写,以STM32F091为例 数字信号处理(DigitalSignal Processing,简称 DSP ) 是一门涉及许多学科而又广泛应用于许多领 域的新兴学科,通过利用计算机或专用处理设备,以数字形式对信号进行采集、变换、滤波、估值、增强、 压缩、识别等处理,以得到符

    2024年02月15日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包