我把C:STM32F3-Discovery_FW_V1.1.0ProjectPeripheral_ExamplesADC_Example和FPU_Example两个工程做了区别,首先确定FPU_Example中确实使用FPU实现了fabsf、fmaf等函数,然后将计算程序放到ADC_Example程序中运行。需要加上C编译选项--C99,main.h或许要修改点,其他不变就能通过,所以说Peripheral_Examples中的所有工程加入--C99即可使用硬件FPU。
CMSIS-DSP 库包括向量运算、矩阵运算、复杂运算、过滤函数、控制函数、PID 控制器、傅里叶变换和很多其他常用的 DSP 算法。大多数算法为浮点格式和各种定点格式,并已针对 Cortex-M 系列处理器进行优化。Cortex-M4 处理器实现使用SIMD指令集和浮点硬件,从而完全支持对信号处理算法使用 Cortex-M4 处理器的功能。加入ARM_MATH_CM4,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING,__FPU_PRESENT,__FPU_USED这样才可以使用CMSIS DSP库
status = arm_cfft_radix4_init_f32(&S, fftSize,ifftFlag, doBitReverse); // FFT的初始化
arm_cfft_radix4_f32(&S, testInput_f32_10khz); // FFT计算的函数
arm_cmplx_mag_f32(testInput_f32_10khz, testOutput,fftSize); // FFT出来的是复数求模得幅值
arm_max_f32(testOutput, fftSize, &maxValue, &testIndex); / //这里是求FFT出来数据模的最大值
我把C:STM32F3-Discovery_FW_V1.1.0ProjectPeripheral_ExamplesADC_Example和FPU_Example两个工程做了区别,首先确定FPU_Example中确实使用FPU实现了fabsf、fmaf等函数,然后将计算程序放到ADC_Example程序中运行。需要加上C编译选项--C99,main.h或许要修改点,其他不变就能通过,所以说Peripheral_Examples中的所有工程加入--C99即可使用硬件FPU。
CMSIS-DSP 库包括向量运算、矩阵运算、复杂运算、过滤函数、控制函数、PID 控制器、傅里叶变换和很多其他常用的 DSP 算法。大多数算法为浮点格式和各种定点格式,并已针对 Cortex-M 系列处理器进行优化。Cortex-M4 处理器实现使用SIMD指令集和浮点硬件,从而完全支持对信号处理算法使用 Cortex-M4 处理器的功能。加入ARM_MATH_CM4,ARM_MATH_MATRIX_CHECK,ARM_MATH_ROUNDING,__FPU_PRESENT,__FPU_USED这样才可以使用CMSIS DSP库
status = arm_cfft_radix4_init_f32(&S, fftSize,ifftFlag, doBitReverse); // FFT的初始化
arm_cfft_radix4_f32(&S, testInput_f32_10khz); // FFT计算的函数
arm_cmplx_mag_f32(testInput_f32_10khz, testOutput,fftSize); // FFT出来的是复数求模得幅值
arm_max_f32(testOutput, fftSize, &maxValue, &testIndex); / //这里是求FFT出来数据模的最大值
举报