欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2048|回復: 0
打印 上一主題 下一主題
收起左側

stm32音樂頻譜源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:620290 發表于 2021-3-3 16:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
stm32+3.2寸屏顯示音樂頻譜!

  1. #include "stm32f10x.h"
  2. #include "./lcd/bsp_ili9341_lcd.h"
  3. #include "./usart/bsp_usart.h"
  4. #include <stdio.h>
  5. #include "fft.h"
  6. #include "timer.h"
  7. #include "adc.h"
  8. #include "bsp_led.h"  
  9. #include "bsp_SysTick.h"
  10. #include "set.h"
  11. #include "./key/bsp_key.h"


  12. u16 count;
  13. u32 voltage_val[256];

  14. extern float32_t InputData[512];//輸入復數數據
  15. extern float32_t OutputData[256];//輸出復數數據
  16. extern float32_t maxValue;//存儲變換后的最大值
  17. uint16_t point[128]={0};
  18. uint16_t lcd_w = 0;
  19. uint16_t color_mode = 0;


  20. extern u32 time_us;


  21. /**
  22.   * @brief  主函數
  23.   * @param  無  
  24.   * @retval 無
  25.   */
  26. int main ( void )
  27. {

  28.         int i = 0;
  29.        
  30.        
  31.         lcd_w = 2;
  32.        
  33.         color_mode = 1;
  34.        
  35.         ILI9341_Init();         //LCD 初始化

  36.         USART_Config();       

  37.         SysTick_Init();

  38.   time_us = 0;
  39.        

  40.   ILI9341_GramScan ( 1 );
  41.        
  42.         LCD_SetFont(&Font8x16);
  43.         LCD_SetColors(RED,BLACK);
  44.   ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,顯示全黑 */
  45.        
  46.        
  47.        
  48.         LED_GPIO_Config();
  49.         Key_GPIO_Config();
  50.         Adc_Init();
  51.         TIM2_Int_Init(4,359);//200kHz計數頻率,40kHz中斷頻率(采樣頻率)
  52.        
  53.        
  54.        
  55.        
  56.                
  57.        
  58.        
  59.         while ( 1 )
  60.         {
  61.                
  62.                
  63.                 if(count == 256)
  64.                 {
  65.                         TIM_ITConfig(TIM2,TIM_IT_Update,DISABLE );//關定時器中斷
  66.                        
  67.                         //LED2_TOGGLE;
  68.                         count = 0;
  69.                        
  70.                         if(KEY_ON == Key_Scan(KEY1_GPIO_PORT,KEY1_GPIO_PIN))
  71.                         {
  72.                                 lcd_w++;
  73.                                 lcd_w %= 5;
  74.                                 lcd_w++;
  75.                         }
  76.                         if(KEY_ON == Key_Scan(KEY2_GPIO_PORT,KEY2_GPIO_PIN))
  77.                         {
  78.                                 color_mode++;
  79.                                 color_mode %= 3;
  80.                         }
  81.                        
  82.                         for(i=0;i<256;i++)//裝載256點復數數據
  83.                         {
  84.                                
  85.                                 InputData[i*2]=(float)voltage_val[i];//實部
  86.                                
  87.                                                                
  88.                                 InputData[i*2+1]=0.0;//虛部
  89.                         }
  90.                        
  91.                        
  92.        
  93.                         if(DO_FFT())
  94.                         {
  95.                                
  96.                                 for(i=0;i < 300/(lcd_w+1);i++)
  97.                                 {
  98.                                         uint32_t temp = (u32)OutputData[i+1]/30;
  99.                                
  100.                                         if(temp >= point[i])
  101.                                         {
  102.                                                 if(temp >= 239)
  103.                                                 {
  104.                                                         point[i] = 239;
  105.                                                 }
  106.                                                 else
  107.                                                 {
  108.                                                         point[i] = temp;
  109.                                                 }
  110.                                         }
  111.                                         else
  112.                                         {
  113.                                                 if(point[i] >= lcd_w )
  114.                                                 {
  115.                                                         point[i]-=lcd_w;
  116.                                                 }
  117.                                                 else
  118.                                                 {
  119.                                                         point[i] = 0;
  120.                                                 }
  121.                                         }
  122.                                        
  123.                                         set_color(temp);
  124.                                         if(lcd_w != 1)
  125.                                         {
  126.                                                 m_line(i,temp);
  127.                                         }
  128.                                         else
  129.                                         {
  130.                                                 ILI9341_OpenWindow ( (lcd_w + 1)*i, 0, (lcd_w+1), LCD_Y_LENGTH );
  131.                                                 ILI9341_FillColor ( (lcd_w + 1) * LCD_Y_LENGTH, BLACK );       
  132.                                         }
  133.                                         m_point(i,point[i]);
  134.                                 }
  135.                         }
  136.                        
  137.                        
  138.                
  139.                         SysTick_Delay_Ms(60);
  140.                        
  141.                        
  142.                        
  143.                         TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );//開定時器中斷
  144.                 }
  145.                
  146.                                
  147.                
  148.         }
  149.        
  150.        
  151. }
復制代碼


project.7z

223.98 KB, 下載次數: 19, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表