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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3004|回復: 0
收起左側

STM32+VS1053b不能播放音樂?"嘟嘟滴"兩短一長的雜音

[復制鏈接]
ID:149948 發表于 2019-1-19 16:00 | 顯示全部樓層 |閱讀模式
各位大佬,請求援助啊。。
       最近在做一個MP3播放器,大概做法就是stm32f103vet6讀取SD卡中的音頻文件,然后在傳入VS1053b進行解碼播放。我用FATfs文件系統讀取SD卡中的一個MP3文件,然后傳入VS1053b進行解碼,然后從耳機中聽”嘟嘟滴“兩短一長的雜音,其他就沒有什么音樂了。
       有以下幾個疑問
       1.VS1053b做過了RAM測試,返回值為0x83ff。正弦測試聽到的聲音聽到的是“滴、滴、滴、滴、滴”類似于監測心跳的儀器發出的聲音,不過頻率是比較快的,我也不知道正弦算不算過了?如果說正弦過了的話,那是不是可能硬件上有問題。關于VS1053b硬件部分的排查有哪幾點需要注意的有哪位仁兄之情的話,告知一下鄙人。謝謝
       2.我截取了幾段重要的代碼
        fmp3=(FIL*)mymalloc(SRAMIN,sizeof(FIL));//申請內存
        databuf=(u8*)mymalloc(SRAMIN,4096);        //開辟4096字節的內存區域
        f_open(fmp3,"0:/MUSIC/zywg.mp3",FA_READ);
        f_read(fmp3,databuf,4096,(UINT*)&br);
        FATfs從SD卡將zywg.mp3這個文件的音頻數據存入databuf,通過屬性我查看這個MP3文件有5,6M大小,databuf夠存?音頻數據難道很小嗎?

       另附上原理圖和代碼
0.jpg 0.png 0.png

STM32單片機源碼:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "lcd.h"
  6. #include "24cxx.h"
  7. #include "sdio_sdcard.h"
  8. #include "malloc.h"
  9. #include "vs10xx.h"
  10. #include "exfuns.h"
  11. #include "mp3player.h"


  12. //要寫入到24c16的字符串數組
  13. const u8 TEXT_Buffer[]={"WarShipSTM32 IIC TEST"};
  14. #define SIZE sizeof(TEXT_Buffer)        


  15. int main(void)
  16. {
  17. //        u8 datatemp[SIZE];

  18.         u8 res;
  19.         u16 temp;

  20. //        u8 key;  
  21.         
  22.         
  23.         
  24.         
  25. //        u32 total,free;
  26.         delay_init();            //延時函數初始化         
  27.         LED_Init();                          //初始化與LED連接的硬件接口
  28.         LCD_Init();
  29.         AT24CXX_Init();
  30.         exfuns_init();
  31.         my_mem_init(SRAMIN);                //初始化內部內存池
  32.         VS_Init();
  33.         
  34.         res=f_mount(fs[0],"0:",1);
  35.         if(res!=FR_OK)
  36.         {
  37.                 LCD_ShowString(10,10,100,100,16,"error");
  38.         }

  39.         
  40. //        while(AT24CXX_Check())//檢測不到24c16        
  41. //        {
  42. //                LCD_ShowString(30,150,200,16,16,"24C16 Check Failed!");
  43. //                delay_ms(500);
  44. //                LCD_ShowString(30,150,200,16,16,"Please Check!      ");
  45. //                delay_ms(500);
  46. //                LED0=!LED0;//DS0閃爍
  47. //        }
  48.         
  49. //        while(SD_Init())//檢測不到SD卡
  50. //        {
  51. //                LCD_ShowString(30,150,200,16,16,"SD Card Error!");
  52. //                delay_ms(500);                                       
  53. //                LCD_ShowString(30,150,200,16,16,"Please Check! ");
  54. //                delay_ms(500);
  55. //                LED0=!LED0;//DS0閃爍
  56. //        }
  57.         

  58.                
  59. //        
  60. //        while(exf_getfree("0:",&total,&free));
  61. //        LCD_ShowString(30,150,200,16,16,"FATFS OK!");         
  62. //        LCD_ShowString(30,170,200,16,16,"SD Total Size:     MB");         
  63. //        LCD_ShowString(30,190,200,16,16,"SD  Free Size:     MB");            
  64. //         LCD_ShowNum(30+8*14,170,total>>10,5,16);                                //顯示SD卡總容量 MB
  65. //         LCD_ShowNum(30+8*14,190,free>>10,5,16);                                        //顯示SD卡剩余容量 MB                           
  66.         
  67.         while(1)
  68.         {

  69. //                LED0=0;
  70. //                delay_ms(300);         //延時300ms
  71. //                LED0=1;
  72. //                delay_ms(300);        //延時300ms
  73. //                LCD_Fill(1,1,50,50,GREEN);


  74.                
  75. //                p=mymalloc(sramx,16);
  76. //                LCD_ShowNum(30+96,190,my_mem_perused(SRAMIN),3,16);//顯示內部內存使用率
  77.                

  78. //                VS_HD_Reset();
  79. //    VS_WR_Cmd(SPI_VOL,0X2020);
  80. //                temp=VS_RD_Reg(SPI_VOL);
  81.                
  82.                
  83.                 temp=VS_Ram_Test();
  84.                 LCD_ShowNum(30,100,temp,7,16);

  85.                 VS_Sine_Test();

  86. //                mp3_play();
  87.                         

  88. //                LCD_ShowNum(30,100,temp,5,16);
  89.                
  90.         }
  91. }
復制代碼

全部資料51hei下載地址:
基于是stm32的MP3播放器code.7z (1.26 MB, 下載次數: 25)
MP3播放器原理圖&PCB.rar (2.7 MB, 下載次數: 20)

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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