|
本人使用STM32F103C8T6和oled屏幕显示频谱,已经成功调试,链接如下:https://www.bilibili.com/video/av61148722,效果可观看哔哩哔哩视频比较稀有使用hal库
一下是部分代码
- void SystemClock_Config(void);
- /* USER CODE BEGIN PFP */
- /* Private function prototypes -----------------------------------------------*/
- /* ½öÔêDí±¾ÎļtÄúμ÷óÃμÄoˉêyéùÃ÷ */
- static void PrintfLogo(void);
- static void arm_rfft_fast_f32_app(void);
- static void arm_rfft_q15_app(void);
- static void arm_rfft_q31_app(void);
- void PowerMag(uint16_t _usFFTPoints);
- void DSP_FFT1024(void);
- void DSP_FFT256(void);
- /* êäèëoíêä3ö»o3å */
- #define TEST_LENGTH_SAMPLES 2048
- static float32_t testInput_f32_10khz[TEST_LENGTH_SAMPLES];
- static float32_t testOutput_f32_10khz[TEST_LENGTH_SAMPLES];
- static float32_t testOutput[TEST_LENGTH_SAMPLES];
- static q15_t testInput_q15_50hz[TEST_LENGTH_SAMPLES];
- static q15_t testOutputQ15[TEST_LENGTH_SAMPLES];
- static q15_t testOutput_q15_50hz[TEST_LENGTH_SAMPLES];
- static q31_t testInput_q31_50hz[TEST_LENGTH_SAMPLES];
- static q31_t testOutputQ31[TEST_LENGTH_SAMPLES];
- static q31_t testOutput_q31_50hz[TEST_LENGTH_SAMPLES];
- void OLED_Draw4Line(u8 x1,u8 y1,u8 x2,u8 y2);
- void OLED_Draw2Line(u8 x1,u8 y1,u8 x2,u8 y2);
- u8 str[100];
- /* 񄠨 */
- uint32_t fftSize = 1024;
- uint32_t ifftFlag = 0;
- uint32_t doBitReverse = 1;
- /* USER CODE END PFP */
- void DSP_FFT256(void)
- {
- uint16_t i,x,y;
- /* »ñμÃ256¸ö2éÑùμã */
- for (i = 0; i < 256; i++)
- {
- input[i] =(((signed short)uhADCxConvertedValue[0])-2048) << 16;
- delay_us(100);
- }
- /* ¼ÆËã256μãFFT
- output£oêä3ö½á1û£¬¸ß16λêÇDé2¿£¬μí16λêÇêμ2¿¡£
- input £oêäèëêy¾Y£¬¸ß16λêÇDé2¿£¬μí16λêÇêμ2¿¡£
- μúèy¸ö2Îêy±ØDëêÇ256¡£
- */
- cr4_fft_256_stm32(output, input, 256);
- /* Çó·ùÖμ */
- PowerMag(256);
-
- OLED_Clear();
- for(i=0;i<128;i++)
- {
- x = i;
- y = Mag[i]/1.6;
- OLED_Draw4Line(x,0,x,y);
- }
- OLED_Refresh();
- /* ′òó¡êä3ö½á1û */
- // for (i = 0; i < 256/2; i++)
- // {
- // printf("%4d, %.2f %10d\n",i,(((float)i*10000/256)),Mag[i]);
- // }
- }
复制代码
|
|