我查了一下STM32 有FFT转化的DSP库函数。但是不清楚如何使用,主要有两个问题:
1.ADC初始化之后如何将数据传给pssIn指针。能否如下进行调用。
2.现在代码会在cr4_fft_1024_stm32 阻塞不清楚是什么原因。
请高手帮我看一下。
转换代码
[mw_shl_code=c,true] while(1)
{
for(i=0;i<1024;i++)
{
for(j=0;j<10;j++)//采样频率为12M/(252*10)= 4993.2 计4993
{
ADC_SoftwareStartConvCmd(ADC1,ENABLE);
while(!ADC_GetFlagStatus(ADC1,ADC_FLAG_EOC));
adc_value+= ADC_GetConversionValue(ADC1);
}
// printf("voltage = %f
",3.3*adc_value/(4095*10));
adcin=adc_value/10;
adc_value=0;
printf("adc value[%d]=%d
",i,adcin);
}
// delay_ms(1000);
// delay_ms(1000);
printf("STM32 FFT
");
#if 1
/*参数pssOUT表示FFT输出数组指针,参数pssIN表示要进行FFT运算的输入数组指针,参数Nbin表示了点数*/
cr4_fft_1024_stm32(&X_out[0], &adcin[0], 1024);
/*将采样数据转换为幅度数据*/
printf("dsp_asm_powerMag
");
dsp_asm_powerMag();
delay_ms(1000);
#if 0
adcx=10000;
while(adcx--);
#endif
#endif
} [/mw_shl_code]
请问可能是什么地方出问题勒
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
原子哥,如果用定时器采样是否可行。
有没有例子推荐一个。
一周热门 更多>