DigiKey“智造万物,快乐不停”创意大赛】DSP
[复制链接]
本帖最后由 wenyangzeng 于 2023-12-18 20:15 编辑
要实现FFT运算,需要使用ST的浮点运算单元,添加ST的DSP相关文件和设置
在main()添加代码:#include <arm_math.h>
在c++中添加__ARM_FEATURE_DSP,__ARM_FEATURE_DSP
添加ST的DSP相关文件
FFT_read()是基于arm_cfft_radix4_f32的1024个点的傅里叶运算函数。该函数读取ADC1转换的1024个正弦波数据进行FFT运算。
- void FFT_read(void)
- {uint16_t i;
- arm_cfft_radix4_instance_f32 scfft;
- arm_cfft_radix4_init_f32(&scfft,ADC_CONVERTED_DATA_BUFFER_SIZE,0,1);
-
- for(i=0;i<ADC_CONVERTED_DATA_BUFFER_SIZE;i++)
- { inputbuf[2*i]=(uint16_t)(aADCxConvertedData[i]);
- inputbuf[2*i+1]=0;
- }
- arm_cfft_radix4_f32(&scfft,inputbuf);
- arm_cmplx_mag_f32(inputbuf,outputbuf,ADC_CONVERTED_DATA_BUFFER_SIZE);
-
- }
STM32H7B3I可以很轻松的完成这个FFT运算任务了。
|