IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F4的DSP库 -> 正文阅读

[嵌入式]STM32F4的DSP库

环境配置

1. CUBEMX 中勾选生成工程时添加所有库
2. Keil 中宏定义:,__FPU_PRESENT=1,__TARGET_FPU_VFP,ARM_MATH_CM4,__CC_ARM
3. Keil 中添加DSP库位置:../Drivers/CMSIS/DSP/Include
4. 添加lib文件的lf后缀到工程的core文件夹下
5. 函数使用时包含头文件:#include "arm_math.h"
6. 编译工程

函数使用

官方介绍:地址在keil的包里面

构建矩阵

介绍:
typedef struct
{
uint16_t numRows;     // 矩阵行数.
uint16_t numCols;     // 矩阵列数
float32_t *pData;     // 矩阵地址
} arm_matrix_instance_f32


使用:
1. 创建数据源数组,申明矩阵类型
float32_t pDataA[9] = {1.1f, 1.1f, 2.1f, 2.1f, 3.1f, 3.1f, 4.1f, 4.1f, 5.1f};
arm_matrix_instance_f32 pSrcA;

2. 使用函数转换
arm_mat_init_f32(&pSrcA, 3,3, pDataA);

3. 读取数据
pSrcA.pData[0]

矩阵打印

void M_dump(const arm_matrix_instance_f32 *data)
{
 int num = data->numCols * data->numRows ;
 int i, j, index;
	
	for(i=0;i<data->numRows ; i++)
		{
			for(j = 0; j< data->numCols ;j++)
				{
					index = i* data->numCols + j;
				  printf("%lf, ",data->pData[index]);
				}
			printf("\n");
		}
}

矩阵转置

介绍:

arm_status 	arm_mat_trans_f32 (
			const arm_matrix_instance_f32 *pSrc, 
			arm_matrix_instance_f32 *pDst)

 
arm_status 	arm_mat_trans_f64 (
			const arm_matrix_instance_f64 *pSrc, 
			arm_matrix_instance_f64 *pDst)

矩阵加、减法

介绍:
C = A + B
C = A - B
arm_status arm_mat_add_f32(

  		const arm_matrix_instance_f32 * pSrcA,

  		const arm_matrix_instance_f32 * pSrcB,

		arm_matrix_instance_f32 * pDst)


使用:
1. 创建A、B、C矩阵
2. 调用函数 arm_mat_add_f32(&A, &B, &C)  或者 arm_mat_sub_f32(&A, &B, &C);
3. 从C中获得结果

矩阵与矩阵的乘法

arm_status arm_mat_mult_f16	(	
			const arm_matrix_instance_f16 * 	pSrcA,
			const arm_matrix_instance_f16 * 	pSrcB,
			arm_matrix_instance_f16 * 	pDst 
			)

arm_status arm_mat_mult_f32	(	
			const arm_matrix_instance_f32 * 	pSrcA,
			const arm_matrix_instance_f32 * 	pSrcB,
			arm_matrix_instance_f32 * 	pDst 
			)
arm_status arm_mat_mult_f64	(	
			const arm_matrix_instance_f64 * 	pSrcA,
			const arm_matrix_instance_f64 * 	pSrcB,
			arm_matrix_instance_f64 * 	pDst 
			)		

矩阵与数字的乘法

arm_status arm_mat_scale_f16	(	
			const arm_matrix_instance_f16 * 	pSrc,
			float16_t 	scale,
			arm_matrix_instance_f16 * 	pDst 
			)	
arm_status arm_mat_scale_f32	(	
			const arm_matrix_instance_f32 * 	pSrc,
			float32_t 	scale,
			arm_matrix_instance_f32 * 	pDst 
			)	

向量乘法

void 	arm_mat_vec_mult_f16 (
			const arm_matrix_instance_f16 *pSrcMat, 
			const float16_t *pVec, 
			float16_t *pDst)

 
void 	arm_mat_vec_mult_f32 (
			const arm_matrix_instance_f32 *pSrcMat,
			const float32_t *pVec, 
			float32_t *pDst)

矩阵求逆

介绍:
1. 32位浮点矩阵求逆
arm_status arm_mat_inverse_f32(

  		const arm_matrix_instance_f32 * pSrc,

  		arm_matrix_instance_f32 * pDst)

        
2. 64位浮点矩阵求逆
arm_status arm_mat_inverse_f64(

  		const arm_matrix_instance_f64 * pSrc,

        arm_matrix_instance_f64 * pDst)



  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:58:47  更:2022-04-18 18:02:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:19:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码