基于G474RE的DSP库导入与简单应用

        CMSIS-DSP库是由ARM公司提供的一个信号处理算法库,所有使用ARM内核的单片机都可以调用相应的库,当然也包括STM32。在信号处理方面,DSP库自带的FFT,FIR,IIR等函数具有丰富的实际应用。

        本文采用的STM32G474RET6芯片基于Arm Cortex-M4内核,采用的DSP库有以下几种

           * - arm_cortexM4lf_math.lib (Little endian and Floating Point Unit on Cortex-M4)
           * - arm_cortexM4bf_math.lib (Big endian and Floating Point Unit on Cortex-M4)
           * - arm_cortexM4l_math.lib (Little endian on Cortex-M4)
           * - arm_cortexM4b_math.lib (Big endian on Cortex-M4)

        其中大端(Big endiam)和小端(Little endian)的区别为:

        大端(Big endiam):低地址存放高有效字节

        小端(Little endian):低地址存放低有效字节

        其中浮点运算单元(Floating Point Unit,FPU)

        arm_cortexM4X_math.lib(不带浮点运算单元)

        arm_cortexM4Xf_math.lib(带浮点运算单元)

通过STM32CubeMX添加DSP库

1.进入库选择界面

2.选择DSP库

3.使能DSP库

4.生成工程(本人使用keil5编译器)

        此时DSP库已经添加,但默认添加的静态库文件为arm_cortexM4I_math.lib,无法进行浮点运算,需要进行浮点数运算则需要添加arm_cortexM4If_math.lib静态库,需要的库文件可以从下方百度网盘分享中下载

百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/1MEPOgfqYL0TDU8rkXkdLiw?pwd=p1p9

5.头文件引入

 6.宏定义添加

ARM_MATH_CM4,__CC_ARM,__TARGET_FPU_VFP,__FPU_PRESENT=1

 说明:

 arm_math.h 中说明需要宏定义内核类型,此处选择添加ARM_MATH_CM4

 core_cm4.h 中说明,打开FPU需要添加三条宏定义

__CC_ARM,__TARGET_FPU_VFP,__FPU_PRESENT=1

完成上述六步,DSP库就已经添加完成,之后就可应用其中的函数,具体的函数说明可以参考官方网站,CMSIS-DSP文档,此处我们仅测试最简单的arm_sin_f32()函数,验证DSP库函数导入

CMSIS DSP Software Library (arm-software.github.io)https://arm-software.github.io/CMSIS_5/DSP/html/index.html

结果验证

int i=0;
float sine[128];
for(i=0;i<128;i++)
{
	sine[i]=arm_sin_f32(2*PI/128*i);
}

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChengWYang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值