STEP1、下载DSP库
具体链接如下:
https://www.st.com/en/embedded-software/stsw-stm32065.html?dl=9w6sdOSAKySFxBhN764Stg%3D%3D%2CIS1vzyA84KLAefK%2B0DawUl0FScREpiT6AdC3qFjIMJnCIgXIwr82G2XUFo6w43Wp5L5CUyrX3vZAoaHRE3nsTmRsArV3hnQOEgX73SKt8ss1vGrLlfXT24jUzDKvQoj0H4L2gBSZsUj3urRJVJbHG4DQFKfuPFNFVrLwAU%2BPiDijkoKerSTrWWYmm3p2HQVKGYnsx1PSiEhTwxxCtypyEyQ%2FF7Njoo91y8R1335R3mnkBMltxzkHazjuDUv70bqgF4Ag6Udlq%2FU%2BbwPnADU8bDIeFoajhGZqQ%2FVQKXnNRD1%2BX5QlTirHwE70z30iCggOevNWRUSduoDbL%2BfDrst3MpnbBMp8fS%2BnjdyzoMIr38s%3D&mkt_tok=ODU2LVBWUC03MTUAAAGSp9OfinR1c6wipFSEfUyersIL-3429o1xMWtufKm-UMHocChwATGGEfRPL7x0CqUGeHCOi81u1lnfvAqPgQYD0u3BcNopl_yaR7adaGH1cw#get-software
STEP2、移植到工程
下载完成后就是en.stsw这么一个压缩包。
-
1、找到如图路径,拷贝lib & .h文件到工程
-
2、相信这一步大家都会(lib以及头文件正确的路径包含)
-
3、添加Define (, ARM_MATH_CM4)
-
4、勾选mirolib 和 single precision
-
5、全局搜索stm32f411xe.h头文件中,添加宏定义 __FPU_PRESENT , __FPU_USED 并且赋值为1
-
6、编译测试
测试代码中添加了sin运算的API,并且添加arm_math的头文件即可,编译测试。
STEP3、说明书
- 打开如下路径的index.html ,将是这个API的全套说明文档,用于翻阅查询的。
STEP4、测试结果对比matlab
matlab测试 矩阵B/A的结果
stm32f4测试结果打印
// 测试代码
float32_t dataA[]={1,25,3,2,31,4,3,43,51};
float32_t dataA_[9]={0};
arm_matrix_instance_f32 A,A_;
A.numRows =3;
A.numCols =3;
A.pData = dataA;
A_.numRows =3;
A_.numCols =3;
A_.pData = dataA_;
float32_t dataB[]={1,5,8};
float32_t dataC[3]={0};
arm_matrix_instance_f32 B,C;
B.numRows =1;
B.numCols =3;
B.pData = dataB;
C.numRows =1;
C.numCols =3;
C.pData = dataC;
// 求逆
arm_mat_inverse_f32(&A,&A_);
// B/A = C
arm_mat_mult_f32(&B,&A_,&C);
// 打印结果
printf("C = ");
for(int i=0;i<3;i++)
{
printf(" %f ",C.pData[i]);
}
printf("\r\n");