OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3732|回复: 2

关于STM32F29中FFT应用

[复制链接]

6

主题

15

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-12-15
在线时间
9 小时
发表于 2016-12-21 18:13:18 | 显示全部楼层 |阅读模式
1金钱
#define FFT_LENGTH                256                 //FFT长度,默认是1024点FFT

float fft_inputbuf[FFT_LENGTH*2];        //FFT输入数组
float fft_outputbuf[FFT_LENGTH];        //FFT输出数组

u8 timeout;

int main(void)
{
    arm_cfft_radix4_instance_f32 scfft;
        u8 key,t=0;
        float time;
        u16 i;
        u16 adcx;
        float temp;
       
       
    HAL_Init();                     //初始化HAL库   
    Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
    delay_init(180);                //初始化延时函数
    uart_init(115200);              //初始化USART
    LED_Init();                     //初始化LED
    KEY_Init();                     //初始化按键
    SDRAM_Init();                   //初始化SDRAM
    MY_ADC_Init();                  //初始化ADC1通道5

    TIM3_Init(65535,90-1);          //10Khz计数频率,最大计时65ms秒超出
        arm_cfft_radix4_init_f32(&scfft,FFT_LENGTH,0,1);//初始化scfft结构体,设定FFT相关参数       
       
       
    while(1)
        {
                for(i=0;i<2*FFT_LENGTH+1;i++)//生成信号序列
                        {
                                 adcx=Get_Adc_Average(ADC_CHANNEL_5,1);
                                 fft_inputbuf[2*i]=adcx;//生成输入信号实部
                                 fft_inputbuf[2*i+1]=0;//虚部全部为0
                                 temp=(float)adcx*(3.3/4096);
                                 printf("\r\nthe voltage:%fV\r\n",temp);
                                 LED0=!LED0;
                        }
       

                LED1=!LED1;
                        arm_cfft_radix4_f32(&scfft,fft_inputbuf);        //FFT计算(基4)
                        printf("FFT Result:\r\n");
                        for(i=0;i<FFT_LENGTH;i++)
                        {
                                printf("fft_outputbuf[%d]:%f\r\n",i,fft_outputbuf[i]);
                        }
       
        }  
}


在main函数中,FFT_LENGTH设置为64,程序执行正常,FFT_LENGTH设置为256时,for循环执行一次就结束了,不再执行LED1=!LED1,请高手指点迷津!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

15

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-12-15
在线时间
9 小时
 楼主| 发表于 2016-12-21 18:14:33 | 显示全部楼层
芯片是STM32F429,写错了!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-12-25 23:28:28 | 显示全部楼层
帮顶
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-11 20:26

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表