STM32 DSP库的使用方法

一、工程中如何添加DSP库

在keil5软件中点击 Pack,CMISIS组件选择DSP资源,可以选择Source源码或者Library库导入到项目中,点击OK,可以在项目树中看到该资源已经导入了工程。

二、 如何使用DSP库

DSP库对浮点计算做了优化和增强,一般来说在具有FPU单元的单片机上运行效果更好,STM32F4 是M4内核,支持FPU,但默认是关闭该功能的,需要手动开启,开启方法很简单,开启Single Precison,硬件浮点计算功能即可。

以STM32F4为例,其预编译添加以下宏支持:ARM_MATH_CM4(CM4支持的),ARM_MATH_MATRIX_CHECK(矩阵输入输出检查),ARM_MATH_ROUNDING(四舍五入相关支持)

在项目工程中,一般需要包括#include "arm_math.h"  #include "math_helper.h"  #include "arm_const_structs.h"头文件夹即可。

具体使用方法参考官方说明文档,没有哪一个博客写的有官方文档好。

DSP库支持的计算类别包括:

  • 基本数学函数,包括:向量的绝对值,加减乘除,位与,点乘,或,异或等
  • 快速数学函数,包括:平方根,余弦,正弦
  • 复杂的数学函数,包括:共轭,点乘,复数,复数平方,乘方,实数乘法
  • 滤波功能,包括:FIR IIR LMS 等
  • 矩阵函数,包括:矩阵的加法、转置、乘法、逆等
  • 变换功能,包括:FFT 
  • 电机控制功能,包括:PID、Clarke、正余弦变换等
  • 统计功能,包括:最大、平均、方差、标准差、均方根等
  • 支持功能,包括:排序、填充、插值、转换等
  • 插值功能,包括:线性插值、双线性插值等
  • 支持向量机功能(SVM),包括:SVM
  • 贝叶斯分类器功能,包括:贝叶斯估计
  • 距离计算功能,包括:常见的距离计算,如欧式距离,余弦距离等

在线参考手册:https://www.keil.com/pack/doc/CMSIS/DSP/html/group__cos.html#gace15287f9c64b9b4084d1c797d4c49d8

其他需要注意的事项,注意KEIL软件版本和Pack,尽量使用最新的版本。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SharePoint 2010-随机出现的页面性能问题

有个客户, 服务器的配置巨牛, 24核CPU, 64GB内存, 这样的三台机器组成了一个SharePoint 2010的服务器场. 就是这样牛的配置, 出现了性能问题. 看performance log, 发现CPU, 内存都资源非常充裕, 问题发生的时候request/sec的值也非常的低. 问题发生的频率很低, 一天十次以内. …

[react] 在使用react过程中什么时候用HOC?

[react] 在使用react过程中什么时候用HOC? 给组件增加额外的功能 个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

C++使用Json作为数据包装格式的通信

From: http://blog.sina.com.cn/s/blog_4ae178ba01014eve.html http://blog.csdn.net/chenziwen/article/details/5785932 Json大家都耳熟能详了吧?现在Json广泛用于各类通信,特别是基于Http协议的通信,一般的服务端动态脚本语言都有库支持…

iOS开发多线程篇—线程的状态

iOS开发多线程篇—线程的状态 一、简单介绍 线程的创建: self.thread[[NSThread alloc]initWithTarget:self selector:selector(test) object:nil]; 说明:创建线程有多种方式,这里不做过多的介绍。 线程的开启: [self.thread star…

Qt 编写应用程序升级的配置文件json 生成工具

通过此工具将需要更新的应用程序和相关目录下的依赖文件配置成json格式的升级文件,客户端版本监控软件通过读取此json文件,对比相应字段,实现自动拉取文件,从而保证客户端应用程序自动更新。 此json文件放在待升级的exe同级目录下…

以太网供电新标准POE+,IEEE802.3at解析

以太网供电新标准POE,IEEE802.3at解析 以太网供电新标准POE,IEEE802.3at一、IEEE 802.3at标准出现的背景为了遵循IEEE 802.3af规范,受电设备(PD)上的PoE功耗被限制为12.95W,这对于传统的IP电话以及网络摄像头而言足以满足需求&am…

C# 6.0 (C# vNext) 的新功能:Expression Bodied Functions and Properties

Expression Bodied Function 它可以用在:methodsuser-defined operatorstype conversionsread-only properties indexers 看下面的样例:public class RgbColor(int r, int g, int b) {public int Red { get; } r;public int Green { get; } g;public i…

[react] 在React中如何避免不必要的render?

[react] 在React中如何避免不必要的render? shouldComponentUpdate、memoization、PureComponent 个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

C++的JSON库及使用方法

From: http://blog.csdn.net/moruite/article/details/7310976 VC没有自带的JSON库,所以分享一下如何使用该库http://download.csdn.net/detail/moruite/4104704 1. json.h头文件包含了如下API [cpp] view plaincopy #ifndef CPPTL_JSON_H_INCLUDED # define CP…

流程制造项目中关于销售订单数量与实际产生数量不同时的解决方案

流程制造项目中关于销售订单数量与实际产生数量不同时的解决方案 在流程制造项目中,例如涂料领域,往往实际生产出来的数量与销售订单的数量会产生差异,这种差异是小额值的。 例如客户A下了100KG的涂料,但车间实际生产出来的数量会…

KEIL ARM 6.12 compiler 编译__ASM 错误的解决方法

1、问题 KEIL compiler 设置为 “use default compiler version 5” 可以正确编译以下汇编和C混合代码,更改编译器为V6.12后不识别__ASM关键字,并对汇编语法报错。 替换为 __ASM void MSR_MSP(uint32_t addr) {MSR MSP, r0 BX r14 } 2、解决办法 6.12…

GCD牛逼的中枢调度器

GCD的基本使用: - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {// dispatch_sync : 同步,不具备开启线程的能力// dispatch_async : 异步,具备开启线程的能力// 并发队列 :多个任务可以同时执行// 串行队列 &#xff1…

[react] 在React中组件的props改变时更新组件的有哪些方法?

[react] 在React中组件的props改变时更新组件的有哪些方法? 新版用 getDerivedstatefromProps(nextProps){ 业务逻辑} 个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起…

平庸错了吗?

平庸,百度百科里的释义是:平凡、普通、寻常而不突出,没有作为。就像我,一直认为自已是个很平庸的人,平凡,很普通。没有优秀杰出的才能,没有高深莫测的思想,甚至没有多少可以用来奢侈…

QT 多屏参数获取和设置

1、获取屏幕参数 QList<QScreen *> screen_list QGuiApplication::screens();for(int i0;i<screen_list.count();i){qDebug()<<screen_list.at(i)->size(); //屏幕的像素分辨率qDebug()<<screen_list.at(i)->availableGeometry();//屏幕…

JIURL文档-Linux的虚拟内存与分页机制(x86-64位)(一)

作者&#xff1a;JIURL日期&#xff1a;2015年10月30日分页机制Linux&#xff08;x64CPU&#xff09;使用基于分页机制的虚拟内存。每个进程有256TB&#xff08;48位&#xff09;的虚拟地址空间。基于分页机制&#xff0c;这256TB地址空间的一些部分 被映射了物理内存&#xff…

[react] React怎样跳过重新渲染?

[react] React怎样跳过重新渲染&#xff1f; 生命周期 shouldComponentUpdate return false &#xff1f; 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

C++之deque

From: http://blog.csdn.net/zxjzxj521/article/details/8172953 1 什么是STL STL就是C Standard Template Library&#xff0c;也就是标准模版库&#xff0c;是一个高效的C程序库。STL包含六大组件&#xff1a;容器&#xff08;container&#xff09;、算法&#xff08;algor…

STM32 设置片外SRAM分散加载

STM32F407 通过FSMC外挂一片SRAM 容量1MB&#xff0c; 设置应用程序的中的超大数组存放在外部SRAM。 &#xff08;1&#xff09;首先通过设置FSMC&#xff0c;保证正确挂接SRAM。 &#xff08;2&#xff09;MDK设置 &#xff08;3&#xff09;应用程序用__attribute__指定需要…

.NET4.0 之 Dynamic VS Refle“.NET研究”ction 效率

在我先前的文章中&#xff0c;不断的推广.NET4.0新特性。特别是.NET4.0 Dynamic 这个新特性。随之而来的问题也出现了—Dynamic 执行效率如何&#xff1f; 我们做开发的不光需要代码简洁&#xff0c;能够希望自己能够写出好的架构。还有一点非常重要的就是&#xff0c;我们的写…