- 收藏
- 点赞
- 分享
- 举报
手把手教你怎么使用STM32F4 DSP库进行FFT
http://www.amobbs.com/forum.php?mod=viewthread&tid=5474338&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1 M4的板子买了好久 :(被坑了 186买的 伤心 之前想玩一下FPU 可惜那个DSP库看不懂 也找不到教程 我研究了2个晚上总算会用那个FFT了.... 我的环境是 IAR 6.2 板子是STM32F4DISCOVERY 第一 首先下载官方的 STM32F4xx_DSP_StdPeriph_Lib_V1.0.0 没有的同学请自己去官网下一个 DSP库在 STM32F4xx_DSP_StdPeriph_Lib_V1.0.0\Libraries\CMSIS [attach]1131[/attach]
然后我们使用IAR建立工作空间 这个教程到处都有 我就不说了 在编译器里面加入 [attach]1139[/attach] $PROJ_DIR$......\Libraries\CMSIS\DSP_Lib\Source
ARM_MATH_CM4
ARM_MATH_MATRIX_CHECK
ARM_MATH_ROUNDING
__FPU_PRESENT
__FPU_USED
这样才可以使用DSP库
注意 我的是IAR MDK貌似不是这样的 .....
然后再编译器里面打开 FPU 333.jpg
恩 然后再你的EWARM 目录下添加官方的例子文件
恩 我们用的就是这几个文件 STM32F4xx_DSP_StdPeriph_Lib_V1.0.0\Libraries\CMSIS\DSP_Lib\Examples\arm_fft_bin_example
[attach]1133[/attach]
没有那么容易完了 接着 666.jpg 像我这样加入这些组 在里面添加文件 文件在 STM32F4xx_DSP_StdPeriph_Lib_V1.0.0\Libraries\CMSIS\DSP_Lib\Source
添加啊 ...................终于添加完了 然后在IAR里面加入 arm_fft_bin_example_f32 这个就是官方的例子 和官方的数据 arm_fft_bin_data
[attach]1140[/attach]我的改了名字 叫main.....了
然后终于可以编译了 连接下载
使用WATCH窗口可以看见值
[attach]1138[/attach]然后 我讲一下这几个函数的作用
/ Initialize the CFFT/CIFFT module /
status = arm_cfft_radix4_init_f32(&S, fftSize,
ifftFlag, doBitReverse); //这里是FFT的初始化
/* Process the data through the CFFT/CIFFT module */ //FFT计算的函数 注意 testInput_f32_10khz 这个数组 不能是const 因为计算值是覆盖在这里面的
arm_cfft_radix4_f32(&S, testInput_f32_10khz);
/* Process the data through the Complex Magnitude Module for // FFT出来的是复数 这里是把复数求模 得幅值
calculating the magnitude at each bin */
arm_cmplx_mag_f32(testInput_f32_10khz, testOutput,
fftSize);
/* Calculates maxValue and returns corresponding BIN value */ //这里是求FFT出来数据模的最大值
arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);
最后 如果你的运行到这一步 你就成功了 [attach]1137[/attach]
Markdown 语法
- 加粗**内容**
- 斜体*内容*
- 删除线~~内容~~
- 引用> 引用内容
- 代码`代码`
- 代码块```编程语言↵代码```
- 链接[链接标题](url)
- 无序列表- 内容
- 有序列表1. 内容
- 缩进内容
- 图片![alt](url)
-
2018-12-11 09:04:52
-
2015-07-18 13:34:14
-
2015-01-08 16:45:18
-
2013-08-26 14:24:10
-
2013-11-20 20:13:23
-
2013-11-20 20:17:23
-
2013-08-25 12:32:45
-
2013-12-07 22:26:42
-
2019-01-10 16:52:34
-
2018-12-11 09:02:19
-
2013-08-27 17:37:11
-
2013-08-25 14:48:38
-
2020-10-22 14:52:29
-
2013-11-20 20:19:01
-
2018-12-06 11:22:26
-
2018-12-11 08:56:41
-
2013-11-20 20:21:12
-
02013-08-24 22:15:18
-
2019-08-20 15:40:18
-
5RK3588的DPHY0接lt6911uxe转HDMI抓帧分辨率不对
-
20求rv1106板子的sdk包或者开发板资料
-
10ss928烧录uboot失败
-
10求助,3588调试imx586和ov50c40时,按照瑞芯微的单摄8k配置好设备树后,驱动配置的8k分辨率的,但是只能抓到4k的图,且颜色偏粉
-
50帮忙解决个交叉编译的问题
-
20帮忙交叉编译个源码
-
5Hi3516CV610 如何使用SD卡升级固件
-
5cat /dev/logmpp 报错 <3>[ vi] [func]:vi_send_frame_node [line]:99 [info]:vi pic queue is full!
-
50如何获取vpss chn的图像修改后发送至vo
-
5FPGA通过Bt1120传YUV422数据过来,vi接收不到数据——3516dv500
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明