以STM32CubeMX创建DSP库工程方法一

以STM32CubeMX创建DSP库工程方法

  • 略过时钟树的分配和UART的创建等,直接进入主题
  • 生成工程文件

它们中的文件功能如下:
1)BasicMathFunctions 基本数学函数:提供浮点数的各种基本运算函数,如向量加减乘除等运算。

2)CommonTables 数字信号处理常用参数表。

3)ComplexMathFunctions 复数计算数学函数。

4)ControllerFunctions 控制算法函数。包括正弦余弦,PID电机控制,矢量Clarke变换,矢量Clarke逆变换等。

5)FastMathFunctions 常见快速算法的数学函数。

6)FilteringFunctions 滤波函数功能,主要为FIR和LMS(最小均方根)等滤波函数。

7)MatrixFunctions 矩阵处理函数。包括矩阵加法、矩阵初始化、矩阵反、矩阵乘法、矩阵规模、矩阵减法、矩阵转置等函数。

8)StatisticsFunctions 统计功能函数。如求平均值、最大值、最小值、计算均方根RMS、计算方差/标准差等。

9)SupportFunctions 支持功能函数,如数据拷贝,Q格式和浮点格式相互转换,Q任意格式相互转换。

10)TransformFunctions 变换功能。包括复数FFT(CFFT)/复数FFT逆运算(CIFFT)、实数FFT(RFFT)/实数FFT逆运算(RIFFT)、和DCT(离散余弦变换)和配套的初始化函数。

略过时钟树的分配和UART的创建等,直接进入主题

在这里插入图片描述
在 Pinout & Configuration文本框下的Software Packs下拉框中选择Select Components

在这里插入图片描述
在进入组件包后左上角选择 ==show or hide the filter panel == ,后弹出左边的筛选下拉框,勾选DSP Library 。中间刷新出DSP Library 目前最新版本为V1.3.0 ,后面勾上上。结束选择“OK”确认载入

在这里插入图片描述
第一次可能没有下载组件需要登录账号后才能正常下载对应的包

在这里插入图片描述
在这里插入图片描述
也开启这个为了能够启用浮点运算

生成工程文件

在这里插入图片描述

二、配置Keil MDK工程

1、在Options的Target选项卡中使能浮点运算单元FPU。
在这里插入图片描述
2、在Options的C/C++选项卡的宏定义中添加如下数学计算可能用到的宏ARM_MATH_CM4,__CC_ARM,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING。
注:ARM_MATH_CM3//F1是M3,F4是M4,H7是M7
在这里插入图片描述
在main.c主函数中添加头文件引用

#include "arm_math.h"

代码测试

 float data;//定义一个float型变量
 while (1)
  {
	  data=arm_sin_f32(3.1415926/6);//sin(30°),理论值为0.5
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }

这个还有个问题,就是调用DSP其他函数识别不来的问题,这就郁闷了,比如调用
arm_cos_f32(30)这个余弦函数还行,但是最大值这些函数arm_max_f16(pSrc,16,a,b);直接告诉你没有定义。
看来这个创建DSP库不咋地!

方法二直接使用Keil 生成DSP,有请大家前往以Keil 创建DSP库工程方法二

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/205858.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VBA代码解决方案第8讲:用FindPrevious进行重复搜索及利用LIKE查找

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码…

货代FOB条款卖方必备的知识:发货人都要承担哪些费用呢?

据统计,中国出口中以FOB成交的占到70%,但专家指出:FOB对出口商的风险更大,有可能造成货、款两空的结局。 目前我国出口合同以FOB价格条款成交的比例越来越大,而且收货人指定船公司的少,指定境外货代的多&am…

3款厉害的小工具,小黑子都在用!

大家好,我是 Javapub。 程序员与普通人最大的区别是什么,当然是会使用工具。基于一些同学经常问我的问题,接下来给大家分享几款我经常使用的工具,主打一个提升效率。 第一款 Everything 用 windwos 的同学都体会过,…

带大家做一个,易上手的家常土豆片

还是先从冰箱里那一块猪瘦肉 搞一点蒜和生姜 切成小块 装进一个碗里 这里一点就够了 一条绿皮辣椒 切片 三个左右干辣椒 随便切两刀 让它小一点就好了 一起装一个碗 一大一小两个土豆切片 猪肉切片 起锅烧油 然后 下肉翻炒 等肉变颜色捞出来 然后放入土豆 和小半碗水 让…

JeecgBoot低代码开发—Vue3版前端入门教程

JeecgBoot低代码开发—Vue3版前端入门教程 后端接口配置VUE3 必备知识1.vue3新特性a. https://v3.cn.vuejs.org/b.setup的用法c.ref 和 reactive 的用法d.新版 v-model 的用法e.script setup的用法 2.TypeScript基础 后端接口配置 如何修改后台项目路径 http://127.168.3.52:8…

【玩转 EdgeOne】| 腾讯云下一代边缘加速CDN EdgeOne 是安全加速界的未来吗?

目录 前言边缘加速与安全加固边缘计算与CDN的融合EdgeOne优秀的安全特性EdgeOne卓越的性能表现灵活的配置和管理生态系统的支持与发展技术创新与未来展望EdgeOne试用结束语 前言 在当下互联网的迅猛发展的时刻,云计算和边缘计算技术的快速发展为网络加速领域带来了…

awk从放弃到入门(10):awk内置函数

awk从放弃到入门(10):awk内置函数 算数函数字符串函数其他函数 本博文转载自 这篇文章中的知识点是建立在前文的基础上的,如果你还没有掌握前文中的知识,请先参考之前的文章。 注:在阅读这篇文章之前&…

Abbyy FineReader16最新版本有哪些新功能?

在数字化时代,数据处理和转换变得非常重要,Abbyy FineReader 就是一款专门用于处理、转换和识别图像和 PDF 文件的软件。在本文中,我们将会详细介绍 Abbyy FineReader 的功能以及适合使用该软件的电脑。 ABBYY Finereader 16-安装包下载如下&…

滴滴2023.11.27P0级故障技术复盘回顾(k8s的的错?)

本文从滴滴官方恢复及技术公众号带大家从技术角度复盘这次事故 目录 1. 背景 2. 滴滴官方消息 3. 问题分析及定位 4.网传的k8s及解析 5.k8s引发的思考:举一反三,怎么避免再次出现 6.近段时间其他平台崩溃回顾 1. 背景 11 月 27 晚约 10 点&#xf…

TFIDF、BM25、编辑距离、倒排索引

TFIDF TF刻画了词语t对某篇文档的重要性,IDF刻画了词语t对整个文档集的重要性

最简单的链路追踪收集器

链路追踪可帮助您快速了解程序服务之间的调用关系,并快速洞悉内部发生的情况。主流的链路追踪系统有zipkin,jaeger,skywalking等,由于opentelemetry的存在,都具有opentelemetry的转换器。 我们利用opentelemetry来进行zipkin,jaeger,skywalk…

智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于生物地理学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.生物地理学算法4.实验参数设定5.算法结果…

在Rust中编写自动化测试

1.摘要 Rust中的测试函数是用来验证非测试代码是否是按照期望的方式运行的, 测试函数体通常需要执行三种操作:1.设置任何所需的数据或状态;2.运行需要测试的代码;3.断言其结果是我们所期望的。本篇文章主要探讨了Rust自动化测试的几种常见场景。 2.测试函数详解 在Rust项目工…

(三)基于高尔夫优化算法GOA求解无人机三维路径规划研究(MATLAB代码)

一、无人机模型简介: 单个无人机三维路径规划问题及其建模_IT猿手的博客-CSDN博客 参考文献: [1]胡观凯,钟建华,李永正,黎万洪.基于IPSO-GA算法的无人机三维路径规划[J].现代电子技术,2023,46(07):115-120 二、高尔夫优化算法GOA简介 高尔夫优化算法…

解决:ValueError: the first two maketrans arguments must have equal length

解决:ValueError: the first two maketrans arguments must have equal length 文章目录 解决:ValueError: the first two maketrans arguments must have equal length背景报错问题报错翻译报错位置代码报错原因解决方法今天的分享就到此结束了 背景 在…

数据可视化:用图表和图形展示数据

写在开头 在当今信息爆炸的时代,海量的数据如同一座沉默的宝库,等待着我们挖掘和理解。然而,这些庞大的数据集本身可能令人望而生畏。在这个时候,数据可视化成为了解数据、发现模式和传达信息的强大工具。本篇博客将带领你探索数据可视化的奇妙世界,学习如何在python中使…

win10 tensorrt源码编译onnx

直接利用官方源码,如下图,trtexec源码在TensorRT安装目录下,双击trtexec.sln文件,使用vs2019打开源码工程。 如下图,以yolov8为例子,编译成功项目之后,设置命令行参数: --onnxd:/yo…

程序员养生之道

程序员养生之道——如何保持健康的生活方式 摘要: 随着互联网行业的快速发展,越来越多的人选择从事程序员这个职业。然而,长时间的工作和高强度的压力容易导致程序员出现亚健康状况,如头发稀疏、视力下降、肥胖等问题。因此&#…

【Lustre相关】功能实践-01-Lustre集群部署配置

文章目录 一、前言1、关于io5002、关于HPC3、软件架构4、部署方式 二、软件安装1、配置yum源2、内核安装2、服务端安装3、客户端安装4、zfs安装 三、集群部署1、关闭防火墙及SELinux2、配置网络2.1、通用格式2.2、参考示例 3、配置zfs(可选)3.1、通用格式…

uni-app 自带返回方法onBackPress,返回上一级并且刷新页面内容获取最新的数据

onBackPress 返回上一级并且刷新页面内容获取最新的数据 onBackPress 方法是uinapp自带返回键方法,也就是在app和H5返回键 onBackPress() {setTimeout(() > {uni.switchTab({url: /pages/Users/index,})}, 300)return true}, methods: {}在这里 uni.switchTab…