你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

用STM32F429的板子做fft变换

[复制链接]
这名比较叼 提问时间:2016-11-22 15:27 /
最近刚开始弄这个,下载了官方DSP库,版本是STM32F4xx_DSP_StdPeriph_Lib_V1.4.0,然后网上找了一段相关的程序,编译之后就出现了以下错误,然后我按照要求吧ARMCM4.h添加进去之后又出现新的错误,请各位帮忙看看,问题出在哪里。以下附代码跟截图
#include "stm32f4xx.h"
#include "./usart/bsp_debug_usart.h"
#include "bsp_adc.h"
#include "systick.h"

#include "core_cm4.h"
#include "arm_math.h"
#include "arm_const_structs.h"

#define TEST_LENGTH_SAMPLES 2048

/*******ÊäÈëÓëÊä³ö»º³å**********/
static float32_t testOutput[TEST_LENGTH_SAMPLES/2];
static float32_t testInput_f32_10khz[TEST_LENGTH_SAMPLES];

/**********±äÁ¿**********/
uint32_t fftSize = 1024;
uint32_t ifftFlag = 0;
uint32_t doBitReverse = 1;

uint32_t refIndex = 213, testIndex = 0;

// ADC1ת»»µÄµçѹֵͨ¹ýMDA·½Ê½´«µ½SRAM
extern __IO uint16_t ADC_ConvertedValue;

// ¾Ö²¿±äÁ¿£¬ÓÃÓÚ±£´æ×ª»»¼ÆËãºóµÄµçѹֵ          
float ADC_Vol;




/**
  * @brief  Ö÷º¯Êý
  * @param  ÎÞ
  * @retval ÎÞ
  */
int main(void)
{
  /*³õʼ»¯USART ÅäÖÃģʽΪ 115200 8-N-1£¬ÖжϽÓÊÕ*/
  Debug_USART_Config();
        ADC_Configuration();
        SysTick_Init();
       
        uint16_t i;
        /**°´ÕÕʵ²¿¡¢Ð鲿¡¢Êµ²¿¡¢Ð鲿µÄ˳Ðò´æ´¢Êý¾Ý*/
        for(i=0; i<1024; i++)
        {
                        /*Ð鲿ȫ²¿ÖÃÁÁ*/
                        testInput_f32_10khz[i*2+1] = 0;
                        /*50HzÕýÏÒ²¨,²ÉÑùÂÊ1KHz ,×÷Ϊʵ²¿*/
                        testInput_f32_10khz[i*2] = arm_sin_f32(2*3.1415926f*50*i/1000);
        }
                        /**CFFT±ä»»******/
        arm_cfft_f32(&arm_cfft_sR_f32_len1024, testInput_f32_10khz, ifftFlag, doBitReverse);

        /****Çó½âÄ£Öµ*****/
        arm_cmplx_mag_f32(testInput_f32_10khz, testOutput, fftSize);
        /**´®¿Ú´òÓ¡³öÇó½âµÄÄ£Öµ**/
        for(i=0; i<1024; i++)
        {
                        printf("%f\r\n", testOutput[i]);
        }
       

}



收藏 1 评论14 发布时间:2016-11-22 15:27

举报

14个回答
这名比较叼 回答时间:2016-12-1 19:51:58

我再建了个工程,把所有其他部分都刨去了,就留个FFT,现在可以进行fft变换了
这名比较叼 回答时间:2016-11-22 15:28:29
这个是错误陈述
BAG}R$R1{Z9%%PU`]4@PU2O.png
asssdz-382474 回答时间:2016-11-22 23:42:03
zengyi703-16313 回答时间:2016-11-23 08:10:51
第一个,ARM_MATH_CM7,ARM_MATH_CM4,ARM_MATH_CM3这个错误应该是说你没有定义用的是哪个内核的MCU,如果是用的MDK,可在如图所示的Define地方添加ARM_MATH_CM4。
         QQ截图20161123080642.jpg

第二个,是没找到ARMCM4.h这个头文件,请确认包含的路径下面有这个文件。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

这名比较叼 回答时间:2016-11-23 10:25:34
zengyi703-16313 发表于 2016-11-23 08:10
第一个,ARM_MATH_CM7,ARM_MATH_CM4,ARM_MATH_CM3这个错误应该是说你没有定义用的是哪个内核的MCU,如果是 ...

谢谢你的回答,内核后来添加了,这个错误已经解决,但是我再找到ARMCM4.h文件添加进去后,在ARMCM4头文件中出现了一大堆声明重复的错误(和STM32F429XX.H文件里面重复),后来我把重复的注释掉之后,又出现了新错误,,arm_cfft_f32()不是在arm_math里面定义过了吗,另外还有个arm_cfft_f32.c文件,这个也需要添加进去吗?C:\Users\Administrator\Desktop
CA1$[OXZO0}NH1$EGU_GZG2.png
0QZL7G8C@QLXI@LT1K{IE69.png
peter001 回答时间:2016-11-23 13:55:18
帮顶,先跑跑例子程序
这名比较叼 回答时间:2016-11-23 14:57:33
peter001 发表于 2016-11-23 13:55
帮顶,先跑跑例子程序

谢谢,程序就是我在网上查的,虽然没有完整的工程,但是都说是可行的,而且官方库做fft只需几个库函数就行,无奈编译出来错误百出,,
peter001 回答时间:2016-11-24 00:13:58
这名比较叼 发表于 2016-11-23 14:57
谢谢,程序就是我在网上查的,虽然没有完整的工程,但是都说是可行的,而且官方库做fft只需几个库函数就 ...

我记得st dsp库有例程
这名比较叼 回答时间:2016-11-24 17:40:09
peter001 发表于 2016-11-24 00:13
我记得st dsp库有例程

嗯,库里有,我现在做的就相当于把官方例程复制过来,再加上相应的头文件,但是总是出现声明、定义方面的错误,可能工程被我改的有点乱了,我重新建个工程试下
zero99 回答时间:2016-11-28 13:39:31
楼主解决了吗
12下一页
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版