|
各位大佬,請(qǐng)求援助啊。。
最近在做一個(gè)MP3播放器,大概做法就是stm32f103vet6讀取SD卡中的音頻文件,然后在傳入VS1053b進(jìn)行解碼播放。我用FATfs文件系統(tǒng)讀取SD卡中的一個(gè)MP3文件,然后傳入VS1053b進(jìn)行解碼,然后從耳機(jī)中聽(tīng)”嘟嘟滴“兩短一長(zhǎng)的雜音,其他就沒(méi)有什么音樂(lè)了。
有以下幾個(gè)疑問(wèn)
1.VS1053b做過(guò)了RAM測(cè)試,返回值為0x83ff。正弦測(cè)試聽(tīng)到的聲音聽(tīng)到的是“滴、滴、滴、滴、滴”類(lèi)似于監(jiān)測(cè)心跳的儀器發(fā)出的聲音,不過(guò)頻率是比較快的,我也不知道正弦算不算過(guò)了?如果說(shuō)正弦過(guò)了的話,那是不是可能硬件上有問(wèn)題。關(guān)于VS1053b硬件部分的排查有哪幾點(diǎn)需要注意的有哪位仁兄之情的話,告知一下鄙人。謝謝
2.我截取了幾段重要的代碼
fmp3=(FIL*)mymalloc(SRAMIN,sizeof(FIL));//申請(qǐng)內(nèi)存
databuf=(u8*)mymalloc(SRAMIN,4096); //開(kāi)辟4096字節(jié)的內(nèi)存區(qū)域
f_open(fmp3,"0:/MUSIC/zywg.mp3",FA_READ);
f_read(fmp3,databuf,4096,(UINT*)&br);
FATfs從SD卡將zywg.mp3這個(gè)文件的音頻數(shù)據(jù)存入databuf,通過(guò)屬性我查看這個(gè)MP3文件有5,6M大小,databuf夠存?音頻數(shù)據(jù)難道很小嗎?
另附上原理圖和代碼
STM32單片機(jī)源碼:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "lcd.h"
- #include "24cxx.h"
- #include "sdio_sdcard.h"
- #include "malloc.h"
- #include "vs10xx.h"
- #include "exfuns.h"
- #include "mp3player.h"
- //要寫(xiě)入到24c16的字符串?dāng)?shù)組
- const u8 TEXT_Buffer[]={"WarShipSTM32 IIC TEST"};
- #define SIZE sizeof(TEXT_Buffer)
- int main(void)
- {
- // u8 datatemp[SIZE];
- u8 res;
- u16 temp;
- // u8 key;
-
-
-
-
- // u32 total,free;
- delay_init(); //延時(shí)函數(shù)初始化
- LED_Init(); //初始化與LED連接的硬件接口
- LCD_Init();
- AT24CXX_Init();
- exfuns_init();
- my_mem_init(SRAMIN); //初始化內(nèi)部?jī)?nèi)存池
- VS_Init();
-
- res=f_mount(fs[0],"0:",1);
- if(res!=FR_OK)
- {
- LCD_ShowString(10,10,100,100,16,"error");
- }
-
-
- // while(AT24CXX_Check())//檢測(cè)不到24c16
- // {
- // LCD_ShowString(30,150,200,16,16,"24C16 Check Failed!");
- // delay_ms(500);
- // LCD_ShowString(30,150,200,16,16,"Please Check! ");
- // delay_ms(500);
- // LED0=!LED0;//DS0閃爍
- // }
-
- // while(SD_Init())//檢測(cè)不到SD卡
- // {
- // LCD_ShowString(30,150,200,16,16,"SD Card Error!");
- // delay_ms(500);
- // LCD_ShowString(30,150,200,16,16,"Please Check! ");
- // delay_ms(500);
- // LED0=!LED0;//DS0閃爍
- // }
-
-
- //
- // while(exf_getfree("0:",&total,&free));
- // LCD_ShowString(30,150,200,16,16,"FATFS OK!");
- // LCD_ShowString(30,170,200,16,16,"SD Total Size: MB");
- // LCD_ShowString(30,190,200,16,16,"SD Free Size: MB");
- // LCD_ShowNum(30+8*14,170,total>>10,5,16); //顯示SD卡總?cè)萘?MB
- // LCD_ShowNum(30+8*14,190,free>>10,5,16); //顯示SD卡剩余容量 MB
-
- while(1)
- {
- // LED0=0;
- // delay_ms(300); //延時(shí)300ms
- // LED0=1;
- // delay_ms(300); //延時(shí)300ms
- // LCD_Fill(1,1,50,50,GREEN);
-
- // p=mymalloc(sramx,16);
- // LCD_ShowNum(30+96,190,my_mem_perused(SRAMIN),3,16);//顯示內(nèi)部?jī)?nèi)存使用率
-
- // VS_HD_Reset();
- // VS_WR_Cmd(SPI_VOL,0X2020);
- // temp=VS_RD_Reg(SPI_VOL);
-
-
- temp=VS_Ram_Test();
- LCD_ShowNum(30,100,temp,7,16);
- VS_Sine_Test();
- // mp3_play();
-
- // LCD_ShowNum(30,100,temp,5,16);
-
- }
- }
復(fù)制代碼
全部資料51hei下載地址:
基于是stm32的MP3播放器code.7z
(1.26 MB, 下載次數(shù): 25)
2019-1-19 16:34 上傳
點(diǎn)擊文件名下載附件
MP3播放器原理圖&PCB.rar
(2.7 MB, 下載次數(shù): 20)
2019-1-19 16:00 上傳
點(diǎn)擊文件名下載附件
|
|