微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于AD采集到数据后通过STM32进行FFT变换的问题

关于AD采集到数据后通过STM32进行FFT变换的问题

时间:10-02 整理:3721RD 点击:
最近刚开始弄这个,我用的单片机是STM32F429系列的,下载了官方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 "arm_math.h"
#include "arm_const_structs.h"
#include "stdio.h"
#include "string.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;
/**
  * @brief  ?÷oˉêy
  * @param  ?T
  * @retval ?T
  */
int main(void)
{
        uint16_t i;
        
  /*3?ê??ˉUSART ?????£ê??a 115200 8-N-1£??D???óê?*/
  Debug_USART_Config();
        ADC_Configuration();
        SysTick_Init();
        
        /**按照实部、虚部的顺序存储*/
        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);
        }
}

出现了很多错误,我看到网上他们用的也是这个程序,是哪里有问题呢



头文件包含问题,代码内的,keil设置工程路径部分的都要加上

涨知识了,谢谢大家

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top